Как загрузить в хранилище данных SQL Azure данные, хранящиеся в формате JSON в BLOB-объектах Azure?
У меня есть куча данных, хранящихся в виде файла JSON в BLOB-объектах Azure. Я хочу загрузить их в хранилище данных SQL Azure, но хранилище данных SQL Azure, похоже, не принимает входные файлы JSON.
Каков наилучший подход?
Решения, которые я изучил:
1) Использование фабрики данных Azure с настраиваемыми действиями (например, https://github.com/Azure/azure-content/blob/master/articles/data-factory/data-factory-use-custom-activities.md) Но, похоже, немного "накладных расходов" на вращение кластера HDInsight для этого (а также я предпочитаю использовать JavaScript, а не решение C#).
2) Написание API-приложения Azure (или пользовательского кода) для преобразования файла в CSV, а затем написание сценария внешней таблицы для загрузки его в хранилище данных SQL Azure, а затем удаление файла CSV. Я не уверен, что мне нужно сохранить этот файл CSV для дальнейшего использования.
Есть лучшие предложения?
2 ответа
Вы можете использовать фабрику данных Azure для преобразования данных BLOB-объектов json в csv, а затем вставить их в хранилище данных SQL Azure.
Ваш конвейер будет иметь одну операцию копирования, один набор данных json AzureBlob и одну AzureSqlDWTable.
Важно добавить сопоставление столбцов с правилами переводчика в операцию копирования.
Я бы предпочел второй вариант. Задания в Azure Web кажутся хорошим вариантом. Он работает в той же среде, что и веб-приложения. Вы можете просто заархивировать папку с консольным приложением, сценарием PowerShell или сценарием bash и его зависимостями и запланировать его как пакет или запустить его непрерывно. Если вы находитесь в C#, вы можете даже использовать Azure SDK 1.1 для обработки больших двоичных объектов в виде потоков: https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-blobs-how-to/