以图形方式解释Cassandra数据模式

时间:2014-12-02 08:22:44

标签: cassandra schema data-modeling datastax

作为关系模式的ER图,如果有图形解释为Cassandra创建的模式?

2 个答案:

答案 0 :(得分:3)

有很多方法可以解决这个问题,我建议您查看DataStax的Data Modeling training以获得系统深入的了解。

实际构建普通的ERD和预期查询列表可能是确保数据模型正确的一个很好的步骤。

一旦你有了这个,你想把它转换成一个Cassandra特定的图表,你代表主键,群集键和even secondary indexes(但仅适用于低基数字段)。请记住,ERD中的多个实体可能会转换为一个C *表,并且您最终可能会复制某些写入,以提高读取性能并允许不同类型的查询。一个简单的示例可能如下所示:

Reviews_by_Day
userid text       P
day int           C
productid text
reviewid uuid
profilename text 
helpfulness text
score text
summary text 
review text 
time timestamp

您还可以在群集列中指定asc / desc。上图将代表下表:

CREATE TABLE reviews_by_day
(
userid text,
day int,
productid text, 
reviewid uuid,
profilename text, 
helpfulness text,
score text, 
summary text, 
review text, 
time timestamp,
PRIMARY KEY (userid, day)
)

将此与您将在c *上执行的预期查询列表相结合,并考虑将用于每个查询的表。您可以通过添加查询(标记为Q1,Q2等)并使用箭头来演示应用程序流来扩充图表。

另一个可能有用的工具是data modeling application,它允许您输入表定义并查看它如何存储在引擎盖下的Cassandra存储引擎中(目前它不支持集合)。它还允许您计算表的估计分区大小,并生成一个样本.yaml文件,用于Cassandra的新cassandra-stress来自C * 2.1(向后兼容2.0)。

注意:此工具正在开发中,可能会发生变化。

答案 1 :(得分:2)

我编写了一个工具cql2plantuml,它从CQL架构中提取plantuml .puml文件。

你仍然需要对模式中的关系进行一些.puml文件的编辑,因为Cassandra Keyspace不包含任何表之间关系的表示。