Azure 数据工厂无法读取 YouTube 报告 API JSON 文件的架构

Azure Data Factory is unable to read schema of YouTube Reporting API JSON file

我正在使用 YouTube 分析和报告 API 从 Youtube 频道获取性能数据并将其以编程方式存储在 Azure 的数据工厂 (ADF) 中。从 YouTube API,我得到以下 JSON 输出格式:

{
  "kind": "youtubeAnalytics#resultTable",
  "columnHeaders": [
    {
      "name": string,
      "dataType": string,
      "columnType": string
    },
    ... more headers ...
  ],
  "rows": [
    [
      {value}, {value}, ...
    ]
  ]
}

请参阅此处 link:https://developers.google.com/youtube/analytics/reference/reports/query#response

此 GET 请求的响应在 blob 存储中保存为 JSON 文件。下一步,我想将此 JSON 文件中的数据复制到 Azure 的 SQL 数据库中。此时,Azure 数据工厂无法正确读取 JSON 的架构。不知何故,“行”部分中的“数组中的数组”语法和缺少的“键”分类(因为它在列标题中,例如“名称”:字符串)不可读,请参见屏幕截图:JSON schema in ADF

显然,Azure 只允许 arrayofObjects: https://docs.microsoft.com/en-gb/azure/data-factory/format-json

如果我手动更改行部分中的 synthax,因为它是用于 columnHeader 的,那么架构将被正确读取,这向我证明 ADF 无法处理多个数组。由于这应该是一个自动化过程,手动解决方法不是一个选项,仅用于测试目的。

谁能告诉我 Azure 如何正确读取 JSON 文件并将数据复制到 SQL 数据库中? 使用数据流对我来说看起来不太有前途,但它可能包含一些我不知道的数据转换功能。谢谢你帮我!

实际上,数据工厂可以正确读取JSON文件并将数据复制到SQL数据库中。但限制是并非所有 JSON 文件都可以正确加载到 Azure SQL 数据库中。

例如对于嵌套的JSON文件,我们需要先进行数据流的模式转换和手动操作,然后才能很好地加载数据。根据我的经验,我们通常需要使用相同的 JSON 文件创建源,获取我们需要的数组数据,然后将它们连接在一起以获得预期的数据。

而你的JSON文件是嵌套的JSON,rows的值是一个数组数据,我们必须做这些事情。否则我们会出错,管道将无法工作。

HTH.