在声明cassandra家族时指定column_metadata总是一个好主意吗?



我知道column_metadata可用于为任何列提供配置,但通常情况下,我不需要特定于列的配置。在这种情况下,在创建家族时使用column_metadata有什么优势吗?

具体来说,写作有什么优势吗?

create column family session
    with comparator = UTF8Type
    and column_metadata =
    [{
        column_name : account,
        validation_class : UTF8Type
    }
];
不是

create column family session
    with comparator = UTF8Type;

这是关于Comparators还是Validation_class的问题?这两个AFAIK有两个非常不同的含义。

在上面的例子中,我的阅读方式是

1)你的Column_names将是UTF8Type字符串。2)你没有定义任何default_validation_class,因此每个column_value使用字节类型进行验证(即没有验证)3)您希望列"帐户"具有UTF8类型的值。如果您要存储没有字母的帐号,您可以像这样指定一个Long。

<>之前创建列族会话与comparator = UTF8Type和column_metadata =[{Column_name: account;validation_class:长}]; * *之前

在此之后,在您的帐户列中只能存储数字。

简而言之,Comparator是Column_Name的数据类型。Validation_class用于列的值,对于不同的列可以是不同的。

最新更新