建表的基础语法如下 ( [] 之间的内容是可选部分):
CREATE TABLE [IF NOT EXISTS] table_name ( column_definitions ) ENGINE = engine_type [WITH ( table_options )];
列定义的语法 :
column_name column_type [[NOT] NULL] {[TAG] | [TIMESTAMP KEY] | [PRIMARY KEY]} [COMMENT '']
表选项的语法是键-值对,值用单引号(')来引用。例如:
... WITH ( enable_ttl='false' )
添加 IF NOT EXISTS 时,CeresDB 在表名已经存在时会忽略建表错误。
一个列的定义至少应该包含名称和类型部分,支持的类型见 这里。
列默认为可空,即 "NULL " 关键字是隐含的;添加 NOT NULL 时列不可为空。
-- this definition a_nullable int -- equals to a_nullable int NULL -- add NOT NULL to make it required b_not_null NOT NULL
定义列时可以使用相关的关键字将列标记为 特殊列。
CeresDB 支持指定某个表使用哪种引擎,目前支持的引擎类型为 Analytic。注意这个属性设置后不可更改。
仅适用于集群部署模式
CREATE TABLE ... PARTITION BY KEY
下面这个例子创建了一个具有 8 个分区的表,分区键为 name:
CREATE TABLE `demo` ( `name` string TAG COMMENT 'client username', `value` double NOT NULL, `t` timestamp NOT NULL, timestamp KEY (t) ) PARTITION BY KEY(name) PARTITIONS 8 ENGINE=Analytic with ( enable_ttl='false' )