如何将 Azure Blob 中存储为 JSON 的数据加载到 Azure SQL 数据仓库?

How to load to Azure SQL Data Warehouse data stored as JSON in Azure Blobs?

我有一堆数据作为 JSON 文件存储在 Azure Blob 中。我想将它们加载到 Azure SQL 数据仓库中,但 Azure SQL 数据仓库似乎不接受 JSON 输入文件。

最好的方法是什么?

我研究的解决方案:

1) 将 Azure 数据工厂与自定义活动结合使用 (例如 https://github.com/Azure/azure-content/blob/master/articles/data-factory/data-factory-use-custom-activities.md) 但是为此旋转 HDInsight 集群似乎有点 'overhead'(而且我更喜欢使用 JavaScript 而不是 C# 解决方案)。

2) 编写 Azure api-app(或自定义代码)将文件转换为 CSV,然后编写外部-table 脚本将其上传到 Azure SQL 数据仓库然后删除 CSV 文件。我不确定是否需要保留此 CSV 文件供以后使用。

有更好的建议吗?

我更喜欢第二个选项。 Azure Web 作业似乎是一个不错的选择。它在与 Web 应用程序相同的环境中工作。您可以只压缩一个包含控制台应用程序、PowerShell 脚本或 bash 脚本及其依赖项的文件夹,并将其安排为批处理或连续安排 运行。 如果您使用的是 C#,您甚至可以利用 Azure SDK 1.1 将 blob 作为流处理:https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-blobs-how-to/

您可以使用 Azure 数据工厂将 json blob 数据转换为 csv,然后插入到 Azure SQL 数据仓库。

您的管道将有一个副本 activity、一个 json AzureBlob Dataset and one AzureSqlDWTable

请务必将 a column mapping with translator rules 添加到副本 activity。