Ведение журнала запросов
Важный
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 с HDInsight на AKS.
- Создайте шаблон ARM для кластера.
- Просмотрите завершенный пример шаблона кластера 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, а созданное представление в этом случае объединит результаты текущих и архивных таблиц.
Создайте ваш пользовательский подключаемый модуль
Вы также можете создать пользовательский плагин для прослушивания событий, следуя указаниям в документации. Разверните настраиваемые плагины, следуя шагам развертывания плагинов.