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

Cassandra数据建模时间戳

刁远
2023-03-14
userID:{
   event: [
     { timestamp: data },
     { timestamp: data }
   ]
}
CREATE TABLE users ( guid uuid, date timestamp, events varchar, PRIMARY KEY(guid, date) );
CREATE TABLE users ( guid uuid PRIMARY KEY, date timestamp, events map<text, text> );

任何一个都可以,要求数据是一个字符串化的JSON对象。我的查询将返回用户在给定时间范围内的所有数据。哪种模式更有意义,或者有更好的方法来解决这个问题?

共有1个答案

龚盛
2023-03-14

正如Jim所说,第二个模式不允许查询时间戳,因为它不包含在主键中。

他提出了一个有效的解决方案,但我也建议您不要使用uuid和时间戳,而是使用TimeUUID(同时提供id和时间戳)。但是,如果有时只需要通过id获取用户,那么Jim的解决方案可能是最好的:

主键(guid、date、EVENT_TYPEC)

 类似资料:
  • 我目前有一个应用程序,它将事件驱动的实时流数据持久化到一个列系列,该系列建模为: 每个帐户ID每X秒发送一次数据,因此我们每次收到事件时都会覆盖现有行。此数据包含当前实时信息,我们只关心最近的事件(不使用旧数据,这就是我们插入已经存在的键的原因)。从应用程序用户端-我们通过account_id语句查询选择。 我想知道是否有更好的方法来模拟这种行为,并查看了Cassandra的最佳实践和类似的问题(

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

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

  • 我们目前正在调查卡桑德拉作为大型时间序列系统的数据库。 我已经通读了https://academy . datas tax . com/resources/getting-started-time-series-data-modeling关于Cassandra中时间序列数据建模的内容。 我们有许多气象站的高速时间序列数据。每个气象站都有许多“传感器”,每个传感器收集三个指标:温度、湿度和光照。 我

  • 过去几天,我一直在浏览在线文章、视频,甚至是堆叠帖子,以了解如何在cassandra中建模数据。我理解需要根据查询模式对数据进行建模,但我不理解的是cassandra中的列族和列关系,如果这适用于它们,我想查询数据。 我有一个关系数据库表,其中包含以下内容 本质上,它是一个包含客户 ID 及其账户 ID 的表,因此唯一键将cust_id acct_id。每个客户可以有多个 1 个或多个帐户。有一些

  • 表1: 表1的键和数据大小: 我的分区密钥为enterprise_id+campaign_id。每个企业可以有几个活动。datastore可能有几百个活动的数据。每个活动可以有多达200万-300万的记录。因此,在100个企业中可能有3000个分区,每个分区有2-3个miilion记录。 Cassandra查询:查询始终使用分区键+主键直到日期时间。订阅id包含在主键中,以保持每个记录的唯一性,因