我有一堆数据存储在Azure Blobs中作为JSON文件 . 我想将它们加载到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,然后编写外部表脚本以将其上载到Azure SQL数据仓库,然后删除CSV文件 . 我不确定是否需要保留此CSV文件供以后使用 .
有更好的建议吗?
2 回答
您可以使用Azure Data Factory将json blob数据转换为csv,然后插入Azure SQL数据仓库 .
您的管道将有一个Copy活动,一个json AzureBlob Dataset和一个AzureSqlDWTable .
将a column mapping with translator rules添加到“复制”活动非常重要 .
我更喜欢第二种选择 . Azure Web作业似乎是一个不错的选择 . 它与Web Apps在同一环境中工作 . 您可以只压缩具有控制台应用程序,PowerShell脚本或bash脚本及其依赖项的文件夹,并将其作为批处理或连续运行 . 如果您使用的是C#,您甚至可以利用Azure SDK 1.1将blob作为流处理:https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-blobs-how-to/