Cassandra DB中的日期插入:非平凡的1h班次问题(后续)

时间:2014-04-16 15:15:55

标签: php date jvm cassandra

这是other original post的后续行动。

环境:

Cassandra在OpenSuse上运行(通过其Java虚拟机)。

服务器设置为时区"欧洲/苏黎世"。

测试仅包括此服务器。没有涉及其他服务器。

TEST:

"BEGIN BATCH USING CONSISTENCY ONE insert into tsmeasures(id,'2015-01-01 00:00:00','2015-06-01 00:00:00') values ('2812621',1,2) APPLY BATCH"

从PHP观察到的结果(在同一个Cassandra服务器上):

"SELECT '2014-06-01'..'2015-12-01' FROM tsmeasures WHERE id IN(2812621)"
unpacked_value=1420066800, str_time='2015-01-01 00:00:00' <= OK
unpacked_value=1433113200, str_time='2015-06-01 01:00:00' <= NOT OK !

因此,日期被解释为GMT + 1。

SOLUTION:

在&#34; cassandra_env.sh&#34;中,在运行Java时添加选项-Duser.timezone:

JVM_OPTS="$JVM_OPTS -Duser.timezone=Europe/Zurich"

修复后重复测试:

"BEGIN BATCH USING CONSISTENCY ONE insert into tsmeasures(id,'2015-01-01 00:00:00','2015-06-01 00:00:00') values ('2812621',1,2) APPLY BATCH"

在FIX之后观察到PHP的新结果(在同一个Cassandra服务器上):

"SELECT '2014-06-01'..'2015-12-01' FROM tsmeasures WHERE id IN(2812621)"
unpacked_value=1420066800, str_time='2015-01-01 00:00:00' <= OK
unpacked_value=1433113200, str_time='2015-06-01 00:00:00' <= OK

日期解释为:

  • 中欧冬令时= GMT + 1
  • 中欧夏令时= GMT + 2

0 个答案:

没有答案