Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions zh_CN/sql-reference/statements/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ with(k=v,k1=v1)

对于时序(TimeSeries)引擎,至少有一个列需要为 **TIMESTAMP** 类型,且必须使用 `timestamp key` 语句来指定唯一的 timestamp key 列,这个列的类型必须为 **TIMESTAMP**。

::: tip
针对非 **TIMESTAMP** 类型,默认值只支持常量设置。针对 **TIMESTAMP** 类型,默认值除了常量外还支持输出`CURRENT_TIMESTAMP`,在写入数据时如果没有给出时间戳值将会使用写入时间。
::: tips
**TIMESTAMP** 类型字段,默认值支持数值常量、RFC3339 / ISO8601 格式时间字符串以及时间戳函数`CURRENT_TIMESTAMP`,在写入数据时对于缺失的 **TIMESTAMP** 类型字段会自动设置为当前时间。
其他类型字段的默认值仅支持常量。
:::

示例
Expand Down
52 changes: 43 additions & 9 deletions zh_CN/sql-reference/table-engine/timeseries.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,38 @@
```SQL
CREATE TABLE [IF NOT EXISTS] [database.]table_name
(
name1 type1 [ DEFAULT default_expr ],
name2 type2 [ DEFAULT default_expr ] ,
name1 TIMESTAMP [ DEFAULT default_expr ],
name2 type [ DEFAULT default_expr ],
name3 type [ DEFAULT default_expr ] ,
...
TIMESTAMP KEY (expr),
TIMESTAMP KEY (name1),
[ PRIMARY KEY (name1, ...) ],
...
)
PARTITION BY HASH(column_name) PARTITIONS 2
PARTITION BY HASH(column_list) PARTITIONS 2
[ENGINE=TimeSeries]
[ WITH ( [ key = value] [, ... ] ) ]
```

**说明**

* TIMESTAMP KEY: 用户必须指定唯一的 `TIMESTAMP KEY`,TIMESTAMP KEY 字段必须为 `TIMESTAMP` 类型。
* ENGINE: 用于指定表引擎,时序引擎为: TimeSeries。
* PARTITION: 在时序引擎中,一般将数据源唯一标识作为 partition key,并通过 PARTITIONS 设置分区数量(合理的设计分区数量有利于提升性能)。
* 创建表时可以通过`WITH`参数对表进行配置。
* TIMESTAMP KEY
用户必须指定唯一的 `TIMESTAMP KEY`,TIMESTAMP KEY 字段必须为 `TIMESTAMP` 类型。
* PRIMARY KEY
用户可以指定 PRIMARY KEY,PRIMARY KEY 中必须包含 TIMESTAMP KEY,用于确定数据的唯一性。
* PARTITION
* **BY** 根据指定列进行分区。
* **HASH** 表示按给定列的顺序依次计算 HASH 值,并按 HASH 结果计算分区。当前仅支持 HASH 算法。
* **column_list** 必须是`PRIMARY KEY`中除了`TIMESTAMP KEY`列以外的列的子集或者全集(如果指定了`PRIMARY KEY`)。
* **PARTITIONS** 表示分区数量,[合理的设置分区](../../development-guide/high-performance-writing.md#partition-数量)数量有利于提升性能。
* ENGINE
指定表引擎,未指定时默认为时序引擎 TimeSeries。
* WITH
指定 table options。

*注:创建表之后,不支持修改 TIMESTAMP KEY, PARTITION 以及 PRIMARY KEY。*

### 支持的 Table Options

| Name | Description |
| ------------------------ |------------------------------------------------------------------------------------------------------------------------- |
Expand All @@ -46,7 +61,9 @@ PARTITION BY HASH(column_name) PARTITIONS 2
| COMPACT_TIME | 非活跃窗口合并的工作时间,缺省值为当前系统设置时区的 `02:00~06:00`。支持 UTC 时区设置形式如: UTC,02:00\~06:00 支持多时间窗口设置形式如: UTC,02:00\~04:00,13:00\~15:00,不允许多个时间窗口重叠,允许时间跨凌晨如:23:00\~02:00 |
| COMPACT_MODE | Compaction 支持的模式,缺省值为:`[COMPACT,TTL]`,支持选项:COMPACT,TTL,Delta,可以组合使用。当组合多个选项时,需以'[]'括起来,中间以英文逗号分隔,例如: `[COMPACT,TTL,Delta]`。如需关闭 Compaction,则指定为 Disable |

**示例**
### 示例1

指定 ts 列为 TIMESTAMP KEY,同时按 sn 列进行分区,分区数量为6

```SQL
CREATE TABLE sensor_info (
Expand All @@ -61,6 +78,23 @@ ENGINE=TimeSeries
WITH (ttl='7d', memtable_size='512MiB')
```

### 示例2

指定 ts 列为 TIMESTAMP KEY,ts、sn、zone 为 PRIMARY KEY,同时按 zone 列进行分区,分区数量为2

```SQL
CREATE TABLE sensor_info (
ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
sn INT64 NOT NULL,
zone string,
speed DOUBLE,
temperature REAL,
TIMESTAMP KEY (ts)
PRIMARY KEY (ts, sn, zone)
)
PARTITION BY HASH(zone) PARTITIONS 2
```

## 修改表

```SQL
Expand Down