有人能告诉我Cassandra中元组和用户定义类型之间的区别
答案 0 :(得分:4)
数据传输documents
您可以使用元组作为用户定义类型的替代方法 不需要添加新字段。
User-defined types为您提供更多灵活性,可以在以后需要更新数据时更改字段数,并允许您为每个字段指定有意义的名称。 UDT如何工作的典型例子是地址。
CREATE TYPE mykeyspace.address (
street_number int,
street text,
city text,
zip_code int,
phones set<text>
);
并创建表格
CREATE TABLE users (
id uuid PRIMARY KEY,
address frozen <address>
);
元组等价物将是
CREATE TABLE users (
id uuid PRIMARY KEY,
address <tuple<int, text, text, int, set<text>>
);
所以元组最适合固定数量的字段名称不重要的收集数据(地址列绝对不是一个好的用例;字段很重要 - street_number
和zip_code
可能可能会混淆 - 之后您将无法添加详细字段。 UDT允许这样做,并且还允许您按字段名称进行查询。
此外,性能没有显着差异。