Protobuf 函数

Protobuf 函数用于在 SQL 中直接解析和生成 Protocol Buffers 二进制数据。Kafka 消息、埋点上报、设备数据等常以 Protobuf 编码,原始字节写入 Lakehouse 后,可以用这些函数展开为结构化字段,不必先在外部程序中解码。

函数用途什么时候用
FROM_PROTOBUFProtobuf 二进制 → STRUCT需要按字段查询、过滤、展开嵌套数组
PROTOBUF_TO_JSONProtobuf 二进制 → JSON 字符串只需整体查看或转存为 JSON,不需要按字段计算
TO_PROTOBUFSTRUCT → Protobuf 二进制把表中数据编码为 Protobuf,供下游系统消费

三个函数都需要传入消息类型名和描述符(descriptor)。描述符是

.proto
.proto
文件编译后的
FileDescriptorSet
FileDescriptorSet
二进制,用
protoc
protoc
生成:

# 生成描述符文件,--include_imports 把依赖的 proto(如 google/protobuf/timestamp.proto)一并打包 protoc --include_imports --descriptor_set_out=event.desc event.proto # 转为十六进制字符串,在 SQL 中写作 x'<十六进制>' xxd -p event.desc | tr -d '\n'

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询