Amazon s3 Avro架构名称空间的有效(和无效)字符是什么

Amazon s3 Avro架构名称空间的有效(和无效)字符是什么,amazon-s3,apache-kafka,avro,apache-kafka-connect,Amazon S3,Apache Kafka,Avro,Apache Kafka Connect,我有一个名称空间为“ca.gms.api事件日志”的Avro模式。我已经使用此模式将消息序列化到Kafka中,并成功地在Kafka模式注册表中注册了该模式,并且正在使用Kafka连接器将该数据作为.avro文件发送到Amazon S3。到目前为止,没有问题 我现在正试图使用Azure data Factory将该数据从AWS S3复制到Azure,它抱怨如下: 未能反序列化Avro源文件“topics/api事件日志/partition=0/api事件日志+0+0000000000.Avro”。

我有一个名称空间为“ca.gms.api事件日志”的Avro模式。我已经使用此模式将消息序列化到Kafka中,并成功地在Kafka模式注册表中注册了该模式,并且正在使用Kafka连接器将该数据作为.avro文件发送到Amazon S3。到目前为止,没有问题

我现在正试图使用Azure data Factory将该数据从AWS S3复制到Azure,它抱怨如下:

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


“ca.gms.api事件日志”是否真的包含无效字符?不允许连字符吗?apacheavro规范似乎指出任何有效的JSON字符串都应该工作:

我注意到Python Avro客户端中不允许使用连字符,但在javaapi中可以使用连字符

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

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