serialization - Avro Schema 用于具有随机名称的非结构化数据
问题描述
我需要在 Avro 模式中保存名称不可预测的嵌套数据对象。例如:
{
"foo": "bar",
"baz": {
"randomName1": 0.23,
...
}
}
因为只能使用 records 创建递归映射,但 records 必须有一个字段名称,我想我需要将对象转换为其他东西。
我认为这三个选项之一:
(1) 嵌套键/值对数组
例子:
[
{
key: "foo",
value: "bar"
},
{
key: "baz",
value: [
{
name: "randomName1",
value; 0.23
},
...
]
},
]
(2) 带有点语法键/值对的平面图
例子:
{
"foo": "bar",
"baz.randomName1": 0.23,
...
}
(3) 扁平化键/值对象数组
例子:
[
{
"name": "foo",
"value": "bar"
},
{
"name": "baz.randomName1",
"value": 0.23
},
...
]
这三种方法都可以很好地转换为 Avro,但我不确定这两种方法的含义,例如在尝试通过 KSQL 查询这些值时。
任何关于未来潜在陷阱的暗示都受到高度赞赏。
解决方案
推荐阅读
- nuxt.js - Nuxt Vue 3,选项 api 工作正常时无法使用组合 api
- python - 如何使用 `add_next_tick_callback` 制作面板包裹的散景图?
- javascript - 在像抽屉一样的反应原生中显示垂直文本
- python - 为调用 Keras 模型的类设置种子
- javascript - 我的 JavaScript Fade-in on-scroll 功能不起作用
- sql - 查找中的聚合数据集
- symfony - Doctrine override_url 错误 Travis CI 上没有这样的文件或目录
- react-native-sound - 运行命令以在反应本机项目中安装声音依赖项时出错
- javascript - TypeScript 无法解析路径 (2307)
- office-js - 更新补丁后,“displayDialogAsync”开始给出错误 - 无法获取未定义或空引用的属性 displayDialogAsync