我有一个名称空间为"ca.gms.api-event-log“的Avro模式。我已经使用此模式将消息序列化为Kafka,成功地向Kafka模式注册表注册了该模式,并使用Kafka连接器将数据以.avro文件的形式发送到亚马逊S3。到目前为止,没有任何问题。
我现在正在尝试使用Azure数据工厂将数据从亚马逊网络服务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
发布于 2020-01-05 15:43:56
我注意到,在Python avro客户端中不允许使用连字符,但在Java API中可以使用。
因此,这最终取决于所使用的解析器,但我要说的是,经验法则是保持Java包的命名规则不变,其中也不允许使用连字符。
注意:您可能应该尝试使用能够写入Azure的Kafka连接器,而不是支付S3存储+传输费用。如果只是复制原始文件,也不清楚为什么要打开文件来检查模式
https://stackoverflow.com/questions/59536015
复制