【问题标题】:Phoenix JDBC TImestamp Column issuesPhoenix JDBC TIMEstamp 列问题
【发布时间】:2017-05-30 04:25:51
【问题描述】:

我正在研究 Hbase 数据库并使用 apache Phoenix 使用普通 SQL 查询访问 Hbase。

我在表中有两列,其中包含 varchar 和 Date 中的当前 UTC 时间戳。加载一些数据后,当我查询回 Hbase 时,我得到了 Date 类型的事件时间戳列的奇怪结果。

Event UTC (Date) :2017-01-13 16:36:59.0
Event UTC (varchar):2017-01-13 21:36:59

以上两个值应该是相同的,但对于每条记录,在查询回事件 UTC(日期)列时给我错误的结果,即正好落后 5 小时。 我不知道这个问题是从哪里来的。我没有保存任何时区信息,而且我知道 Java Util 或 SQL 时间戳不存储任何时区信息,但在运行查询时确实与结果集数据混淆。请帮我解决这个问题

【问题讨论】:

  • 1.检查您的凤凰服务器时间和您的 hbase 服务器时间。 2. phoenix server 和 hbase server 的时间可能不匹配 3. 可以使用 ntp(网络时间协议)来同步时区
  • 在进行 ntp 同步后也重新启动你的 jvm。你最终可能会得到你不想要的偏移量。您也可以在 hbase 上查看时间

标签: mysql hadoop hbase phoenix


【解决方案1】:

很可能是因为客户的本地时区。

来自official docs

时间戳类型:

内部表示基于自纪元以来的毫秒数(基于 GMT 时间),而 java.sql.Timestamp 将根据客户端的本地时区格式化时间戳。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多