在 Cassandra 中创建表
在本文中,我们将讨论如何在 Cassandra 中创建表,并讨论列定义、键角色、表选项(紧凑存储和集群顺序)等。
在 Cassandra 中,CQL 表具有名称并存储行。创建表时,您需要定义行的列、用于标识每行的强制主键、列数据类型以及您可以选择的任何其他附加信息。
要创建表,请使用下面给出的“创建表”语句,如下所示。
下面是一个典型的建表语句。
Syntax: Creating a Table.
CREATE TABLE [ IF NOT EXISTS ] table_name
'('
column_definition
( ', ' column_definition )*
[ ', ' PRIMARY KEY '(' primary_key ')' ]
')' [ WITH table_options ]
现在,您可以在这里使用任何现有的键空间,例如名为 App_data 的键空间。
use App_data;
现在,您可以创建表 User_data,其中 Name、id、address 是表中的字段。
CREATE TABLE User_data (
Name text,
id uuid,
address text,
PRIMARY KEY (id)
);
现在,您可以验证表是否已创建,如果已创建,则验证表定义。
通过使用现有的键空间,例如 App_data。
cassandra@cqlsh> use App_data;
cassandra@cqlsh:app_data>
cassandra@cqlsh:app_data> CREATE TABLE User_data (
... id uuid,
... Name text,
... address text,
... PRIMARY KEY (id)
... );
在 Cassandra 中,主键由第一列或多个列组成,是强制分区键,然后是一个或多个集群列。
COLUMN_DEFINITION
在 Cassandra 中,column_definition 子句由列的名称及其类型以及两个修饰符组成。
静态:在 Cassandra 中,静态列对于共享相同分区键的所有行具有相同的值(稍后解释)。当然,只有非主键可以是静态的。
主键:主键唯一标识一行,所有表都必须定义一个主键是一个很好的做法。
现在,您可以在这里验证创建的表 User_data。
cassandra@cqlsh:app_data> describe User_data;
CREATE TABLE app_data.user_data (
id uuid PRIMARY KEY,
address text,
name text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction =
{
'class': 'org.apache.cassandra.db.compaction
.SizeTieredCompactionStrategy',
'max_threshold': '32', 'min_threshold': '4'
}
AND compression = {'chunk_length_in_kb': '64',
'class': 'org.apache.cassandra.io
.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';