文档

CREATE STREAM

更新时间:

创建一张流表,可以不断记录随时间而发生的事件。数据流表仅支持新增数据,不支持更新数据和删除数据。本文介绍如何通过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

  • [catalog_name]:指定该流表的Catalog。

  • [db_name]:指定该流表的数据库。

  • stream_name:流表名称。

table_comment

流表的注释信息。

WITH OPTIONS

用于存储与该表相关的额外信息。

说明

表达式key1 = val1中的键和值必须都是String类型,具体请参考连接器参数

physical_column_definition

物理列,指通常意义下的数据库字段,包括字段名称、字段类型和字段顺序等。外部系统根据物理字段读取或写入数据。

  • column_name:物理列的列名。

  • column_type:物理列的数据类型。

  • column_constraint:物理列约束。

  • column_comment:物理列的注释信息。

column_constraint

列约束包含以下信息:

  • constraint_name:列约束的名称。

  • PRIMARY KEY NOT ENFORCED:声明为主键,但是不做强校验。

table_constraint

表约束包含以下信息:

  • constraint_name:表约束的可选名称。

  • PRIMARY KEY NOT ENFORCED:声明为主键,但是不做强校验。

metadata_column_definition

元数据列,指从外部存储系统中获取的元信息,包括topic、partition、offset、timetamp和timestamp等。允许用户将这些信息定义成表中的列。

  • column_name:元数据列的列名。

  • column_type:元数据列的数据类型。

  • METADATA:标识元数据列。

  • metadata_key:可作为元数据列的键。

    说明

    例如,当外部数据源为Kafka时,元数据列的可选键请参见Apache Kafka SQL Connector

  • VIRTUAL:如果不希望某个元数据列写入到外部存储中,则使用VIRTUAL关键字。

示例

  • 创建一个流表,用于记录车辆位置。

    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)
文档反馈