创建泵 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建泵

泵是 AAmazon Kinesis Data Analytics 存储库对象(SQL 标准的扩展),它提供持续运行的 INSERT INTO stream SELECT... FROM 查询功能,从而使查询结果能够持续输入到命名流中。

您需要为查询和命名流指定列列表(这意味着一组源-目标对)。列列表需要在数据类型方面匹配,否则 SQL 验证器会拒绝它们。(它们不必列出目标流中的所有列;你可以为一列设置一个泵。)

有关更多信息,请参阅SELECT

以下代码首先创建和设置架构,然后在此架构中创建两个流:

  • “OrderDataWithCreateTime” 将用作泵的原始流。

  • “OrderData” 将用作泵的目标流。

CREATE OR REPLACE STREAM "OrderDataWithCreateTime" ( "key_order" VARCHAR(20), "key_user" VARCHAR(20), "key_billing_country" VARCHAR(20), "key_product" VARCHAR(20), "quantity" VARCHAR(20), "eur" VARCHAR(20), "usd" VARCHAR(20)) DESCRIPTION 'Creates origin stream for pump'; CREATE OR REPLACE STREAM "OrderData" ( "key_order" VARCHAR(20), "key_user" VARCHAR(20), "country" VARCHAR(20), "key_product" VARCHAR(20), "quantity" VARCHAR(20), "eur" INTEGER, "usd" INTEGER) DESCRIPTION 'Creates destination stream for pump';

以下代码使用这两个流来创建泵。从 “OrderDataWithCreateTime” 中选择数据并将其插入到 “OrderData”。

CREATE OR REPLACE PUMP "200-ConditionedOrdersPump" AS INSERT INTO "OrderData" ( "key_order", "key_user", "country", "key_product", "quantity", "eur", "usd") //note that this list matches that of the query SELECT STREAM "key_order", "key_user", "key_billing_country", "key_product", "quantity", "eur", "usd" //note that this list matches that of the insert statement FROM "OrderDataWithCreateTime";

有关更多详细信息,请参阅 Amazon Kinesis Data Analytics 开发人员指南中的应用程序内流和泵主题。

语法

CREATE [ OR REPLACE ] PUMP <qualified-pump-name>                       [ DESCRIPTION '<string-literal>' ] AS <streaming-insert>

其中 streaming-insert 是插入语句,例如:

INSERT INTO ''stream-name'' SELECT "columns" FROM <source stream>