c - 如何使用 Avro C 库解码从 Kafka 读取的二进制文件?

标签 c decode avro

我能够使用 Java API 解码从 Kafka 读取的二进制文件,因为 DecoderFactory 中有 BinaryDecoder。我正在尝试使用 C API 重复此操作。

然而,到目前为止还没有运气。设置值然后获取值很简单(模式和数据相互绑定(bind))。在将编码数据放入 Kafka 的情况下,我们需要使用提供的模式对数据进行解码。谁能阐明如何使用 C API 执行此操作?多谢!

比如我们会从Kafka中得到如下经过编码的数据

"site_visit^Z111.222.333.444^@^T1446231845^@^N1209600^@^F1.0"

我们有可用的模式(与上面的数据分开,就像我们使用 Java 所做的那样):

我希望解码后的数据是:

{"segment_name": "site_visit", "ip_address": "111.222.333.444", "received_at": "T1446231845", "ttl": "1209600", "probability": "1.0"}

最佳答案

您可以使用 libserdes以此目的。有示例(serdes-kafka-avro-client.c、kafka-serdes-avro-console-consumer.cpp)如何获得这样的 JSON 结果。

关于c - 如何使用 Avro C 库解码从 Kafka 读取的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863258/

相关文章:

c - 是否在 C 中实现了 void 安全?

c++ - 在什么平台上 memmove 和 memcpy 会有显着的性能差异?

hadoop - Hive 的创建外部表是否复制数据?

python - 如何将 mmap.mmap Python 对象转换为字符串?

arrays - swift 4 : Decode array

具有(反)序列化器和模式验证的 Python JSON REST 框架 (jsonschema/avro)

java - 从某个 Java 对象生成 Avro Schema

c - C中 bool 表达式的结果

c - 使用 eclipse 从 C 开始

sql - 使用 substr 和 instr 更新分隔字符串