gpt4 book ai didi

Cassandra Composite Columns - 如何选择 CompositeTypes?

转载 作者:行者123 更新时间:2023-12-03 22:21:27 24 4
gpt4 key购买 nike

我试图了解在创建复合列时使用的类型。

我正在使用 CQL3(通过 cqlsh)创建 CF,然后使用 CLI 发出描述命令。列中的类型按以下方式排序:...CompositeType(Type1,Type2,...) 不是我期望的类型。

我正在使用 Cassandra 1.1.6。

CREATE TABLE CompKeyTest1 (
KeyA int,
KeyB int,
KeyC int,
MyData varchar,
PRIMARY KEY (KeyA, KeyB, KeyC)
);

返回的复合类型是

CompositeType(Int32,Int32,UTF8)

不应该是 (Int32,Int32,Int32) 吗?

CREATE TABLE CompKeyTest2 (
KeyA int,
KeyB varchar,
KeyC int,
MyData varchar,
PRIMARY KEY (KeyA, KeyB, KeyC)
);

返回的复合类型是

CompositeType(UTF8,Int32,UTF8)

为什么和我定义表时使用的类型不一样?我可能在类型分配中遗漏了一些基本的东西......

谢谢!

最佳答案

复合列名由主键 2...n 的和正在保存的非主键列的名称组成。

(因此,如果您有 5 个非键字段,那么您将有五个这样的列,它们的列名将仅在最后一个组合值不同,该值将是非键字段名。)

因此在这两个示例中,复合列均由 KeyB、KeyC 的 和正在存储的列的名称 组成("MyData",在这两种情况下)。这就是为什么您会看到返回那些 CompositeTypes 的原因。

(顺便说一句,主键中的第一个键是分区键,它的值仅用作行键(如果您熟悉 Cassandra 的底层知识)。它不用作任何复合列名。)

关于Cassandra Composite Columns - 如何选择 CompositeTypes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218868/

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