Cassandra中元组和用户定义类型之间的区别是什么

时间:2016-08-09 23:25:55

标签: cassandra datastax

有人能告诉我Cassandra中元组和用户定义类型之间的区别

1 个答案:

答案 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_numberzip_code可能可能会混淆 - 之后您将无法添加详细字段。 UDT允许这样做,并且还允许您按字段名称进行查询。

此外,性能没有显着差异。