Azure Data Factory V2: как передать имя файла в переменную хранимой процедуры - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть большая таблица SQL Azure Fact со следующей структурой:

Company     Revenue
-------------------
A              100
B              200
C              100
.               .
.               .
.               .

Сейчас я создаю хранимую процедуру на фабрике данных Azure V2, которая ежемесячно удаляет все записи специальной компании из приведенной выше таблицы фактов SQL Azure. Для этого упражнения эта специальная компания должна быть идентифицирована с помощью переменной @company. Структура хранимой процедуры была создана как:

@company NVARCHAR(5)

DELETE FROM table 
WHERE [company] = @company

Поскольку у меня будут разные файлы Excel от каждой компании, которые будут ежемесячно вставлять данные в эту таблицу (с копированием активности), я хочу использовать хранимую процедуру, описанную выше, чтобы удалить старые данные из этой компании, прежде чем добавить самый обновленный.

Я бы хотел затем передать переменной "@company" имя этого файла Excel (хранящегося в контейнере больших двоичных объектов), чтобы хранимая процедура знала, какие соответствующие данные должны быть удалены из таблицы фактов. Например: если файл Excel имеет значение «A», хранимая процедура должна быть «удалить из таблицы, где company = A».

Есть идеи, как передать имена файлов Excel в переменную "@company" и настроить это в Azure Data Factory V2?

1 Ответ

0 голосов
/ 18 сентября 2018

Любые идеи о том, как передать имена файлов Excel в переменную "@company" и настроить это на фабрике данных Azure V2?

Привет, Андре. На основании вашего описания я обнаружил, что Триггер на основе событий в фабрике данных Azure, возможно, удовлетворит ваши потребности. Триггер на основе событий запускает конвейеры в ответ на событие, такое как прибытие файла или удаление файла, в хранилище BLOB-объектов Azure.

Таким образом, когда новый файл Excel создается в хранилище больших двоичных объектов (кстати, он поддерживает только учетную запись хранения V2, подробности см. В этой статье ), вы можете получить @triggerBody().folderPath и * 1012. *. Чтобы использовать значения этих свойств в конвейере, необходимо сопоставить свойства с параметрами конвейера. После сопоставления свойств с параметрами вы можете получить доступ к значениям, захваченным триггером, с помощью выражения @pipeline.parameters.parameterName по всему конвейеру. ( документ )

Вы можете получить имя файла и передать его в свою хранимую процедуру. Затем выполните операции удаления и копирования.

Надеюсь, это поможет вам.

...