

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CREATE STREAM
<a name="sql-reference-create-stream"></a>

CREATE STREAM 语句创建一个（本地）流。流的名称必须与同一架构中任何其他流的名称不同。最好包括流的描述。

与表一样，流也有列，您可以在 CREATE STREAM 语句中为这些列指定数据类型。它们应映射到您要为其创建流的数据来源。对于 column\$1name，可以使用任何有效的非保留 SQL 名称。列值不能为 null。
+ 指定 OR REPLACE 会重新创建已存在的流，从而允许对现有对象进行定义更改，无需先使用 DRP 命令即可隐式删除该流。在已有数据在运行的流上使用 CREATE OR REPLACE 会结束流并丢失所有历史记录。
+ 只有指定了 OR REPLACE，才能指定 RENAME。
+ 有关采用 type\$1specification 的类型和值的完整列表 [如 TIMESTAMP、INTEGER 或 varchar(2)]，请参阅《Amazon Kinesis Data Analytics SQL 参考指南》中的主题“Amazon Kinesis Data Analytics 数据类型”。
+ 对于 option\$1value，可以使用任何字符串。

## 未解析的日志数据的简单流
<a name="sql-reference-capture-stream-simple"></a>

```
CREATE OR REPLACE STREAM logStream (
    source  VARCHAR(20),
    message VARCHAR(3072))
DESCRIPTION 'Head of webwatcher stream processing';
```

## 从智能旅行系统管道捕获传感器数据的流
<a name="sql-reference-create-stream-capturing-sensor"></a>

```
CREATE OR REPLACE STREAM "LaneData" (
    -- ROWTIME is time at which sensor data collected
    LDS_ID  INTEGER,        -- loop-detector ID
    LNAME   VARCHAR(12),
    LNUM    VARCHAR(4),
    OCC     SMALLINT,
    VOL     SMALLINT,
    SPEED   DECIMAL(4,2)
) DESCRIPTION 'Conditioned LaneData for analysis queries';
```

## 从电子商务管道捕获订单数据的流
<a name="sql-reference-create-stream-capturing-order"></a>

```
CREATE OR REPLACE STREAM "OrderData" (
    "key_order"    BIGINT NOT NULL,
    "key_user"     BIGINT,
    "country"      SMALLINT,
    "key_product"  INTEGER,
    "quantity"     SMALLINT,
    "eur"          DECIMAL(19,5),
    "usd"          DECIMAL(19,5)
) DESCRIPTION 'conditioned order data, ready for analysis';
```