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


Ведение журнала запросов

Внимание

Эта функция в настоящее время доступна для предварительного ознакомления. Дополнительные условия использования для предварительных версий Microsoft Azure включают более юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в статье Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следуйте за нами для получения дополнительных обновлений в сообществе Azure HDInsight.

Trino поддерживает пользовательские прослушиватели событий, которые можно использовать для прослушивания событий жизненного цикла запросов. Вы можете создать собственные прослушиватели событий или использовать встроенный подключаемый модуль, предоставляемый HDInsight в AKS, который регистрирует события в Хранилище BLOB-объектов Azure.

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

  • Во время создания кластера Trino можно включить встроенное ведение журнала запросов, включив каталог hive.

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

В этой статье описывается добавление ведения журнала запросов в кластер с помощью шаблона ARM.

Необходимые компоненты

Включение ведения журнала запросов

Чтобы включить встроенный подключаемый модуль ведения журнала запросов в кластере Trino, добавьте или обновите clusterProfile.trinoProfile.userTelemetrySpec раздел со следующими свойствами в шаблоне ARM кластера.

Свойство Description
path Полный путь к каталогу, используемому в качестве корневого каталога для записи различных журналов запросов.
hivecatalogName Этот каталог используется для подключения внешних таблиц к файлам, записанным в учетной записи хранения. Этот каталог необходимо добавить в кластер, добавить каталог hive.
hivecatalogSchema Подключаемый модуль ведения журнала запросов использует эту схему для подключения внешней таблицы для журналов, подключаемый модуль создает эту схему, если она еще не существует. Значение по умолчанию — trinologs
partitionRetentionInDays Подключаемый модуль ведения журнала запросов удаляет секции в таблицах журналов, которые старше указанной конфигурации. Значение по умолчанию — 365

В следующем примере показано, как ведение журнала запросов включено в кластере Trino. Добавьте этот пример JSON [*].properties.clusterProfile в шаблон ARM.

       "trinoProfile": { 
          "userTelemetrySpec": { 
          "storage": { 
              "path": "https://querylogstorageaccount.blob.core.windows.net/logs/trinoquerylogs", 
              "hivecatalogName": "hive", 
              "hivecatalogSchema": "trinologs", 
              "partitionRetentionInDays": 365 
          } 
          }
      }   

Разверните обновленный шаблон ARM, чтобы отразить изменения в кластере. Узнайте, как развернуть шаблон ARM.

Примечание.

  • Подключаемый модуль использует управляемое удостоверение, назначаемое пользователем (MSI), привязанное к кластеру для проверки подлинности в хранилище, добавьте Contributor и Storage Blob Data Owner получите доступ к MSI, чтобы подключаемый модуль может записывать журналы в учетную запись хранения.
    Назначаемое пользователем имя MSI отображается в свойстве msiResourceId в json ресурса кластера. Узнайте, как назначить роль.

  • PartitionRetentionInDays удаляет только секцию метаданных из подключенной таблицы, она не удаляет данные. При необходимости очистите данные в соответствии с вашими требованиями.

Управление метаданными

Если пользователь указывает имя каталога в свойстве, подключаемый модуль подключает файлы журналов, записанные в hiveCatalogName учетной записи хранения как внешние таблицы и представления, которые можно запрашивать через Trino.

Подключаемый модуль создает три таблицы и три представления, которые можно использовать для запроса событий жизненного цикла (QueryCompletedEvent, QueryCreatedEventи SplitCompletedEVent). Эти таблицы и представления создаются в каталоге и схеме, предоставленной как входные данные пользователя.

Имя таблиц:

  • querycompleted: содержит QueryCompleted события, запущенные Trino.
  • querycreated: содержит, запущенный QueryCreatedEvents Trino.
  • splitcompleted: содержит, запущенный SplitCompletedEvents Trino.

Имя представлений:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

Примечание.

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

Архивация таблиц

Подключаемый модуль поддерживает архивацию (N-1)th таблицы в сценарии, в котором пользователь решает изменить path или внешнее расположение журналов. В этом случае подключаемый модуль переименовывает таблицу, указывающую на старый путь как <table_name>_archived, созданное представление объединит результат текущих и архивных таблиц в этом сценарии.

Создание пользовательского подключаемого модуля

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