当前位置: 首页 > 知识库问答 >
问题:

Cassandra:具有时间戳和大型数据集的表设计

柳志专
2023-03-14

我在一天内查询大量数据时遇到了问题。我正在寻找关于创建一个高效的表模式的建议。

CREATE TABLE eventlog (
    recordid uuid PRIMARY KEY,
    insertedtimestamp timestamp,
    source text,
    event text
); 
select * from eventlog where insertedtimestamp > '2017-01-25';

共有1个答案

池俊茂
2023-03-14

虽然您希望在一天内获得所有记录,但可以使用以下模式

CREATE TABLE eventlog (
    day int,
    month int,
    year int,
    recordid uuid,
    insertedtimestamp timestamp,
    source text,
    event text,
    PRIMARY KEY((day,month,year),recordid)
); 

因此,所有的数据在一天内,将在一个单一的节点。现在,您可以通过下面的查询更有效地获取日期数据,比如2017-01-25

SELECT* FROM eventlog WHERE day = 25 and month = 1 and year = 2017 
 类似资料:
  • 任何一个都可以,要求数据是一个字符串化的JSON对象。我的查询将返回用户在给定时间范围内的所有数据。哪种模式更有意义,或者有更好的方法来解决这个问题?

  • 问题内容: 我有一张表: 我需要选择具有最大更新值的id和val。因此,对于此表,结果应为: 问题答案: 这需要在与主表连接的子查询中进行汇总。

  • 幸运的是,我发现了一个‘使用时间戳’的操作,时间戳较大的cql会覆盖较小的时间戳,否则不会。因此,使用“使用时间戳”,我可以使用自定义时间戳来确定是否覆盖。它在CQLSH中工作得很好。 但是它在python-cassandra-driver中失败了,如何使“使用时间戳”在python-cassandra-driver中起作用?我的代码如下:

  • 我正在研究一个用于存储时间序列的卡桑德拉数据模型(我是卡桑德拉新手)。我有两个应用程序:日内股票数据和传感器数据。 库存数据将以一分钟的时间分辨率保存。七个数据字段构建一个时间框架:符号、日期时间、开盘、高位、低位、收盘、成交量 我将主要通过符号和日期来查询数据。例如,给我2013年1月1日到2013年1月31日之间按日期时间排序的AAPL的所有数据。cassandra查询的建议是查询整列。所以你

  • 说明 pika新版binlog有时间戳,开发binlog_sender工具,根据输入的时间段回放对应数据到某个pika实例 工具目录: pika/tools/binlog_tools/binlog_sender 使用参数: -h -- 显示帮助 -t -- l 显示日志类型,old 或new -i -- pika实例的ip -p -- pika实例的port -n -- 输入的binlog的路径

  • 我正在探索DataBricks Delta表及其时间旅行/时间特性。我有一些过去发生的事件数据。我正在尝试将它们插入delta表,并能够使用数据中的时间戳而不是实际的插入时间进行时间旅行。 我的事件中有一个日期/时间列。我将其重命名为“时间戳”,但它仍然不起作用。 我的 csv 数据如下所示:(数据显示 id=1000 的单个案例发生了 5 次更新) 我使用这些命令来创建增量表: 我有两个问题: