Apache Cassandra 时区问题
Posted
技术标签:
【中文标题】Apache Cassandra 时区问题【英文标题】:Apache Cassandra Time Zone Issue 【发布时间】:2017-05-18 09:37:44 【问题描述】:我正在尝试使用人才将数据从 MSSQL 移动到 cassandra,但我遇到了 timezone 问题,因为 MSSQL 位于 CST 时区,而 Cassandra 具有时区等/世界标准时间。
尝试更改以下配置文件
Location: /opt/apache-cassandra-3.9/conf/
文件:cqlshrc.sample
从 timezone = Etc/UTC 更改为 :timezone = CST
但 cqlsh 仍然显示 UTC 时间戳
cqlsh> select toTimestamp(now()) from system.local;
system.totimestamp(system.now())
2017-01-04 06:38:45.645000+0000
我正在使用 apache cassandra 3.9
所以请有人帮我继续。
【问题讨论】:
默认情况下 cqlshrc 文件位于 ~/.cassandra 目录中。通过删除分号来设置您的时区选项而不加注释; docs.datastax.com/en/cql/3.3/cql/cql_reference/… 【参考方案1】:您是否安装了pytz
模块?启动 cqlsh 时,您可能错过了以下警告:
[me@centos bin]$ ./cqlsh
Warning: Timezone defined and 'pytz' module for timezone conversion not installed. Timestamps will be displayed in UTC timezone.
另外,您可能必须以区域/位置格式指定时区。试试看America/Chicago
。
无论如何,这只是关于时间戳的显示。 Cassandra 不存储任何带有日期/时间戳的时区信息。它们始终以 UTC 格式存储。
【讨论】:
在哪里可以找到区域/位置表? @quangkid,你可以在***上找到,例如:en.wikipedia.org/wiki/List_of_tz_database_time_zones以上是关于Apache Cassandra 时区问题的主要内容,如果未能解决你的问题,请参考以下文章
更快,可扩展性更强的 Apache Cassandra 4.0 正式发布
SPARK SQL 和 Cassandra 之间的时区不匹配