Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ К: Azure Data Factory
Azure Synapse Analytics
Совет
Испытайте Data Factory в Microsoft Fabric — единое аналитическое решение для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описываются триггеры событий хранилища, которые можно создать в конвейерах Фабрика данных Azure или Azure Synapse Analytics.
Архитектура на основе событий — это распространенный шаблон интеграции данных, который включает в себя создание, обнаружение, потребление и реакцию на события. В сценариях интеграции данных часто требуется, чтобы клиенты запускали конвейеры данных, инициируемые событиями в учетной записи хранения Azure, например, при поступлении или удалении файла в учетной записи Azure Blob Storage. Фабрика данных и конвейеры Azure Synapse Analytics изначально интегрируются с Сеткой событий Azure, что позволяет активировать конвейеры для таких событий.
Рекомендации по триггеру событий хранилища
При использовании триггеров событий хранилища следует учитывать следующие моменты:
- Интеграция, описанная в этой статье, зависит от сетки событий Azure. Убедитесь, что ваша подписка зарегистрирована у поставщика ресурсов "Сетка событий". Дополнительные сведения см. в разделе "Поставщики ресурсов и типы". У вас должна быть возможность выполнить действие
Microsoft.EventGrid/eventSubscriptions/
. Это действие является частью встроеннойEventGrid EventSubscription Contributor
роли. - Если вы используете эту функцию в Azure Synapse Analytics, убедитесь, что вы также регистрируете подписку в поставщике ресурсов фабрики данных. В противном случае вы получите сообщение о том, что "сбой создания подписки на события".
- Если учетная запись хранения BLOB-объектов находится за частной конечной точкой и блокирует доступ к общедоступной сети, необходимо настроить правила сети, чтобы разрешить обмен данными из хранилища BLOB-объектов в сетку событий. Вы можете предоставить доступ к хранилищу доверенным службам Azure, таким как Event Grid, следуя документации по работе с хранилищем, или настроить частные конечные точки для Event Grid, которые сопоставляют с адресным пространством виртуальной сети, следуя документации по работе с Event Grid.
- Триггер события хранилища в настоящее время поддерживает только Azure Data Lake Storage 2-го поколения и учетные записи хранения общего назначения версии 2. Если вы работаете с событиями хранения протокола безопасной передачи файлов (SFTP), необходимо также указать API данных SFTP в разделе фильтрации. Из-за ограничения сетки событий фабрика данных поддерживает только 500 триггеров событий хранилища для каждой учетной записи хранения.
- Чтобы создать новый триггер события хранилища или изменить существующий, учетная запись Azure, используемая для входа в службу и публикация триггера события хранилища, должна иметь соответствующее разрешение на управление доступом на основе ролей (Azure RBAC) в учетной записи хранения. Другие разрешения не требуются. Учетная запись службы для фабрики данных Azure и Azure Synapse Analytics не требует специального разрешения ни для учетной записи хранения, ни для сетки событий. Дополнительные сведения об управлении доступом см. в разделе управления доступом на основе ролей .
- Если вы применили блокировку Azure Resource Manager к учетной записи хранения, это может повлиять на способность триггера Blob создавать или удалять блобы. Блокировка
ReadOnly
предотвращает создание и удаление, а блокировкаDoNotDelete
предотвращает удаление. Убедитесь, что вы учитываете эти ограничения, чтобы избежать проблем с триггерами. - Не рекомендуется запускать триггеры прибытия файлов в качестве механизма активации из приемников потока данных. Потоки данных выполняют ряд задач по переименованию файлов и перестановке файлов разделения в целевой папке, которые могут непреднамеренно активировать событие поступления файла до завершения обработки данных.
Создание триггера с пользовательским интерфейсом
В этом разделе показано, как создать триггер события хранилища в пользовательском интерфейсе Фабрика данных Azure и пользовательском интерфейсе конвейера Azure Synapse Analytics.
Перейдите на вкладку "Изменить " в Фабрике данных или вкладку "Интеграция " в Azure Synapse Analytics.
В меню выберите "Триггер" и нажмите кнопку "Создать или изменить".
На странице "Добавить триггеры" выберите "Выбрать триггер", а затем нажмите кнопку "+ Создать".
Выберите тип триггера события Storage.
Выберите учетную запись хранения из раскрывающегося списка подписки Azure или вручную, используя идентификатор ресурса учетной записи хранения. Выберите контейнер, в котором будут выполняться события. Выбор контейнера необходим, но выбор всех контейнеров может привести к большому количеству событий.
Свойства
Blob path begins with
иBlob path ends with
позволяют указать контейнеры, папки и имена BLOB-объектов, для которых вы хотите получать события. Для триггера события хранилища требуется определить хотя бы одно из этих свойств. Вы можете использовать различные шаблоны как для свойствBlob path begins with
, так и дляBlob path ends with
, как показано в примерах ниже в этой статье.-
Blob path begins with
: Путь к объекту BLOB должен начинаться с пути к папке. Допустимые значения включают2018/
и2018/april/shoes.csv
. Это поле нельзя выбрать, если контейнер не выбран. -
Blob path ends with
: Путь к объекту BLOB должен заканчиваться именем файла или расширением. Допустимые значения включаютshoes.csv
и.csv
. Имена контейнеров и папок, когда они указаны, должны быть разделены сегментом/blobs/
. Например, именованныйorders
контейнер может иметь значение/orders/blobs/2018/april/shoes.csv
. Чтобы указать папку в любом контейнере, опустите ведущий/
символ. Например,april/shoes.csv
активирует событие в любом файле с именемshoes.csv
в папке, вызываемойapril
в любом контейнере.
Обратите внимание, что
Blob path begins with
иBlob path ends with
являются единственными шаблонами, допустимыми в триггере события хранилища. Другие виды сопоставления с подстановочными знаками не поддерживаются для этого типа триггера.-
Выберите, отвечает ли триггер на событие создания BLOB-объекта, удаления BLOB-объекта, или обоих. В указанном расположении хранилища каждое событие активирует конвейеры Фабрики данных и Azure Synapse Analytics, связанные с триггером.
Выберите, будет ли триггер игнорировать большие двоичные объекты с нулевым числом байтов.
После настройки триггера нажмите кнопку Далее: предварительная версия данных. На этом экране отображаются существующие блобы, соответствующие конфигурации триггера событий хранилища. Убедитесь, что у вас есть определенные фильтры. Настройка фильтров, которые слишком широкие, может соответствовать большому количеству файлов, созданных или удаленных, и может значительно повлиять на затраты. После проверки условий фильтра нажмите кнопку "Готово".
Чтобы подключить конвейер к этому триггеру, перейдите в рабочее пространство конвейера и выберите Триггер>Новый/Редактировать. Когда появится боковая панель, выберите раскрывающийся список "Выбрать триггер " и выберите созданный триггер. Нажмите кнопку Далее: предварительный просмотр данных , чтобы убедиться, что конфигурация правильна. Затем нажмите кнопку "Далее ", чтобы проверить правильность предварительного просмотра данных.
Если в конвейере есть параметры, их можно указать на боковой панели "Параметры запуска триггера ". При срабатывании триггера событий хранилища в свойства
@triggerBody().folderPath
и@triggerBody().fileName
сохраняются путь к папке и имя файла блоба. Чтобы использовать значения этих свойств в конвейере, необходимо сопоставить эти свойства с параметрами конвейера. После сопоставления свойств с параметрами можно получить доступ к значениям, захваченным триггером через@pipeline().parameters.parameterName
выражение во всем конвейере. Подробное описание см. в разделе "Справочные метаданные триггера" в конвейерах.В приведенном выше примере триггер настроен срабатывать, когда в контейнере sample-data создается путь объекта BLOB, который заканчивается на .csv, в папке event-testing. Свойства
folderPath
иfileName
фиксируют местоположение нового большого двоичного объекта. Например, если MoviesDB.csv добавляется в путь sample-data/event-testing,@triggerBody().folderPath
имеет значениеsample-data/event-testing
и@triggerBody().fileName
имеет значениеmoviesDB.csv
. Эти значения сопоставляются в примере с параметрамиsourceFolder
конвейера иsourceFile
, которые можно использовать во всем конвейере как@pipeline().parameters.sourceFolder
и@pipeline().parameters.sourceFile
соответственно.После завершения нажмите кнопку "Готово".
Схема JSON
В следующей таблице представлен обзор элементов схемы, связанных с триггерами событий хранилища.
Элемент JSON | Описание | Тип | Допустимые значения | Обязательное поле |
---|---|---|---|---|
объем | Идентификатор ресурса учетной записи хранилища в Azure Resource Manager. | Строка | Идентификатор менеджера ресурсов Azure | Да. |
события | Тип событий, вызывающих срабатывание триггера. | Массив |
Microsoft.Storage.BlobCreated , Microsoft.Storage.BlobDeleted |
Да, любое сочетание этих значений. |
blobPathBeginsWith |
Путь объекта blob должен начинаться с указанного шаблона, чтобы срабатывал триггер. Например, /records/blobs/december/ активирует триггер только для блобов в папке december под контейнером records . |
Строка | Предоставьте значение хотя бы для одного из этих свойств: blobPathBeginsWith или blobPathEndsWith . |
|
blobPathEndsWith |
Путь блоба должен заканчиваться на указанный шаблон, чтобы триггер сработал. Например, december/boxes.csv запускает триггер только для объектов Blob с именем boxes в папке december . |
Строка | Предоставьте значение хотя бы для одного из этих свойств: blobPathBeginsWith или blobPathEndsWith . |
|
ignoreEmptyBlobs |
Запускают ли BLOB-ы нулевого размера выполнение конвейера? По умолчанию устанавливается значение true . |
Логический | правда или ложь | № |
Примеры триггеров событий хранилища
В этом разделе приведены примеры параметров триггера событий хранилища.
Внимание
Каждый раз, когда вы указываете контейнер и папку, контейнер и файл или контейнер, папку и файл, добавляйте сегмент пути /blobs/
, как показано в следующих примерах. Для blobPathBeginsWith
пользовательский интерфейс автоматически добавляет /blobs/
между именем папки и контейнера в JSON триггера.
Свойство | Пример | Описание |
---|---|---|
Blob path begins with |
/containername/ |
Получает события для любого блоба в контейнере. |
Blob path begins with |
/containername/blobs/foldername/ |
Получает события для любого большого двоичного объекта в контейнере containername и папке foldername . |
Blob path begins with |
/containername/blobs/foldername/subfoldername/ |
Можно также указать ссылку на вложенную папку. |
Blob path begins with |
/containername/blobs/foldername/file.txt |
Получает события для объекта blob с именем file.txt в папке foldername в контейнере containername . |
Blob path ends with |
file.txt |
Получает события для большого двоичного объекта с именем file.txt в любом пути. |
Blob path ends with |
/containername/blobs/file.txt |
Получает события для объекта Blob с именем file.txt , находящегося в контейнере containername . |
Blob path ends with |
foldername/file.txt |
Получает события для объекта данных с именем file.txt в папке foldername под любым контейнером. |
Управление доступом на основе ролей
Фабрика данных и конвейеры Azure Synapse Analytics используют управление доступом на основе ролей Azure (Azure RBAC), чтобы строго запретить несанкционированный доступ к прослушиванию и подписке на обновления от, а также инициации конвейеров, связанных с событиями BLOB-ов.
- Чтобы успешно создать триггер для нового события хранилища или обновить существующий, учетная запись Azure, вошедшая в службу, должна иметь необходимый доступ к соответствующему аккаунту хранения. В противном случае операция завершается ошибкой с сообщением "Доступ запрещен".
- Фабрика данных и Azure Synapse Analytics не требуют специального разрешения для экземпляра Event Grid, и для операции не требуется назначать специальное разрешение RBAC для фабрики данных или служебного принципала Azure Synapse Analytics.
Любой из следующих параметров RBAC работает для триггеров событий хранилища:
- Роль владельца учетной записи хранения
- Роль участника учетной записи хранения
-
Microsoft.EventGrid/EventSubscriptions/Write
разрешение на учетную запись хранения/subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName
В частности:
- При работе в фабрике данных (например, в среде разработки) учетная запись Azure, под которой выполнен вход, должна иметь перечисленные выше разрешения.
- При публикации с помощью непрерывной интеграции и непрерывной доставки учетная запись, используемая для публикации шаблона Azure Resource Manager в тестовой или рабочей фабрике, должна иметь предыдущее разрешение.
Чтобы понять, как служба выполняет два обещания, давайте рассмотрим более внимательно и заглянем за кулисы. Ниже приведены высокоуровневые рабочие процессы для интеграции между фабрикой данных и Azure Synapse Analytics, хранилищем и сеткой событий.
Создать новый триггер для события хранилища
Этот высокоуровневый рабочий процесс описывает взаимодействие фабрики данных с Сеткой событий для создания триггера события хранилища. Поток данных такой же, как в Azure Synapse Analytics, а конвейеры Azure Synapse Analytics принимают роль фабрики данных на следующей диаграмме.
Два заметных замечания из рабочих процессов:
- Фабрика данных и Azure Synapse Analytics не вступают в прямой контакт с учетной записью хранения. Запрос на создание подписки передается и обрабатывается сеткой событий. Службе не требуется разрешение на доступ к учетной записи хранения для этого шага.
- Управление доступом и проверка разрешений происходят в службе. Прежде чем служба отправляет запрос на подписку на событие хранилища, он проверяет разрешение пользователя. В частности, проверяется, имеет ли учетная запись Azure, в которую выполнен вход и которая пытается создать триггер события хранения, соответствующий доступ к нужной учетной записи хранения. В случае сбоя проверки разрешений также произойдет сбой создания триггера.
Запуск конвейера с триггером события для хранилища
Этот высокоуровневый рабочий процесс описывает, как потоки триггеров событий хранилища выполняются через Event Grid. Для Azure Synapse Analytics поток данных остаётся тем же, с конвейерами Azure Synapse Analytics, которые принимают роль Data Factory в следующих диаграммах.
Три заметных элемента в рабочем процессе связаны с потоками активации событий внутри службы.
Event Grid использует push-модель, которая как можно быстрее передает сообщение, когда хранилище отправляет сообщение в систему. Этот подход отличается от системы обмена сообщениями, например Kafka, где используется система Pull.
Триггер события служит активным прослушивателем входящего сообщения, и он правильно активирует связанный конвейер.
Триггер события хранилища сам не связывается с учетной записью хранения.
- Если в конвейере имеется действие «Copy» или другое действие для обработки данных в аккаунте хранилища, сервис устанавливает прямое соединение с аккаунтом хранилища, используя учетные данные, хранящиеся в связанном сервисе. Убедитесь, что связанная служба настроена соответствующим образом.
- Если вы не ссылаетесь на учетную запись хранения в конвейере, вам не нужно предоставить службе разрешение на доступ к учетной записи хранения.
Связанный контент
- Дополнительные сведения об триггерах см. в разделе "Выполнение конвейера" и "Триггеры".
- Сведения о том, как ссылаться на метаданные триггера в конвейере, см. в разделе Справочные данные о метаданных триггера в запусках конвейера.