Фабрика данных - созданный файл озера данных Триггер события срабатывает дважды - PullRequest
1 голос
/ 06 ноября 2019

Я разрабатываю конвейер в Azure Data Factory V2. Он имеет очень простую операцию копирования. Конвейер должен запускаться при добавлении файла в хранилище озера данных Azure Gen 2. Для этого я создал триггер события, прикрепленный к ADLS_gen2 в созданном BLOB-объекте. Затем назначьте триггер для конвейера и свяжите данные триггера @triggerBody (). FileName с параметром конвейера.

Чтобы проверить это, я использую хранилище хранилища Azure и загружаю файл в озеро данных. Проблема в том, что триггер в фабрике данных запускается дважды, в результате чего конвейер запускается дважды. Первый конвейер завершен, как и ожидалось, а второй остается в обработке.

Кто-нибудь сталкивался с этой проблемой? Я попытался удалить триггер в DF и создать новый, но результат был таким же с новым триггером. введите описание изображения здесь

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 13 ноября 2019

В определении триггера установите для параметра «Игнорировать пустые двоичные объекты» значение Да.

Комментарий от @dtape - это, вероятно, то, что происходит внизу, и включение этой игнорируемой пустой настройки эффективно фильтрует часть «Создать» (ноне записанная часть данных).

Это исправило проблему для меня.

0 голосов
/ 07 ноября 2019

У меня возникла та же проблема.

При записи файла в ADLS v2 происходит начальная операция CreateFile и операция FlushWithClose, и они оба вызывают тип события Microsoft.Storage.BlobCreated.

https://docs.microsoft.com/en-us/azure/event-grid/event-schema-blob-storage

Если вы хотите, чтобы событие Microsoft.Storage.BlobCreated вызывалось только тогда, когда блочный блоб полностью зафиксирован, отфильтруйте событие для вызова API-интерфейса REST FlushWithClose. Этот вызов API вызывает событие Microsoft.Storage.BlobCreated только после полной передачи данных в блочный блоб.

https://docs.microsoft.com/en-us/azure/event-grid/how-to-filter-events

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

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