Сбор событий из Центров событий Azure в хранилище BLOB-объектов Azure или Azure Data Lake Storage

Центры событий Azure позволяют автоматически записывать определенный объем потоковых данных из Центров событий в учетную запись хранилища BLOB-объектов Azure или Azure Data Lake Storage Gen 1 или Gen 2 с указанным интервалом времени и размера. Настройка функции «Сбор» выполняется быстро, не требует каких-либо административных затрат на ее запуск и автоматически масштабируется с помощью единиц пропускной способности центров событий на стандартном уровне или единиц обработки на более высоком уровне. Функция "Сбор" в Центрах событий — это самый удобный способ передачи потоковых данных в Azure. Он позволяет сосредоточиться на обработке данных, а не на их записи.

Изображение, показывающее запись данных Центров событий в службу хранилища Azure или Azure Data Lake Storage

Примечание.

Настройка записи центров событий для использования хранилища Azure Data Lake Storage Gen 2 совпадает с настройкой для использования хранилища BLOB-объектов Azure. Дополнительные сведения см. в разделе Настройка записи центров событий.

Кроме того, функция "Сбор" в Центрах событий обеспечивает обработку конвейеров в режиме реального времени и на основе пакетов в одном потоке, благодаря чему вы можете создавать решения, масштабируемые по мере необходимости. Независимо от того, что вам нужно (создать системы на основе пакетов с учетом будущих потребностей в обработке данных в режиме реального времени или добавить эффективный холодный путь к имеющемуся решению для обработки в режиме реального времени), функция "Сбор" в Центрах событий упрощает работу с потоковыми данными.

Внимание

  • Учетная запись целевого хранилища (служба хранилища Azure или Azure Data Lake служба хранилища) должна находиться в той же подписке, что и концентратор событий, если не использовать управляемое удостоверение для проверки подлинности.
  • Центры событий не поддерживают сбор событий в учетной записи хранения Премиум.
  • Сбор данных Центров событий поддерживает любую учетную запись хранения Azure, не связанную с премиумом, с поддержкой блочных BLOB-объектов.

Как работает функция "Сбор" в Центрах событий

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

Функция "Сбор" в Центрах событий позволяет указать собственную учетную запись хранилища BLOB-объектов Azure и контейнер, или учетную запись Azure Data Lake Store, используемые для хранения собранных данных. Эти учетные записи могут находиться в том же регионе, что и концентратор событий, или в другом. Это дает гибкие возможности использования функции "Сбор" в Центрах событий.

Собранные данные записываются в формате Apache Avro — сжатый быстрый двоичный формат, обеспечивающий эффективную структуру данных за счет встроенной схемы. Этот формат широко используется в экосистеме Hadoop, Stream Analytics и фабрике данных Azure. Работа с Avro более подробно описана далее в этой статье.

Примечание.

При использовании бескодового редактора на портале Azure можно записывать данные потоковой передачи в Центрах событий в учетной записи Azure Data Lake Storage 2-го поколения в формате Parquet. Дополнительные сведения см. в статьях Практическое руководство: запись данных из Центров событий в формате Parquet и Учебник: запись данных Центров событий в формате Parquet и анализ этих данных с помощью Azure Synapse Analytics.

Управление окнами в записи

В функции "Сбор" в Центрах событий можно настроить окно управления сбором. Это окно с минимальным размером и продолжительностью, для которого предусмотрена политика "побеждает первый". Это означает, что первый обнаруженный триггер активирует операцию записи. При наличии окна записи размером в 100 МБ и продолжительностью 15 минут для отправки данных со скоростью 1 МБ/с сначала используется окно размера, а затем — окно времени. Запись каждой секции выполняется отдельно, а запись выполненного блочного BLOB-объекта осуществляется в процессе записи. Имя блочного BLOB-объекта зависит от времени создания записи. Соглашение об именовании хранилища выглядит следующим образом:

{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

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

https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro

В случае если двоичный объект из хранилища Azure временно недоступен, запись центров событий сохраняет данные в течение срока хранения данных, настроенного в центре событий, и заполняет данные задним числом, когда учетная запись хранения снова станет доступной.

Масштабирование единиц пропускной способности или единиц обработки

В Центрах событий стандартного уровня трафик контролируется единицами пропускной способности, а в центрах событий премиум-уровня - модулями обработки. Функция сбора Центров событий копирует данные непосредственно из внутреннего хранилища центров событий, минуя квоты выходных единиц пропускной способности или обработки и сохраняя исходящие данные для других считывателей обработки, таких как Stream Analytics или Spark.

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

Настройка функции "Сбор" в Центрах событий

Запись можно настроить при создании концентратора событий с помощью портала Azure или с помощью шаблонов Azure Resource Manager. Дополнительные сведения см. в следующих статьях:

Примечание.

Если вы включите функцию сбора для существующего центра событий, данная функция будет фиксировать события, которые поступают в Центр событий после включения функции. Функция не производит сбор событий, которые существовали в Центре событий до ее включения.

Выставление счета за использование функции "Сбор" в Центрах событий

Функция захвата включена в уровень "Премиум", поэтому дополнительная плата за этот уровень не взимается. Для уровня "Стандартный" функция взимается ежемесячно, а плата напрямую пропорциональна количеству единиц пропускной способности или единиц обработки, приобретенных для пространства имен. По мере увеличения и уменьшения единиц пропускной способности или единиц обработки, счетчики сбора Центров событий увеличиваются и уменьшаются, чтобы обеспечить соответствие производительности. Единицы измерения действуют совместно. Дополнительные сведения о ценах см. на странице цен на Центры событий.

Запись не потребляет квоту исходящего трафика, так как она оплачивается отдельно.

Интеграция со службой "Сетка событий"

Можно создать подписку на Сетку событий Azure с пространством имен Центров событий в качестве источника. В следующем руководстве показано, как создать подписку сетки событий с концентратором событий в качестве источника и приложения Функции Azure в качестве приемника: обработка и перенос захваченных данных Центров событий в Azure Synapse Analytics с помощью сетки событий и Функции Azure.

Изучение собранных файлов

Сведения о том, как изучить собранные файлы Avro, см. в статье Изучение собранных файлов Avro.

служба хранилища Azure учетная запись в качестве назначения

Чтобы включить запись в концентраторе событий с служба хранилища Azure в качестве назначения записи или обновить свойства концентратора событий с служба хранилища Azure в качестве назначения записи, пользователь или субъект-служба должны иметь роль RBAC со следующими разрешениями, назначенными в учетной записи хранения область. 

Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

 

Без указанного выше разрешения вы увидите следующую ошибку:

Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>

Владелец данных BLOB-объектов служба хранилища — это встроенная роль с указанными выше разрешениями, поэтому добавьте учетную запись пользователя или субъект-службу в эту роль.  

Следующие шаги

Функция "Сбор" в Центрах событий — это самый быстрый способ передать данные в Azure. С помощью знакомых средств и платформ (Azure Data Lake, фабрики данных Azure и Azure HDInsight) можно выполнять необходимую пакетную обработку и другие операции анализа в любом масштабе.

Узнайте, как включить эту функцию с помощью портала Azure и шаблона Azure Resource Manager: