CREATE STREAM

流表是Lindorm消息引擎中用于组织和存储数据的一种表结构,CREATE STREAM语句用于在Lindorm消息引擎中创建流表。

引擎与版本

  • CREATE STREAM语法仅适用于消息引擎。

  • 消息引擎3.8.0及以上版本支持CREATE STREAM语法。

重要

要求Lindorm SQL为2.7.0以上版本。如何查看Lindorm SQL的版本,请参见SQL版本说明

语法

create_stream_statement   ::= CREATE STREAM [ IF NOT EXISTS ] stream_identifier
                              [ WITH  stream_options ];
stream_options            ::=  '(' option_definition (',' option_definition )*  ')'
option_definition         ::=  option_identifer '=' string_literal

使用说明

流表名(stream_identifier)

关于流表名的设置,您需要注意以下内容:

  • 可包含数字、大写英文字符、小写英文字符、半角句号(.)、中划线(-)和下划线(_)。

  • 表名不能以半角句号(.)或中划线(-)开头。

  • 表名的长度为1~255字符。

流表属性(stream_options)

您可以通过WITH关键字在创建流表时指定以下属性:

选项

类型

描述

PARTITIONS

INT

数据分片的数量。默认值为1

CLEANUP

STRING

数据分片的日志清理策略。可选策略为delete或者compact。默认值为delete

RETENTION_SIZE

LONG

控制数据分片日志保留的大小,单位为字节(Byte)。需要搭配delete清理策略一同使用。默认值为-1(即不会因为日志保留大小清除日志)。

RETENTION_MS

LONG

控制数据分片日志保留的时间,单位为毫秒(ms)。需要搭配delete清理策略一同使用。默认值为604800000,即7天。

示例

创建一个名为st的流表,其包含两个数据分片,日志保留1天。

CREATE STREAM IF NOT EXISTS st WITH(PARTITIONS=2,RETENTION_MS=86400000,CLEANUP='compact');

结果验证

您可以通过SHOW TABLES;语句查看流表是否创建成功。