作为关系模式的ER图,是否无论如何都要从语法上解释为Cassandra创建的模式?
发布于 2014-12-03 00:15:55
有很多方法可以做到这一点,我建议您查看一下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存储引擎中的(目前它不支持集合)。它还允许您计算表的估计分区大小,并从C* 2.1 (向后兼容2.0)生成示例.yaml文件,以与cassandra的新cassandra-stress一起使用。
注释:此工具正在开发中,可能会发生变化。
发布于 2017-11-11 21:50:36
我编写了从cql2plantuml模式中提取plantuml .puml文件的工具CQL。
您仍然需要通过对模式中关系的.puml文件进行一些编辑,因为Cassandra Keyspace不包含表之间关系的任何表示。
https://stackoverflow.com/questions/27244829
复制相似问题