Поделиться через


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

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

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

Примечание.

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

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

Внимание

  • Учетная запись целевого хранилища (служба хранилища Azure или Azure Data Lake Storage) должна находиться в той же подписке, что и концентратор событий, если для проверки подлинности не используется управляемое удостоверение.
  • Центры событий не поддерживают сбор событий в учетной записи хранения Премиум.
  • Сбор центров событий поддерживает любую учетную запись хранения 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: