创建一张流表,可以不断记录随时间而发生的事件。数据流表仅支持新增数据,不支持更新数据和删除数据。本文介绍如何通过DDL语句创建流表。
语法
CREATE STREAM [IF NOT EXISTS] [catalog_name.][db_name.]stream_name
(
{ <physical_column_definition> | <metadata_column_definition>}[ , ...n]
[ <table_constraint> ][ , ...n]
)
[COMMENT table_comment]
[WITH (key1=val1, key2=val2, ...)]
<physical_column_definition>:
column_name column_type [ <column_constraint> ] [COMMENT column_comment]
<column_constraint>:
[CONSTRAINT constraint_name] PRIMARY KEY NOT ENFORCED
<table_constraint>:
[CONSTRAINT constraint_name] PRIMARY KEY (column_name, ...) NOT ENFORCED
<metadata_column_definition>:
column_name column_type METADATA [ FROM metadata_key ] [ VIRTUAL ]
参数说明
参数 | 是否必选 | 说明 |
[catalog_name.][db_name.]stream_name | 是 |
|
table_comment | 否 | 流表的注释信息。 |
WITH OPTIONS | 否 | 用于存储与该表相关的额外信息。 说明 表达式 |
physical_column_definition | 是 | 物理列,指通常意义下的数据库字段,包括字段名称、字段类型和字段顺序等。外部系统根据物理字段读取或写入数据。
|
column_constraint | 否 | 列约束包含以下信息:
|
table_constraint | 否 | 表约束包含以下信息:
|
metadata_column_definition | 否 | 元数据列,指从外部存储系统中获取的元信息,包括topic、partition、offset、timetamp和timestamp等。允许用户将这些信息定义成表中的列。
|
示例
创建一个流表,用于记录车辆位置。
CREATE STREAM MyStream ( `car_id` BIGINT, `car_position` STRING);
使用元数据列设置数据写入的时间戳。
CREATE STREAM MySTREAM2 ( `car_id` BIGINT, `car_position` STRING, `record_time` TIMESTAMP_LTZ(3) METADATA FROM 'timestamp') ;
返回结果如下:
1 row affected
- 本页导读 (1)