0

设置

多个独立的源系统将 AVRO 事件推送到 Kafka 主题中。Kafka S3 接收器连接器从该主题读取 AVRO 事件并写入 S3 parquet 格式。

问题

我们模式注册表中的 AVRO 模式不符合标准。例如,源系统中的十进制字段在模式注册表中具有基本类型字符串和逻辑类型十进制。这些类型的组合在 AVRO 中是不允许的(十进制逻辑类型必须始终具有基本类型修复/字节。

这些不正确的 AVRO 模式会导致不正确的 PARQUET 文件模式。例如,在镶木地板中,十进制字段的类型为字符串,并且丢失了有关其十进制格式的所有详细信息。

问题

在模式注册表中拥有正确 AVRO 类型的最佳解决方案是什么?我们无法更新源系统以发送正确的类型。

我们是否应该使用带有自定义逻辑的 SMT 来处理逻辑类型?例如,通过搜索十进制逻辑类型并相应地更改基本类型和值?还是应该使用 KStream 或自定义序列化器/反序列化器而不是 SMT?还有哪些其他可用选项?

4

0 回答 0