#azure #azure-sql-database #azure-data-factory
Вопрос:
Я хочу
- Создайте новую таблицу на стороне раковины
- Удалите пробелы в заголовках столбцов
- Сопоставьте исходные столбцы с приемником.
- Я не хочу копировать все столбцы в раковине.
(Например: Если у меня в раковине 10 столбцов, то я хочу скопировать в раковину только 8 из них)
Комментарии:
1. Что вы пробовали? Я предлагаю вам использовать фабрику данных Azure вместо функций Azure.
2. Я попробовал хранимую процедуру и сценарий предварительного копирования в операции копирования. Подскажите, пожалуйста, как я могу реализовать это в Фабрике данных?
3. Я перечислил ваши требования. Для 1 и 2, откуда вы хотите получить определение таблицы? Нужно ли это создавать только один раз, или вы пытаетесь автоматически создать таблицу для всех видов различных входных файлов? 3 и 4 довольно просты в фабрике данных.
4. Я хочу автоматически создать таблицу в приемнике, и когда я использую хранимую процедуру, опция «автоматическое создание» отключена. Все эти четыре шага связаны, и я думал о промежуточной таблице. Например: в состоянии этапа таблицы я удалю пробелы в заголовках столбцов, а затем вставлю 8 столбцов из 10 из промежуточной таблицы в таблицу приемника. Я хочу, чтобы это было только для одной таблицы с хранимой процедурой и промежуточной таблицей. Спасибо
Ответ №1:
Вы можете выполнить эту задачу с помощью потока данных фабрики данных Azure.
Вам придется установить автономную среду выполнения интеграции на вашем локальном компьютере.
Создайте новую связанную службу, используйте созданную выше IR, укажите свой локальный SQL-сервер и имя БД, которые должны его подключить
Аналогично, вам необходимо создать связанную службу для базы данных SQL Azure, используя среду выполнения интеграции по умолчанию, доступную в ADF. Следуйте: https://www.tallan.com/blog/2021/03/30/how-to-create-a-sql-database-linked-service-in-azure-data-factory/
Как только вы создали оба Связанных сервиса, вам необходимо создать наборы данных с использованием этих Связанных сервисов. Один набор данных будет ссылаться на исходную таблицу на локальном компьютере, а другой будет использоваться в качестве приемника в базе данных SQL Azure.
Чтобы создать набор данных в ADF, следуйте за Автором (символ карандаша слева) -> Набор данных ->> Новый набор данных.>>
Теперь самое главное-поток данных ADF.
Чтобы создать поток данных: Автор (символ карандаша слева) -> Поток данных ->> Новый поток данных.>>
Ваш поток данных будет выглядеть так, как показано ниже. В настройках источника вам нужно выбрать входной набор данных, который вы создали на приведенных выше шагах, где хранятся ваши входные данные.
Вы можете включить отладку потока данных, как показано на рисунке выше, чтобы проверять предварительный просмотр данных после преобразования на каждом шаге, как показано ниже. Мы преобразуем имя столбца в соответствии с требованием.
В столбце DerivedColumn мы заменим пробел пустым значением с помощью replace(FirstName, " ", "")
функции.
В Alter Row мы удалим строки на основе некоторого условия. Здесь мы удаляем строки, в которых PersonID > 8.>
После этого вы можете просмотреть полученные данные в окне предварительного просмотра данных приемника.
Наконец, просто создайте новый конвейер. Перетащите действие потока данных в пустое пространство. Выберите имя действия потока данных, которое мы создали выше в Настройках. Нажмите на кнопку Добавить триггер, чтобы запустить сейчас.
После завершения конвейера вы можете проверить данные в своей базе данных SQL Azure.
Комментарии:
1. Я не убежден, что здесь необходимы потоки данных. Если это так, я также не уверен, что вам придется устанавливать среду автономной интеграции на вашем локальном компьютере.
2. Среда выполнения автономной интеграции требуется, когда мы подключаем локальный SQL server к фабрике данных Azure с помощью связанной службы. Среда выполнения интеграции Azure по умолчанию способна подключаться только к другим службам Azure, таким как хранилище больших двоичных объектов, базы данных Azure и т.д. Есть и другие возможные способы, но я предпочитаю поток данных из-за встроенных возможностей ETL.
3. Честно говоря, вы правы на 100%. (Если только нет настройки гибридной сети, но это предположение)