在尝试了解 Cassandra 的一些基础知识时,我的印象是开发人员在设计数据模型时可以利用的优势之一是通过动态地将列添加到由键标识的行中。这意味着我可以对我的数据进行建模,以便在有意义的情况下,键可以是关系数据库中的 user_id 之类的东西,例如,我可以创建与该用户相关的任意数量的列。
我不明白为什么在 CLQ 示例中如此强调预定义列,特别是在 CREATE TABLE/COLUMNFAMILY 示例中:
CREATE TABLE emp (
empID int,
deptID int,
first_name varchar,
last_name varchar,
PRIMARY KEY (empID, deptID)
);
这种类型的模型将内容放入关系数据库不是更有意义吗?如果我直到运行时才知道我的列名并且需要动态创建它怎么办?我是否必须使用 ALTER TABLE 向使用 CLQ 的行添加新列?我想到的特定应用程序用例只需要一个键标识符和任意列名,其中列名可能包含时间戳+变量标识符。
Cassandra 是不是合适的工具?文档中的预定义列仅仅是一个示例吗?如何在现有列族/表中添加动态列名?