Прием больших двоичных объектов в службу Azure Data Explorer через подписку на уведомления службы "Сетка событий Azure"

Обозреватель данных Azure — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии. Azure Data Explorer позволяет принимать (загружать) данные из Центров событий, Центра Интернета вещей и больших двоичных объектов, записанных в контейнеры больших двоичных объектов.

В этой статье вы узнаете, как принимать большие двоичные объекты из вашей учетной записи хранения в Azure Data Explorer с помощью подключения к данным Сетки событий. Вы создадите подключение к данным Сетки событий, которое задает подписку Сетка событий Azure. Подписка на сетку событий направляет события из вашей учетной записи хранения в Azure Data Explorer через концентратор событий Azure. Затем вы увидите пример потока данных в системе.

Общие сведения о передаче данных в Azure Data Explorer из сетки событий см. в разделе Подключение к сетке событий. Чтобы создать ресурсы вручную на портале Azure, см. раздел Создание ресурсов для приема Сетки событий вручную.

Предварительные требования

Создание целевой таблицы в обозревателе данных Azure

Создайте таблицу в Azure Data Explorer, куда Центры событий будут отправлять данные. Таблица создается в кластере и базе данных, подготовленных в разделе предварительных требований.

  1. На портале Azure, в своем кластере, выберите Запрос.

    Ссылка на Обозреватель запросов.

  2. Скопируйте следующую команду в окно и выберите Выполнить, чтобы создать таблицу (TestTable), которая будет принимать входящие данные.

    .create table TestTable (TimeStamp: datetime, Value: string, Source:string)
    

    Запустить команду создать таблицу.

  3. Скопируйте следующую команду в окно и выберите Выполнить для сопоставления входящих данных JSON с именами столбцов и типами данных таблицы (TestTable).

    .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp","path":"$.TimeStamp"},{"column":"Value","path":"$.Value"},{"column":"Source","path":"$.Source"}]'
    

Создание подключения к данным службы "Сетка событий Azure" в Azure Data Explorer

Теперь подключите учетную запись хранения к Azure Data Explorer, чтобы данные, поступающие в хранилище, передавались в тестовую таблицу.

  1. Под созданным кластером выберите Базы данных > TestDatabase.

    Выбор тестовой базы данных.

  2. Выберите Прием данных > Добавить подключение к данным.

    Добавьте подключение к данным для приема данных.

Подключение к данным — вкладка "Основные"

  1. Выберите тип подключения: Хранилище BLOB-объектов.

  2. Заполните форму, указав следующую информацию.

    Заполните форму сетки событий с основами подключения.

    Параметр Рекомендуемое значение Описание поля
    Имя подключения к данным test-grid-connection Имя создаваемого подключения в Azure Data Explorer.
    Подписка учетной записи хранения идентификатор подписки; Идентификатор подписки, в которой находится ваша учетная запись хранения.
    Учетная запись хранения gridteststorage1 Имя созданной ранее учетной записи хранения.
    Тип события Созданный BLOB-объект или переименованный BLOB-объект Тип события, запускающего загрузку. Переименование BLOB-объектов поддерживается только для хранилища ADLSv2. Поддерживаемые типы: Microsoft.Storage.BlobCreated или Microsoft.Storage.BlobRenamed.
    Создание ресурсов Automatic (Автоматический) Определите, хотите ли вы, чтобы Azure Data Explorer создавал для вас подписку на Сетку событий, пространство имен концентратора событий и концентратор событий. Чтобы создать ресурсы вручную, см. раздел Создание ресурсов для приема Сетки событий вручную
  3. Выберите Настройки фильтра, если вы хотите отслеживать определенные предметы. Настройте фильтры для получения уведомлений следующим образом:

    • Поле Префикс — это буквальный префикс темы. Поскольку применяемый шаблон — startswith, он может охватывать несколько контейнеров, папок или BLOB-объектов. Подстановочные знаки не допускаются.
      • Чтобы определить фильтр для контейнера больших двоичных объектов, поле должно быть установлено следующим образом: /blobServices/default/containers/[container prefix] .
      • Чтобы определить фильтр для префикса большого двоичного объекта (или папки в Azure Data Lake 2 поколения), поле должно быть установлено следующим образом: /blobServices/default/containers/[container name]/blobs/[folder/blob prefix] .
    • Поле суффикс — это буквальный суффикс большого двоичного объекта. Подстановочные знаки не допускаются.
    • Поле С учетом регистра указывает, учитываются ли фильтры префикса и суффикса.
    • Дополнительные сведения о фильтрации событий см. в разделе События хранилища больших двоичных объектов.

    Настройки фильтра Сетка событий.

  4. Выберите Далее: вставить свойства.

Подключение к данным — вкладка "Свойства вставки"

  1. Заполните форму, указав следующую информацию. Имена таблиц и отображений чувствительны к регистру:

    Просмотрите и создайте свойства приема таблиц и сопоставлений.

    Свойства приема

    Параметр Рекомендуемое значение Описание поля
    Имя таблицы TestTable Таблица, созданная в базе данных TestDatabase.
    Формат данных JSON Поддерживаемые форматы: Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO, RAW и W3CLOG. Поддерживаемые параметры сжатия: Zip и GZip.
    Сопоставление TestMapping Сопоставление, созданное в таблице TestDatabase, которое сопоставляет входящие данные JSON с именами столбцов и типами данных TestTable.
    Дополнительные параметры У моих данных есть заголовки Игнорирует заголовки. Поддерживается для файлов типа *SV.

    Примечание

    Вы не обязаны указывать все значения для параметров маршрутизации по умолчанию. Принимаются также частично заполненные параметры.

  2. Выберите Далее: проверка и создание

Подключение к данным — вкладка "Обзор + создание"

  1. Просмотрите ресурсы, которые были автоматически созданы для вас, и выберите Создать.

    Просмотрите и создайте подключение к данным для сетки событий.

Развертывание

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

Разверните ресурсы сетки событий.

Создание примера данных

Теперь, когда Azure Data Explorer и учетная запись хранения подключены, вы можете создать образец данных.

Загрузить большой двоичный объект в контейнер для хранения

Мы создадим небольшой скрипт оболочки, который выполняет несколько базовых команд Azure CLI для взаимодействия с ресурсами службы хранилища Azure. Этот скрипт выполняет следующие действия:

  1. Создает контейнер в учетной записи хранения.
  2. Загружает существующий файл (как большой двоичный объект) в этот контейнер.
  3. Перечисляет капли в контейнере.

Чтобы выполнить скрипт непосредственно на портале, можно использовать Azure Cloud Shell.

Сохраните данные в файл и отправьте его с помощью этого скрипта:

{"TimeStamp": "1987-11-16 12:00","Value": "Hello World","Source": "TestSource"}
#!/bin/bash
### A simple Azure Storage example script

    export AZURE_STORAGE_ACCOUNT=<storage_account_name>
    export AZURE_STORAGE_KEY=<storage_account_key>

    export container_name=<container_name>
    export blob_name=<blob_name>
    export file_to_upload=<file_to_upload>
    export destination_file=<destination_file>

    echo "Creating the container..."
    az storage container create --name $container_name

    echo "Uploading the file..."
    az storage blob upload --container-name $container_name --file $file_to_upload --name $blob_name --metadata "rawSizeBytes=1024"

    echo "Listing the blobs..."
    az storage blob list --container-name $container_name --output table

    echo "Done"

Примечание

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

Переименование BLOB-объекта

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

Переименование BLOB-объекта на портале Azure.

Свойства приема

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

Примечание

Azure Data Explorer не удаляет прием сообщений больших двоичных объектов. Храните большие двоичные объекты в течение 3–5 дней. Используйте жизненный цикл хранилища BLOB-объектов Azure для управления удалением BLOB-объектов.

Просмотр потока данных

Примечание

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

  1. На портале Azure в разделе сетки событий во время работы приложения появится пик активности.

    График активности для сетки событий.

  2. Чтобы проверить, сколько сообщений поступило в базу данных к этому моменту, выполните следующий запрос в тестовой базе данных.

    TestTable
    | count
    
  3. Чтобы увидеть содержимое сообщений, выполните следующий запрос в тестовой базе данных.

    TestTable
    

    Набор результатов должен выглядеть следующим образом:

    Набор результатов сообщения для Сетки событий.

Очистка ресурсов

Если вы не планируете снова использовать Сетку событий, очистите подписку на сетку событий, пространство имен Центра событий и Центр событий, которые были созданы для вас автоматически, чтобы избежать затрат.

  1. В портал Azure перейдите в меню слева и выберите Все ресурсы.

    Выберите все ресурсы для очистки сетки событий.

  2. Найдите пространство имен Центра событий и выберите Удалить, чтобы удалить его:

    Очистка пространства имен Центра событий.

  3. В форме «Удалить ресурсы» подтвердите удаление, чтобы удалить пространство имен Центра событий и ресурсы Центра событий.

  4. Войдите в свою учетную запись хранения. В левом меню выберите События:

    Выберите события для очистки Сетки событий.

  5. Под графиком выберите подписку на Сетку событий, а затем нажмите Удалить, чтобы удалить ее:

    Удалить подписку на сетку событий.

  6. Чтобы удалить подключение к данным Сетки событий, перейдите в кластер Azure Data Explorer. В меню слева выберите Базы данных.

  7. Выберите базу данных TestDatabase:

    Выберите базу данных для очистки ресурсов.

  8. В меню слева выберите Прием данных:

    Выберите прием данных для очистки ресурсов.

  9. Выберите соединение для передачи данных test-grid-connection, а затем выберите Удалить, чтобы удалить его.

Дальнейшие действия