如何从 protobuf 编码事件写入 delta?

问题描述 投票:0回答:1

我有一个 Azure 事件中心 - 它提供了一个兼容 Kafka 的接口 - 启用了 protobuf 编码事件。我想找到一种有效的方法来持续响应这些事件并将它们写入 delta。

我可以为此使用 databricks,但对于如此简单的操作来说成本太高 - 我不需要大数据工具。

我也研究过Azure的流分析,但对于如此简单的操作来说,它的成本仍然相对较高。

我发现了这个名为 Kafka Delta Ingest 的“高效守护进程”,它非常完美,但只能与 avro 或 json 一起使用。

如何在不使用昂贵的大数据工具的情况下写入 delta?

apache-kafka protocol-buffers azure-eventhub delta-lake delta
1个回答
0
投票

如果您收到 Protobuf 编码的消息(事件),您可以选择将它们重新编码为 JSON,然后您可以将其传递给 Delta。模式是:

  1. 正常解码传入事件
  2. 将结果对象格式化/重新序列化为 JSON。

将对象格式化为 JSON 的方式可能因语言而异。早在 3.11.2 版本中,它就已经被添加到 C++ 生成的代码中。 Java 有

com.google.protobuf.util.JsonFormat
。 C# 获得
JsonFormatter
JsonParser
,Go 获得
protojson

我不知道 JSON 格式是否稳定/标准化,即 C# JSON 格式化程序输出的 JSON 是否符合 C++ JSON 解析器。我希望是这样,但你可能想检查一下。我有点谨慎,因为使用了“格式”等术语而不是“序列化”,就好像它是为了漂亮的输出而不是发送者和接收者之间的正式合同。

© www.soinside.com 2019 - 2024. All rights reserved.