sql - 将所有记录放在 Amazon Kinesis Analytics SQL 的数组列中?
问题描述
我想使用 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 字符串。
谢谢!
解决方案
推荐阅读
- xaml - 我如何知道应用程序是否使用 Silverlight?
- react-native - React Native 中样式表中的对象
- node.js - 安装项目 reactjs 失败
- vhdl - VHDL“致命错误:HDLParsers:vhptype.c”错误
- android - 如何在 Android NDK 中包含/使用最新版本的 Opus 编解码器
- postgresql - 连续 ID 块上的 PostgresQL 窗口函数
- javascript - 如何在 HTML 表格中自定义“排序依据”?
- python - holoviz/param/panel:通过 python 回调更新 Str 或 HTML 窗格
- python - python 装饰器不接受函数的参数
- reactjs - 获取 laravel8 fortify、sanctum api 数据并在 react 中展示