我是卡桑德拉的新手,尝试过数据建模和范围查询。
为了学习的目的,我想开发一个数据库,在这里我可以存储日志行及其LogType和日志生成时间。在这里我必须回答以下问题:
通过LogType在日期范围.之间查找日志行
我将我的数据库建模为两个列族: 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';我想得到的结果,当给定类型的日志和日期范围。
有人能指导我如何在超级列家族上运行范围查询吗?
发布于 2011-11-29 23:42:41
关于卡桑德拉时间序列数据建模的一篇文章:
http://rubyscale.com/2011/basic-time-series-with-cassandra/
对于时间序列,您确实想要做更大的行--可能在每行10k-50k的附近,作为起点(取决于负载)。如果将键设为a“日期桶”的函数,则可以完全避免超级列:
datetime_5 second interval
这样,您的密钥就可以重新创建,您只需要为所需的桶发出一个带有密钥的multi_get。
对数据建模的更全面的概述:
http://www.datastax.com/docs/0.8/ddl/index
https://stackoverflow.com/questions/8314675
复制相似问题