有没有办法在 Apache Phoenix 中使用 TIME ZONE 信息 UPSERT 时间戳?
Posted
技术标签:
【中文标题】有没有办法在 Apache Phoenix 中使用 TIME ZONE 信息 UPSERT 时间戳?【英文标题】:Is there a way to UPSERT a TIMESTAMP with TIME ZONE information in Apache Phoenix? 【发布时间】:2021-10-03 02:19:33 【问题描述】:我正在尝试使用 PutSQL 处理器从 Nifi UPSERT 进入 Phoenix 表。
假设我的表名为 X,其架构如下所示: 编号 [INT], ts [时间戳]
语句如下:
UPSERT INTO X (id, ts) VALUES (1 , '2021-07-01 10:00:00.000')
问题: 当我看凤凰桌时,我看到:
id | ts |
---|---|
1 | 2021-07-01 08:00:00.000 |
显然,因为我的 Apache Nifi 或 Phoenix 服务器时间设置为 GMT+02:00,TIMESTAMP 在 UPSERT 期间会发生偏移,因为 Phoenix 认为它必须更正此偏移才能到达 GMT。但是我的时间戳已经是 GMT 时间戳,所以我不想要这个更正。
有没有办法将时区信息附加到 TIMESTAMP 字符串以便 Phoenix 理解它?我在文档中找不到任何内容。
我已经尝试过插入但没有成功:
'2021-07-01 10:00:00.000Z'
'2021-07-01 10:00:00.000+0000'
约束:我不能将我的服务器时区更改为 GMT/UTC(这可能是一个简单的解决方案),因为我不是管理员。
有人可以建议吗?
【问题讨论】:
【参考方案1】:我找到了解决方案: 如果我 UPSERT 纪元毫秒而不是时间戳字符串,它可以工作。
所以现在的解决方案是:
UPSERT INTO X (id, ts) VALUES (1, 1625133600000)
【讨论】:
以上是关于有没有办法在 Apache Phoenix 中使用 TIME ZONE 信息 UPSERT 时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
Node.js和npm phoenix-client软件包与kerberized Apache phoenix连接
2021年大数据HBase:Apache Phoenix的基本介绍
2021年大数据HBase:Apache Phoenix的基本介绍