Doris建表语句
时间: 2023-06-28 19:16:23 浏览: 165
Doris建表语句的语法与MySQL的语法基本一致,下面是一个示例:
```sql
CREATE TABLE <table_name> (
<column_name> <data_type> [NOT NULL] [DEFAULT <default_value>],
...
[PRIMARY KEY (<key_column>, ...)]
)
[COMMENT '<table_comment>']
[PARTITION BY <partition_type> (<partition_column>) [PARTITIONS <num_partitions>]]
[BUCKETS <num_buckets>]
```
其中,`<table_name>`是要创建的表名,`<column_name>`是表的列名,`<data_type>`是列的数据类型,可以是MySQL支持的任意数据类型,`NOT NULL`和`DEFAULT`是可选的列约束,`PRIMARY KEY`是可选的主键约束,`<key_column>`是主键列名。`COMMENT`是可选的表注释,`PARTITION BY`是可选的分区方式,`<partition_type>`可以是`HASH`、`RANGE`或`KEY`,`<partition_column>`是分区键列名,`PARTITIONS`是可选的分区数,`BUCKETS`是可选的分桶数,`<num_buckets>`是分桶数量。
例如,下面是一个按照时间分区、按照用户ID哈希分桶的表的建表语句:
```sql
CREATE TABLE user_log (
user_id BIGINT NOT NULL,
event_time TIMESTAMP NOT NULL,
event_type VARCHAR(16) NOT NULL,
event_data TEXT,
PRIMARY KEY (user_id, event_time)
)
COMMENT '用户行为日志表'
PARTITION BY RANGE (TO_DAYS(event_time)) (
PARTITION p202101 VALUES LESS THAN (TO_DAYS('2021-02-01')),
PARTITION p202102 VALUES LESS THAN (TO_DAYS('2021-03-01')),
PARTITION p202103 VALUES LESS THAN (TO_DAYS('2021-04-01'))
)
BUCKETS 16;
```
这个表按照时间分为三个分区,每个分区包含一个月的数据。同时,这个表使用哈希分桶,分为16个桶。
阅读全文