gpt4 book ai didi

Cassandra 范围查询

转载 作者:行者123 更新时间:2023-12-04 18:49:34 27 4
gpt4 key购买 nike

我是 Cassandra 的新手,正在尝试数据建模和范围查询。

出于学习目的,我想开发一个数据库,我可以在其中存储日志行及其 LogType 和日志生成时间。我必须回答以下查询的地方:

按日期范围之间的 LogType 查找日志行。

我将我的数据库建模为 2 个列族:
1) 日志

create column family log with comparator = 'UTF8Type' 
and key_validation_class = 'LexicalUUIDType'
and column_metadata=[{column_name: block, validation_class: UTF8Type}];

我打算用他们的 logid 存储日志行的地方

例如: set log['7561a442-24e2-11df-8924-001ff3591711'][blocks]='someText|11-17-2011 23:40:42|sometext';
2)
create column family ltype with column_type = 'Super'
and comparator = 'TimeUUIDType'
and subcomparator = 'UTF8Type'
and column_metadata=[{column_name: id, validation_class: LexicalUUIDType}];

在这个列族中,我将存储日志类型以及时间和日志列族中的日志行 ID:
ex: set ltype[ltype1][12307245916538][id]='7561a442-24e2-11df-8924-001ff3591711';

我想在给定日志类型和日期范围时获得结果。

有人可以指导我如何在 super 列族上运行范围查询吗?

最佳答案

一篇关于Cassandra中时间序列数据建模的文章:

http://rubyscale.com/2011/basic-time-series-with-cassandra/

对于时间序列,您确实想要做更大的行 - 可能在每行 10k-50k 列附近作为起点(取决于您的负载)。如果您使键成为“日期桶”的函数,则可以完全避免 super 列:

[datetime]_[5 秒间隔](粒度再次取决于负载)

通过这种方式,您可以重新创建 key ,并且您只需使用您想要的存储桶的 key 发出 multi_get。

数据建模的更一般概述:

http://www.datastax.com/docs/0.8/ddl/index

关于Cassandra 范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314675/

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