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



作为关系模式的ER图,如果有无论如何要以图形方式解释为Cassandra创建的模式?

有很多方法可以解决这个问题,我建议查看DataStax的数据建模培训,以获得系统的深入了解。

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

一旦你有了这个,你想把它转换成一个Cassandra特定的图,你在其中表示主键,聚类键,甚至二级索引(但仅适用于低基数字段(。请记住,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 等(并使用箭头演示应用程序流来扩充关系图。

另一个可能有用的工具是这个数据建模应用程序,它允许您输入表定义并查看它是如何存储在后台的 Cassandra 存储引擎中的(目前它不支持集合(。它还允许您计算表的估计分区大小,并生成一个示例 .yaml 文件,用于 Cassandra 从 C* 2.1 开始的新 cassandra-stress(它向后兼容 2.0(。

注意:此工具正在开发中,可能会更改。

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

您仍然需要对架构中关系的 .puml 文件进行一些编辑,因为 Cassandra 键空间不包含表之间关系的任何表示形式。

最新更新