apache-kafka - 将 ksqlDB MAP 转换为 ARRAY
问题描述
我有一个 ksqlDB 列,MAP<STRING, STRUCT>
我正在寻找一种将其转换为的方法ARRAY<STRUCT>
该功能ENTRIES()
看起来像正确的工具,但使用它我得到了
Function 'ENTRIES' does not accept parameters (MAP<STRING, STRUCT<C STRING, D STRING>>).
Valid alternatives are:
ENTRIES(MAP<STRING, DOUBLE> map, BOOLEAN sorted)
ENTRIES(MAP<STRING, BOOLEAN> map, BOOLEAN sorted)
ENTRIES(MAP<STRING, VARCHAR> map, BOOLEAN sorted)
ENTRIES(MAP<STRING, BIGINT> map, BOOLEAN sorted)
ENTRIES(MAP<STRING, INT> map, BOOLEAN sorted)
是否有其他方法可以实现相同的目标?
更新: 我收到的消息如下所示:
{"a":1, "b":{"b1": {"c":"aaa", "d":"bbb"}, "b2": {"c":"ccc", "d":"ddd"}}}
这被映射到如下模式:
a INT,
b MAP<STRING, STRUCT<
c STRING,
d STRING
>>
我想将其转换为的架构是:
a INT,
b ARRAY<STRUCT<
c STRING,
d STRING
>>
转换后的消息应如下所示:
{"a":1, "b":[{"c":"aaa", "d":"bbb"},{"c":"ccc", "d":"ddd"}]}
解决方案
看起来 ksqlDB 还不ENTRIES
支持这个。
我会在https://github.com/confluentinc/ksql/issues/new记录一个增强请求。
推荐阅读
- python - 列出我无法弄清楚的 Python 中的问题
- linux - N:忽略目录“/etc/apt/sources.list.d/”中的文件“yarn.lis”,因为它具有无效的文件扩展名
- ansible - 在多台服务器上循环命令后重新启动服务
- javascript - Node.js createWriteStream 'finish' 调用晚
- rust - 在 Rust 中模仿 Python 输入函数的惯用方式
- c# - Angular8 应用程序 http 页面刷新错误 405
- angular - ngx-pagination 不适用于过滤表
- python - 给定一组数据点拟合积分函数
- php - 查询执行没有错误,但数据库中没有数据
- python - 删除图像“分类”中的 argsort 函数?