gpt4 book ai didi

database - Cassandra 和使用 cql 插入列

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:23 25 4
gpt4 key购买 nike

在尝试了解 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 的行?我想到的特定应用程序用例只需要一个键标识符和任意列名,其中列名可能包含时间戳+variable_identifier。

Cassandra 是合适的工具吗?文档中的预定义列是否只是一个示例?如何使用现有列族/表添加动态列名?

最佳答案

Do I have to use ALTER TABLE to add a new column to the row using CLQ?

是的,必须先定义架构,然后才能插入“新列”。但是,您可以定义 1 列作为数据集合。查看 datastax 的 'thrift to cql upgrade' 中的“标签”示例混合动态和静态列下的博客。

How does one add a dynamic column name with an existing column family/table?

在 CQL 中,您必须首先使用 ALTER 关键字更改表(列族)的结构。我的猜测是,这是为了确保列族包含指定的列,从而消除错误添加列的可能性(更好的数据质量)。

Is Cassandra the right tool for that?

我认为是的,但是如果您需要在不指定模式更改语句的情况下即时添加列,那么您可能应该研究可以做到这一点的基于 thrift 的 API,但只是一个友好的警告,datastax 建议新的应用程序使用 CQL。

关于database - Cassandra 和使用 cql 插入列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com