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


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

Важный

Azure HDInsight на AKS был прекращен 31 января 2025 г. Узнайте больше в этом объявлении.

Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.

Важное

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

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

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

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

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

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

Необходимые условия

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

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

Свойство Описание
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)-й таблицы, если пользователь решает изменить место расположения path или внешнее местонахождение журналов. Если это произойдет, подключаемый модуль переименует таблицу, указывающую на старый путь, в <table_name>_archived, а созданное представление в этом случае объединит результаты текущих и архивных таблиц.

Создайте ваш пользовательский подключаемый модуль

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