【问题标题】:What are valid (and invalid) characters for Avro Schema namespacesAvro Schema 命名空间的有效(和无效)字符是什么
【发布时间】:2020-04-19 12:08:04
【问题描述】:

我有一个命名空间为“ca.gms.api-event-log”的 Avro 架构。我已经使用此架构将消息序列化到 Kafka,成功地向 Kafka 架构注册表注册了该架构,并使用 Kafka 连接器将该数据作为 .avro 文件发送到 Amazon S3。到目前为止,没有问题。

我现在正尝试使用 Azure 数据工厂将该数据从 AWS S3 复制到 Azure,它抱怨以下问题:

无法反序列化 Avro 源文件“topics/api-event-log/partition=0/api-event-log+0+0000000000.avro”。这可能是由无效的 Avro 数据引起的。检查数据并重试。命名空间“ca.gms.api-event-log”包含无效字符。 .活动 ID:12a7dda0-8cb7-4c79-a070-d366fddb1c00

“ca.gms.api-event-log”真的包含无效字符吗?不允许使用连字符吗? Apache Avro 规范似乎表明任何有效的 JSON 字符串都应该工作:https://avro.apache.org/docs/current/spec.html

【问题讨论】:

    标签: amazon-s3 apache-kafka avro apache-kafka-connect


    【解决方案1】:

    我注意到连字符在 Python avro 客户端中是不允许的,但在 Java API 中是可以的。

    因此,它最终取决于所使用的解析器,但我想说的是,经验法则是保持 Java 包的相同命名规则,其中连字符也是不允许的。

    注意:您可能应该尝试使用能够写入 Azure 的 Kafka 连接器,而不是支付 S3 存储 + 传输费用。如果您只是复制原始文件,也不清楚为什么文件甚至被打开以检查模式

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      相关资源
      最近更新 更多