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

利用Cassandra处理时间序列数据

彭骏
2023-03-14

编辑:我已经更改了模式,以便做出一些澄清。

CREATE TABLE log_date (
  userid bigint,
  time timeuuid,
  reason text,
  item text,
  price int,
  count int,
  PRIMARY KEY ((userid), time) - #1
  PRIMARY KEY ((userid), time, reason, item, price, count) - #2
);

每天都会为当天创建一个新表。所以一个表只包含一天的日志。

我的查询条件如下。
查询特定用户在特定日期(日期而不是时间)的所有日志。
因此原因、项目、价格和计数根本不会用作查询的提示或条件。

共有1个答案

充高扬
2023-03-14

我的建议是,你的两个选择似乎都不适合你的时间序列,事实上你每天都在创建一个表,这似乎也不是最佳选择。

相反,我建议按userid和day创建单个表和分区,并使用time uuids作为事件的聚集列,示例如下:

CREATE TABLE log_per_day (
   userid bigint,
   date text, 
   time timeuuid, 
   value text,
      PRIMARY KEY ((userid, date), time)
)

这将允许您将一天中的所有事件放在单行中,并允许您每天对每个用户进行查询。

插入log_per_day(userid、date、time、value)值(1000、'2015-05-06'、aTimeUUID2、'My Value2')

上面的两个插入将位于同一行中,因此您将能够在单个查询中读取。

另外,如果您想了解更多关于时间序列的信息,我强烈建议您查看《入门时间序列数据建模》

 类似资料:
  • 本文向大家介绍python时间日期函数与利用pandas进行时间序列处理详解,包括了python时间日期函数与利用pandas进行时间序列处理详解的使用技巧和注意事项,需要的朋友参考一下 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间,datetime.timede

  • 我将我的数据存储在卡珊德拉·NoSQL数据库中,模式如下: 然后我使用。我希望数据是按时间序列排列的,第一天确实如此,但今天情况发生了变化。 我认为数据库忽略了日期,而只关心时间。 知道怎么解决这个问题吗?

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

  • 我正在开发一个Cassandra数据模型来存储用户上传的记录。 潜在的问题是,一些用户可能在5分钟内上传50-100k行,这可能导致分区键(user_id)的“热点”。(如果每个分区超过10k行,建议重新考虑数据模型)。 如何避免在短时间内一个分区键上有太多记录? 我尝试使用Datastax的时间序列建议,但即使我有年、月、日、小时列,热点仍然可能出现。 使用案例包括: 按user_id获取所有上

  • 本文向大家介绍JavaScript Serializer序列化时间处理示例,包括了JavaScript Serializer序列化时间处理示例的使用技巧和注意事项,需要的朋友参考一下 JavaScriptSerializer序列化时间后会把时间序列化成N进制的鬼数据,于是查了下质料坐下记录 假设list = News List<Text>(){new Text(){id=1,date='2014-