【发布时间】:2014-05-07 21:59:13
【问题描述】:
我正在尝试评估 Cassandra DB 在存储和检索不同渠道的时间序列数据方面的性能。
以文件格式以 8 个样本/秒的最大记录速率记录数据,每个样本的时间戳以毫秒为单位。给定时间内录制的频道数量可能会有所不同。
受以下链接Getting Started with Time Series Data Modeling的启发,我使用创建了下表:
创建表 uhhdata ( ch_idx 整数, 日期时间戳, dt 时间戳, val浮动, 主键((ch_idx,日期),dt) );
其中分区键由通道号 (ch_idx int) 和日期时间戳组成,其中存储日期非和非时间戳详细信息,dt 是小于秒分辨率的记录的时间戳。
我有两个问题: 1-将 2,500,000 条记录写入此表并运行查询后 select * from UHHdata limit 10,000,000; 我收到以下超时错误:
请求未在 rpc_timeout 内完成。
C++ 驱动程序只为这个数量的记录返回 NULL: boost::shared_ptr 结果 = future.get().result;
如果(!结果) std::cout
如果这样做 100,000,它会在 22 秒后返回。 如何检索像这样的大查询的所有记录? 我看过一个帖子 cassandra get all records in time range,但是,我不知道如何适用于我的案例,因为我需要获取所有记录而不是其中一些记录?
2-如果对dt timstamp进行如下范围查询,返回的查询不检查区间指定的区间,与时间上下限无关:
可以观察到,查询返回的记录大于时间上限'2014-04-04 01:00:10':
cqlsh:uhhkeyspace2> select * from UHHData where ch_idx=1 AND date = '2012-04-04 01:00:00' AND dt
ch_idx |日期 | dt |值
--------+-------------------------------------------------- +--------------------------------------------------+-----
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:00GMT Daylight Time | -5
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:01GMT Daylight Time | 44
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:02GMT Daylight Time | 83
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:03GMT Daylight Time | 99
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:04GMT Daylight Time | 89
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:05GMT Daylight Time | 55
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:06GMT Daylight Time | 5
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:07GMT Daylight Time | -44
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:08GMT Daylight Time | -83
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:09GMT Daylight Time | -99
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:10GMT Daylight Time | -89
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:11GMT Daylight Time | -55
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:12GMT Daylight Time | -5
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:13GMT Daylight Time | 44
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:14GMT Daylight Time | 83
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:15GMT Daylight Time | 99
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:16GMT Daylight Time | 89
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:17GMT Daylight Time | 55
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:18GMT Daylight Time | 5
1 | 2012-04-04 01:00:00GMT Daylight Time | 2012-04-04 01:00:19GMT Daylight Time | -44
(20 行)
为什么不应用时间戳限制条件?我该如何解决这个问题?
谢谢, 阿明
【问题讨论】: