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

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

创建泵

数据泵是一个 Amazon Kinesis Data Analytics 存储库对象(SQL 标准的扩展),它提供连续运行的 INSERT INTO 流 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>