Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Azure数据工厂中使用复制数据工具导入事件中心存档生成的Avro文件时出错_Azure_Avro_Azure Eventhub_Azure Data Factory_Azure Blob Storage - Fatal编程技术网

在Azure数据工厂中使用复制数据工具导入事件中心存档生成的Avro文件时出错

在Azure数据工厂中使用复制数据工具导入事件中心存档生成的Avro文件时出错,azure,avro,azure-eventhub,azure-data-factory,azure-blob-storage,Azure,Avro,Azure Eventhub,Azure Data Factory,Azure Blob Storage,我在“文件格式设置”步骤中的Azure数据工厂“复制数据”工具(当前处于预览中)中看到以下错误: 处理请求时出错:列:SystemProperties,位置:Source,格式:Avro,Avro格式当前不支持数据类型“System.Collections.Generic.Dictionary`2[System.String,System.Object]”。活动ID:0aa778ad-b496-46c1-8de4-97b4f4169be2 源文件采用Avro格式,由Azure事件中心归档文件生成

我在“文件格式设置”步骤中的Azure数据工厂“复制数据”工具(当前处于预览中)中看到以下错误:

处理请求时出错:列:SystemProperties,位置:Source,格式:Avro,Avro格式当前不支持数据类型“System.Collections.Generic.Dictionary`2[System.String,System.Object]”。活动ID:0aa778ad-b496-46c1-8de4-97b4f4169be2

源文件采用Avro格式,由Azure事件中心归档文件生成。当我选择Avro格式并选择blob中的任何Avro文件时,当工具试图确定模式时,我会出现上述错误。我不知道这是复制数据工具的问题还是事件中心存档输出的文件格式的问题

有没有人有过这个问题,或者有没有关于我如何进一步调查的想法

根据官方文档
Azure事件中心存档
的一节,事件中心存档的Avro文件架构(如下所示)是名为的Avro复杂类型

但是Azure Data Factory不支持复杂类型的Avro
记录,您可以参考官方文档
中的注释,使用Azure Data Factory将数据移动到Azure Blob中或从Azure Blob中移动数据来了解它

注意以下几点:

  • 不支持复杂数据类型(记录、枚举、数组、映射、联合和固定)
所以你得到了错误信息。如果您只想将EventHubs存档从当前存储帐户复制或移动到另一个或多个帐户 其他目标数据存储,如文件系统,您可以选择选项
Binary Copy
,如下所示


或者您想从事件中心传输这些数据,根据我的经验,方法是使用
Azure Stream Analytics
从事件中心读取数据,然后写入Blob存储之类的数据存储,然后,您可以使用data Factory复制数据。

下面是关于答案末尾提到的基于Azure Stream Analytics的解决方案的教程:看起来现在您可以使用data Factory中的新数据流读取这些Avro文件了
{
    "type":"record",
    "name":"EventData",
    "namespace":"Microsoft.ServiceBus.Messaging",
    "fields":[
                 {"name":"SequenceNumber","type":"long"},
                 {"name":"Offset","type":"string"},
                 {"name":"EnqueuedTimeUtc","type":"string"},
                 {"name":"SystemProperties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Properties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Body","type":["null","bytes"]}
             ]
}