【问题标题】:How to partition on cassandra table on timestamp?如何在时间戳上对 cassandra 表进行分区?
【发布时间】:2019-03-27 19:55:02
【问题描述】:

我有这样的桌子

CREATE TABLE ks.log_by_date (
        column_name text,
    status text,
    error_msg text,
    last_update_date date,
    last_update_timestamp timestamp,
    updated_user text,
    PRIMARY KEY (( column_name), last_update_date)
) WITH CLUSTERING ORDER BY ( last_update_date DESC );

INSERT INTO ks.log_by_date (column_name,last_update_date,error_msg,last_update_timestamp,status,updated_user) 
  VALUES ('column_log_by_date','2018-10-23','NONE',1540302120001,'ERROR','user1');

INSERT INTO ks.log_by_date (column_name,last_update_date,error_msg,last_update_timestamp,status,updated_user) 
  VALUES ('column_log_by_date','2018-10-23','NONE',1540302340001,'SUCCESS','user1');

当我基于“last_update_timestamp”列插入两列时,具有不同的时间戳 1540302120001 和 1540302340001 该行被覆盖。

我在这里做错了什么?为什么它覆盖行而不是两个单独的行。 我怎样才能在此处插入两行...基于 last_update_timestamp

您的帮助非常有用。

【问题讨论】:

  • @alexott 先生,你能帮帮我吗,我在这里做错了什么

标签: apache-spark datastax cassandra-3.0


【解决方案1】:

如果您希望将具有不同 last_update_timestamp 的 2 行计为单独的行,那么您需要将 last_update_timestamp 放入主键中,作为聚类列:

PRIMARY KEY (( column_name), last_update_date, last_update_timestamp)

但我不知道 - 你真的需要last_update_date 吗?您是否需要选择具有特定last_update_date 的所有行?

【讨论】:

  • 是的,我想选择所有具有特定 last_update_date 的行
猜你喜欢
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多