创建一张数据流表,表示一个无界的事件集合。数据流表仅支持新增数据,不支持更新数据和删除数据。数据流表中的最小单元为Record,Record有预定义的Schema。数据流表的物理数据存储在流存储的某个指定的Topic上,具体的存储格式可以在With语句中指定。

语法

CREATE STREAM (IF NOT EXISTS) table_name
                   ('(' tableElement (',' tableElement)* ')')
                   (WITH tableProperties)

tableElement
    : columnDefinition
    ;

columnDefinition
    : identifier type (NOT NULL) (COMMENT string) (WITH properties)
    ;

tableProperties
    : '(' tableProperty (',' tableProperty)* ')'
    ;

tableProperty
    : identifier EQ expression
    ;

参数说明

参数 是否必选 说明
table_name 数据流表的名称。
tableElement 定义数据流表的列,格式为:列名 列的数据类型
tableProperties 指定数据流表的属性,包括以下配置项:
  • VALUE_FORMAT:必选项,指定数据源写入Lindorm流引擎的数据格式,包括CSV、Avro、JSON等格式。
  • KEY_VALUE:必选项,指定数据流表的主键列。
  • STREAM_TOPIC:必选项,指定数据流表的物理数据存储在流存储的某个Topic上。
  • TIMESTAMP:可选项,指定时间戳列。

示例

CREATE STREAM users_original (
  registertime bigint,
  gender varchar,
  regionid varchar,
  userid varchar)
WITH (
    stream_topic='users',
    value_format='JSON',
    key_value = 'userid'
);