我想使用 Analytics SQL 将输入流中列的所有窗口值组合到输出流中的数组中。
假设我有一个看起来像这样的数据:
事件 | product_id | 产品价格 |
---|---|---|
页面预览 | 1111 | 3.99 |
页面预览 | 2222 | 10.99 |
以下 SQL 将为我提供每 30 分钟窗口显示的输出,查看了多少产品以及其中的最高价格是多少。
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
"event_type" varchar(32),
"count_products_viewed" integer,
"max_price_viewed" decimal(7,2)
);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM
"stream_1"."event",
COUNT("stream_1"."product_id") as "count_products_viewed,
MAX("stream_1"."product_price") as "max_price_viewed"
FROM "SOURCE_SQL_STREAM_001" as "stream_1"
WINDOWED BY STAGGER (
PARTITION BY
"stream_1"."event"
RANGE INTERVAL '30' MINUTE
);
所以输出数据会像
事件 | count_products_viewed | max_price_viewed |
---|---|---|
页面预览 | 2 | 10.99 |
如果我想添加另一列,使其看起来像
事件 | count_products_viewed | max_price_viewed | list_products_viewed |
---|---|---|---|
页面预览 | 2 | 10.99 | [1111, 2222] |
我需要做什么?尝试梳理文档,但没有找到在窗口期间处理所有列值的任何内容。
它不需要是文字数组 - 我可以使用相同数据的 json 字符串。
谢谢!