Создание BLOB-объектов с именем файла и данными из строк SQL - PullRequest
5 голосов
/ 05 марта 2019

Существует множество документов о том, как использовать фабрику данных Azure для чтения данных из больших двоичных объектов в SQL, и даже документацию о том, как вывести выходные данные запроса в один большой двоичный объект.Я пытаюсь создать один большой двоичный объект для каждой строки в таблице (в SQL Server Azure), названной одним полем и содержащей данные в другом.

В моей таблице есть поле GUID id и nvarchar(max) data поле (которое содержит JSON, хотя это в значительной степени не имеет значения).Предположим, у меня есть следующие строки:

                 id                    |  data
---------------------------------------+----------
38b2f551-5f13-40ce-8512-c108a05ecd44   |  foo
4db5b25b-1194-44e9-a7b2-bc8889c32979   |  bar
2a3bd653-ce14-4bd2-9243-6923e97224c6   |  baz

Я хочу, чтобы были созданы следующие BLOB-объекты:

https://mycontainer.blob.core.windows.net/myblobs/38b2f551-5f13-40ce-8512-c108a05ecd44
https://mycontainer.blob.core.windows.net/myblobs/4db5b25b-1194-44e9-a7b2-bc8889c32979
https://mycontainer.blob.core.windows.net/myblobs/2a3bd653-ce14-4bd2-9243-6923e97224c6

Их содержимым должно быть соответствующее поле данных, т.е. foo, bar и baz, соответственно.

Фабрика данных v2 - создание файла json для каждой строки имеет ответ, который будет работать, но он включает в себя запрос к базе данных один раз, чтобы получить все id с, затем N больше раз, чтобы получить данные из каждой строки.Похоже, что можно запросить только один раз для обоих полей и использовать одно для имени файла и одно для содержимого, но я не смог выяснить, как.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Вместо непосредственного использования действия по копированию вы можете использовать действие для каждого для маршрутизации каждой строки поиска в sql на вызов API api для хранения хранилища больших двоичных объектов (https://docs.microsoft.com/en-us/rest/api/storageservices/put-blob). или каким-либо другим способом записи.

0 голосов
/ 12 марта 2019

После изучения кейса Data Factory v2 - сгенерируйте файл json для каждой строки , я предлагаю вам не копировать действия. Исходя из вашего описания, вы можете рассмотреть следующее решение:

1.Использование GetMetaData Avtivity , которое можно использовать для получения метаданных любых данных в фабрике данных Azure. Вы можете получить метаданные всех файлов больших двоичных объектов, используя этот код .

2.Используйте ForEach Activity для зацикливания имен файлов.

3.В ForEach Activity выполните Функция Azure Activity , чтобы вызвать Http Trigger Azure Function . Передайте имя файла в функцию Azure в качестве параметра. В методе функции используйте хранилище BLOB-объектов Azure SDK для извлечения содержимого по имени файла. Затем вставьте итоговую строку в базу данных sql с помощью API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...