gpt4 book ai didi

cassandra - Cassandra 中同一主键的重复行/列

转载 作者:行者123 更新时间:2023-12-02 08:13:53 24 4
gpt4 key购买 nike

我在 Cassandra 3.7 中有一个带有传感器数据的表/列族。

CREATE TABLE test.sensor_data (
house_id int,
sensor_id int,
time_bucket int,
sensor_time timestamp,
sensor_reading map<int, float>,
PRIMARY KEY ((house_id, sensor_id, time_bucket), sensor_time)
)

现在,当我从此表中进行选择时,我发现同一主键有重复项,我认为这是不可能的。

cqlsh:test> select * from sensor_data;

house_id | sensor_id | time_bucket | sensor_time | sensor_reading
----------+-----------+-------------+---------------------------------+----------------
1 | 2 | 3 | 2016-01-02 03:04:05.000000+0000 | {1: 101}
1 | 2 | 3 | 2016-01-02 03:04:05.000000+0000 | {1: 101}

我认为部分问题在于这些数据都是使用 java 和 Datastax java 驱动程序“实时”写入的,并且已使用 sstableloader 与来自另一个源的历史数据一起加载。

无论如何,这应该是不可能的。我无法将旧版 cassandra-cli 连接到该集群,也许这会告诉我一些使用 cqlsh 看不到的信息。

所以,问题是:
* 在已知情况下这是否可能发生?
* 我可以使用 cqlsh 读取更多原始数据吗?具体这两行的写入时间。 writetime() 函数无法对主键或集合进行操作,这就是我所拥有的。

谢谢。

更新:

这是我从评论、答案和其他来源中尝试过的
* 使用 blobAsBigInt 选择为所有相同的行提供相同的大整数
* 启用 thrift 后,可以使用 cassandra-cli 连接,但不能读取表格。 3.x以后不支持
* 使用 sstabledump 进行转储正在进行中,但预计还需要一两周时间;)

最佳答案

我不希望在时间戳字段中看到纳秒,而且我的印象是它们完全不支持?试试这个:

从 test.sensor_data 中选择 house_id、sensor_id、time_bucket、blobAsBigint(sensor_time);

我能够通过通过整数插入行来复制它:

插入sensor_data(house_id,sensor_id,time_bucket,sensor_time)值(1,2,4,1451692800000);
插入传感器数据(house_id,传感器_id,时间桶,传感器时间)值(1,2,4,1451692800001);

这是有道理的,因为我怀疑您的驱动程序之一正在使用 bigint 来插入时间戳,而其中一个驱动程序可能实际上正在使用日期时间。

尝试使用时区和 bigint 来重现此内容...似乎只有 bigint 可以重现

 house_id | sensor_id | time_bucket | sensor_time              | sensor_reading
----------+-----------+-------------+--------------------------+----------------
1 | 2 | 3 | 2016-01-02 00:00:00+0000 | null
1 | 2 | 4 | 2016-01-01 23:00:00+0000 | null
1 | 2 | 4 | 2016-01-02 00:00:00+0000 | null
1 | 2 | 4 | 2016-01-02 00:00:00+0000 | null
1 | 2 | 4 | 2016-01-02 01:01:00+0000 | null

编辑:尝试使用 bigint 代替日期时间插入进行一些恶作剧,成功重现...

关于cassandra - Cassandra 中同一主键的重复行/列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39803833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com