Gravação de log de consulta

Observação

Desativaremos o Microsoft Azure HDInsight no AKS em 31 de janeiro de 2025. Para evitar o encerramento abrupto das suas cargas de trabalho, você precisará migrá-las para o Microsoft Fabric ou para um produto equivalente do Azure antes de 31 de janeiro de 2025. Os clusters restantes em sua assinatura serão interrompidos e removidos do host.

Somente o suporte básico estará disponível até a data de desativação.

Importante

Esse recurso está atualmente na visualização. Os Termos de uso complementares para versões prévias do Microsoft Azure incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, confira Informações sobre a versão prévia do Azure HDInsight no AKS. No caso de perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para ver mais atualizações sobre a Comunidade do Azure HDInsight.

O Trino dá suporte a ouvintes de eventos personalizados que podem ser usados para escutar eventos de ciclo de vida de consulta. Você pode criar seus próprios ouvintes de eventos ou usar um plug-in interno fornecido pelo HDInsight no AKS que registra eventos no Armazenamento de Blobs do Azure.

Você pode habilitar o registro em log de consulta interno de duas maneiras:

  • Você pode habilitar o registro em log de consultas internas durante a criação do cluster do Trino habilitando o catálogo de hive.

  • Você pode habilitar o registro em log de consulta interno em seu cluster usando o modelo do ARM.

Esse artigo aborda a adição do registro em log de consultas ao cluster usando o modelo do ARM.

Pré-requisitos

Habilitar o registro em log de consulta

Para habilitar o plug-in de log de consulta interno no cluster do Trino, adicione/atualize a seção clusterProfile.trinoProfile.userTelemetrySpec com as seguintes propriedades no modelo ARM do cluster.

Propriedade Descrição
path Caminho totalmente qualificado para um diretório usado como uma raiz para capturar logs de consulta diferentes.
hivecatalogName Esse catálogo é usado para montar tabelas externas nos arquivos gravados na conta de armazenamento. Esse catálogo deve ser adicionado ao seu cluster, Adicionar catálogo de hive.
hivecatalogSchema O plug-in de log de consulta usa esse esquema para montar a tabela externa para os logs, o plug-in cria esse esquema se ele ainda não existir. Valor padrão: trinologs
partitionRetentionInDays O plug-in de log de consulta poda as partições nas tabelas de log, que são mais antigas do que a configuração especificada. Valor padrão: 365

O exemplo a seguir demonstra como um log de consulta está habilitado em um cluster do Trino. Adicione este json de exemplo em [*].properties.clusterProfile no modelo do ARM.

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

Implante o modelo do ARM atualizado para refletir as alterações em seu cluster. Saiba como implantar um modelo do ARM.

Observação

  • O plug-in usa a identidade gerenciada (MSI) atribuída pelo usuário vinculada ao cluster para se autenticar no armazenamento, adicione os acessos Contributor e Storage Blob Data Owner à MSI para garantir que o plug-in possa gravar logs na conta de armazenamento.
    O nome MSI atribuído pelo usuário está listado na propriedade msiResourceId no JSON do recurso do cluster. Saiba como atribuir uma função.

  • PartitionRetentionInDays remove apenas a partição de metadados da tabela montada e não exclui os dados. Limpe os dados de acordo com seus requisitos, se não forem mais necessários.

Gerenciamento de metadados

Se o usuário especificar um nome de catálogo na propriedade hiveCatalogName, o plug-in montará os arquivos de logs gravados na conta de armazenamento como tabelas e exibições externas, que podem ser consultados por meio do Trino.

O plug-in cria três tabelas e três exibições, que podem ser usadas para consultar os eventos do ciclo de vida (QueryCompletedEvent QueryCreatedEvent e SplitCompletedEVent). Essas tabelas e exibições são criadas no catálogo e no esquema fornecidos como entrada do usuário.

Nome das tabelas:

  • querycompleted: contém QueryCompleted eventos disparados pelo Trino.
  • querycreated: contém QueryCreatedEvents acionado pelo Trino.
  • splitcompleted: contém SplitCompletedEvents acionado pelo Trino.

Nome dos modos de exibição:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

Observação

Os usuários são incentivados a usar os modos de exibição, pois são imunes a alterações de esquema subjacentes e conta para a tabela descrita.

Arquivamento de tabela

O plug-in suporta o arquivamento da (N-1)ª tabela no cenário em que o usuário decide alterar o path ou a localização externa dos logs. Se isso acontecer, o plug-in renomeará a tabela apontando para o caminho antigo como <table_name>_archived, o modo de exibição criado unirá o resultado das tabelas atuais e arquivadas nesse cenário.

Como criar seu plug-in personalizado

Você também pode criar um plug-in de ouvinte de eventos personalizado. Siga as instruções em documentos, Implantar plug-ins personalizados seguindo as etapas de implantação do plug-in.