概述
数据表管理支持通过 SQL 创建物理表和视图表,下面介绍详细的语法。
创建数据表
格式要求
数据表名称
数据表名称需要满足以下条件:
- 仅支持小写字母、数字、下划线且以字母为首。
- 长度最多 100 个字符。
- 在当前数据库内,数据表名称不可重复。
字段名称
数据表中每个字段的名称需要满足以下条件:
- 仅支持小写字母、数字、下划线且以字母为首。
- 长度最多 100 个字符。
- 在当前数据表内,字段名称不可重复。
字段数据类型
创建数据表时,支持使用以下几种数据类型:
- <整型 Int>
- <长整型 Bigint>
- <双精度 Double>
- <字符串 String>
- <布尔 Bool>
- <时间戳 Timestamp>
- <集合 List>
创建物理表
可以通过如下语句创建物理表:
CREATE TABLE MyTable ( `user_id` BIGINT, `name` STRING ) WITH ( ... )
物理表主要分为两类:
- 主键表
- 非主键表
可以通过 WITH 子句 进行指定:
- 主键表的 table_engine 为 SDW_MUTABLE
- 非主键表的 table_engine 为 SDW_IMMUTABLE
下面会详细介绍。
主键表
创建主键表时需要包括以下信息:
- 主键字段:
- 主键表必须指定主键字段。
- 主键字段必须是已定义的数据表字段,格式 :PRIMARY KEY(`xxx`) NOT ENFORCED, 可以填多个字段,多个字段逗号分隔,如 PRIMARY KEY(`aaa`, `bbb`) NOT ENFORCED。
- 主键字段数量建议不超过 3 个字段,仅支持选择 String、 Bigint、 Int 类型作为主键字段。
- WITH 子句: 必填,用于指定表类型,如:'table_engine'='SDW_MUTABLE' 表示这个表是主键表。
示例
CREATE TABLE sensors_mutable_table (
`customer_id` STRING,
`col1` LIST,
`col2` BIGINT,
PRIMARY KEY(`customer_id`) NOT ENFORCED
)
WITH (
'table_engine'='SDW_MUTABLE'
)
CODE
非主键表
创建非主键表需要包括以下信息:
- 分区字段:
- 非主键表可以根据自身需求,额外配置分区字段。
- 分区字段必须是已定义的字段,格式 PARTITIONED BY(`xxx`), 可以指定多个字段,多个字段逗号分隔,请注意确保字段顺序正确, 如 PARTITIONED BY(`year`, `month`)
- 分区字段数量建议不超过 5 个字段,仅支持 String 类型作为分区字段。
- WITH 子句:必填,用于指定表类型和文件格式:
- 'table_engine'='SDW_IMMUTABLE' 表示这个表是非主键表。
- 'file_format'='PARQUET' 文件格式,目前只支持 PARQUET。
示例
CREATE TABLE sensors_immutable_table (
`date` BIGINT,
`col1` STRING,
`col2` DOUBLE
)
PARTITIONED BY(`date`) WITH (
'table_engine'='SDW_IMMUTABLE',
'file_format'='PARQUET'
)
CODE
创建视图表
可以通过如下语句创建视图表:
CREATE VIEW sensorsdb.myview AS SELECT * FROM sensorsdb.table1
示例
CREATE VIEW sensors_event_view AS SELECT * FROM sensors_test.mutable_table
CODE
可以在 创建数据表 页面 SQL 逻辑配置 区域的输入框左侧的目录中查找创建视图表所需的数据表和表字段。
如果引用了没有表数据权限的数据表,则会在校验 SQL 和提交时报错。
SQL 语句校验
在 创建数据表 页面 SQL 逻辑配置 区域,我们提供了 格式化 和 校验 SQL 功能。
- 格式化:当您完成建表语句后,可点击右上角的 格式化 按钮,自动整理 SQL 语句格式,以便更好的阅读和检查 SQL 语法。
- 校验 SQL :当您完成建表语句后,请点击右上角的 校验 SQL 按钮,校验您的建表语句是否符合语法要求。如果未通过校验,会在下方展示错误日志。请修正后再次尝试校验或提交。