CREATE PUMP
数据泵是一个 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>