我在模式文件中定义我的数据库模型,以便稍后从头开始轻松创建键空间和列族.我查看了Cassandra发行版附带的schema-sample.txt,它展示了如何使用column_metadata创建标准列系列,如下所示:
create column family User
with comparator = UTF8Type
and default_validation_class = UTF8Type
and column_metadata = [
{column_name : name, validation_class : UTF8Type}
{column_name : username, validation_class : UTF8Type}
{column_name : City, validation_class : UTF8Type}
];
Run Code Online (Sandbox Code Playgroud)
但是,如何使用类似的语法创建超级列族?我想定义我将放在超级列族中的超级列的列名.
要创建超级列族,您只需添加column_type属性:
create column family User
with column_type = 'Super'
and comparator = UTF8Type
and default_validation_class = UTF8Type;
Run Code Online (Sandbox Code Playgroud)
您无法在元数据中定义超级列的名称.元数据用于验证列值或创建索引.由于您无法验证超级列的值(值是更多列)而您无法在超级列上创建索引,因此没有理由为它们设置元数据.
您可以使用超级列创建有关子列的元数据,但它将应用于该行中的所有超级列.例如:
create column family User
with column_type = 'Super'
and comparator = UTF8Type
and default_validation_class = UTF8Type
and column_metadata = [
{column_name : name, validation_class : UTF8Type}
{column_name : age, validation_class : LongType}
];
Run Code Online (Sandbox Code Playgroud)
在这个超级列族中,任何名为"name"的子列都必须是UTF8,任何名为age的子列都必须是long.
归档时间: |
|
查看次数: |
6499 次 |
最近记录: |