有没有办法在 Apache Phoenix 中使用 TIME ZONE 信息更新 TIMESTAMP?
Is there a way to UPSERT a TIMESTAMP with TIME ZONE information in Apache Phoenix?
我正在尝试使用 PutSQL 处理器从 Nifi UPSERT 到 Phoenix table。
假设我的 table 名字是 X,它的架构如下所示:
编号 [INT],
ts [时间戳]
声明如下:
UPSERT INTO X (id, ts) VALUES (1 , '2021-07-01 10:00:00.000')
问题:
当我看着凤凰 Table 我看到:
id
ts
1
2021-07-01 08:00:00.000
显然,因为我的 Apache Nifi 或 Phoenix 服务器时间设置为 GMT+02:00,时间戳在 UPSERT 期间会发生偏移,因为 Phoenix 认为它必须更正此偏移才能到达 GMT。但是我的时间戳已经是 GMT 时间戳,所以我不想要这个更正。
有没有办法将时区信息附加到 TIMESTAMP 字符串以便 Phoenix 理解它?我在文档中找不到任何内容。
我已经尝试过插入但没有成功:
'2021-07-01 10:00:00.000Z'
'2021-07-01 10:00:00.000+0000'
约束:我不能将我的服务器时区更改为 GMT/UTC(这可能是一个简单的解决方案),因为我不是管理员。
有人可以指点一下吗?
我找到了解决办法:
如果我 UPSERT 纪元毫秒而不是时间戳字符串,它就可以工作。
所以现在的解决方案是:
UPSERT INTO X (id, ts) VALUES (1, 1625133600000)
我正在尝试使用 PutSQL 处理器从 Nifi UPSERT 到 Phoenix table。
假设我的 table 名字是 X,它的架构如下所示: 编号 [INT], ts [时间戳]
声明如下:
UPSERT INTO X (id, ts) VALUES (1 , '2021-07-01 10:00:00.000')
问题: 当我看着凤凰 Table 我看到:
id | ts |
---|---|
1 | 2021-07-01 08:00:00.000 |
显然,因为我的 Apache Nifi 或 Phoenix 服务器时间设置为 GMT+02:00,时间戳在 UPSERT 期间会发生偏移,因为 Phoenix 认为它必须更正此偏移才能到达 GMT。但是我的时间戳已经是 GMT 时间戳,所以我不想要这个更正。
有没有办法将时区信息附加到 TIMESTAMP 字符串以便 Phoenix 理解它?我在文档中找不到任何内容。
我已经尝试过插入但没有成功:
'2021-07-01 10:00:00.000Z'
'2021-07-01 10:00:00.000+0000'
约束:我不能将我的服务器时区更改为 GMT/UTC(这可能是一个简单的解决方案),因为我不是管理员。
有人可以指点一下吗?
我找到了解决办法: 如果我 UPSERT 纪元毫秒而不是时间戳字符串,它就可以工作。
所以现在的解决方案是:
UPSERT INTO X (id, ts) VALUES (1, 1625133600000)