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

Функция отслеживания центров событий Azure автоматически записывает потоковые данные, которые передаются через Центры событий в хранилище BLOB-объектов Azure или учетную запись Azure Data Lake Storage . Чтобы управлять хранением данных центрами событий, можно указать время или интервал размера. Вы можете быстро включить или настроить функцию отслеживания центров событий. Для выполнения не требуются административные затраты, и он автоматически масштабируется с емкостью Центров событий.

Уровень "Стандартный" использует единицы пропускной способности, а уровень "Премиум" использует единицы обработки. Event Hubs Capture упрощает процесс загрузки потоковых данных в Azure и позволяет сосредоточиться на обработке данных, а не на их сборе.

Диаграмма, демонстрирующая процесс, который захватывает данные из Центров событий и записывает их в хранилище объектов BLOB или в хранилище Data Lake.

Используйте Event Hubs Capture для обработки конвейеров как в режиме реального времени, так и пакетной обработки на одном потоке. Этот подход помогает создавать решения, которые растут с учетом ваших потребностей с течением времени. Если вы используете системы на основе пакетов и планируете позднее добавить обработку в режиме реального времени, или если хотите добавить эффективный холодный путь в уже существующее решение для работы в реальном времени, Event Hubs Capture упрощает работу с потоком данных.

Важные факторы, которые следует принять во внимание

  • Учетная запись хранения назначения (Blob Storage или Data Lake Storage) должна находиться в той же подписке, что и концентратор событий, если для проверки подлинности не используется managed identity.

  • Центры событий не поддерживают запись событий в учетных записях хранения Azure уровня "Премиум".

  • Средства захвата Event Hubs поддерживают учетные записи хранения без премиум класса, которые позволяют использование блочных двоичных объектов.

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

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

Захват Event Hubs позволяет указать учетную запись и контейнер для хранения BLOB-объектов или учетную запись Data Lake Storage для хранения захваченных данных. Эти учетные записи могут находиться в том же регионе, что и концентратор событий или в другом регионе, что обеспечивает гибкость.

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

Примечание.

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

Чтобы управлять записью, используйте Event Hubs Capture для настройки окна с минимальным размером и конфигурацией времени. Система применяет политику первого выигрыша, что означает, что первое выполненное условие — либо по размеру, либо по времени — запускает захват. Например, если у вас есть пятнадцатиминутное окно записи объемом 100 мегабайт (МБ) при отправке данных со скоростью 1 МБ в секунду, окно размера активируется раньше временного окна.

Каждый раздел захватывает данные независимо и записывает завершенный блочий двоичный объект в момент захвата. Имя блоба отражает момент времени, когда был зафиксирован интервал записи.

Соглашение об именовании хранилища следует этой структуре:

{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

Если объект блоб хранилища становится временно недоступен, функция захвата данных Event Hubs сохраняет ваши данные в течение периода хранения, который вы настроили в вашем концентраторе событий. После того как учетная запись хранения снова станет доступной, Центры событий записывают резервные копии данных.

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

На уровне "стандартный" в Event Hubs трафиком управляют единицы пропускной способности. На уровне "Премиум" единицы обработки управляют трафиком. Служба Event Hubs Capture копирует данные непосредственно из внутреннего хранилища Event Hubs, что позволяет обходить квоты на пропускную способность и квоты на обработку исходящего трафика, сохраняя ресурсы для других средств обработки, таких как Stream Analytics или Apache Spark.

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

Настройка записи центров событий

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

Примечание.

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

Выставление счетов за захват данных в центрах событий

Уровень "Центры событий" категории "Премиум" включает функцию записи. Сбор за уровень "Стандартный" в Azure ежемесячно определяется числом единиц пропускной способности пространства имен. По мере масштабирования единиц пропускной способности вверх или вниз, Event Hubs Capture корректирует свои измерения для соответствия производительности. Эти счётчики масштабируются в тандеме.

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

Дополнительные сведения см. в ценовыхЦентров событий.

Интеграция с Сеткой событий Azure

Можно создать подписку на Сетку событий Azure с пространством имен Центров событий в качестве источника. Дополнительные сведения о создании подписки Event Grid с использованим концентратора событий в качестве источника и приложения Azure Functions в качестве приемника см. в статье Миграция захваченных данных Центров событий в Azure Synapse Analytics.

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

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

служба хранилища 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>

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

Функция захвата Event Hubs предоставляет простой способ приема данных в Azure. С помощью Data Lake Storage, Фабрики данных Azure и Azure HDInsight можно выполнять пакетную обработку и аналитику с помощью знакомых средств и платформ в любом масштабе.

Чтобы включить эту функцию, используйте портал Azure или шаблон ARM:

Для получения дополнительной информации о параметрах избыточности данных для учетной записи хранения для вашего пункта назначения Capture см. в разделе "Надежность в хранилище BLOB-объектов".