如何使用 cql 对宽行进行数据建模
Posted
技术标签:
【中文标题】如何使用 cql 对宽行进行数据建模【英文标题】:How to data model wide rows using cql 【发布时间】:2016-06-03 06:54:24 【问题描述】:我正在将 cassandra 从版本 1 更新到版本 3,并用 CQL 替换 thrift API,并使用 CQL 重做数据模型。但是我发现一张表翻译成 CQL 有点困难
旧的定义是这样的:
CREATE COLUMN FAMILY vsc_data
WITH key_validation_class='CompositeType(LongType, IntegerType)'
AND comparator = 'CompositeType(LongType,LongType)';
数据看起来像这样:
1,11111,[(2222222,3333333,value1,value2),(4444444,555555,value3,value4)...]
“1”和“11111”是复合行键,“2222222”和“3333333”是复合列键,查询时数据先按“2222222”排序,再按“3333333”列排序。
那么如何使用 CQL 对其进行数据建模以及如何查询呢?
【问题讨论】:
什么是 value1,value2.. 【参考方案1】:Thrift 架构
CREATE COLUMN FAMILY vsc_data
WITH key_validation_class='CompositeType(LongType, IntegerType)'
AND comparator = 'CompositeType(LongType,LongType)';
CQL 架构
CREATE TABLE vsc_data (
partition1 bigint,
partition2 int,
clustering1 bigint,
clustering2 bigint,
value1 ???,
value2 ???,
PRIMARY KEY((partition1, partition2), clustering1, clustering2)
);
【讨论】:
以上是关于如何使用 cql 对宽行进行数据建模的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS RedShift Spectrum 为 S3 存储建模以进行查询
如何使用 node-orm2 通过 Express 对两个或多个数据库进行建模?