如何使用 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 对宽行进行数据建模的主要内容,如果未能解决你的问题,请参考以下文章

谁能告诉我SQL数据库如何建模?

如何在关系数据库中进行继承建模?

如何使用 AWS RedShift Spectrum 为 S3 存储建模以进行查询

如何使用 node-orm2 通过 Express 对两个或多个数据库进行建模?

powerDesigner不能用该如何进行UML建模呢?国产CHINER建模工具解你燃眉之急

使用 Amazon Redshift 进行维度建模是不是可行