Share via


Journalisation des requêtes

Important

Cette fonctionnalité est disponible actuellement en mode Aperçu. Les Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure contiennent davantage de conditions légales qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou ne se trouvant pas encore en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez les Informations sur la préversion d’Azure HDInsight sur AKS. Pour toute question ou pour des suggestions à propos des fonctionnalités, veuillez envoyer vos requêtes et leurs détails sur AskHDInsight, et suivez-nous sur la Communauté Azure HDInsight pour plus de mises à jour.

Trino prend en charge les écouteurs d’événements personnalisés qui peuvent être utilisés pour écouter les événements de cycle de vie des requêtes. Vous pouvez créer vos propres écouteurs d’événements ou utiliser un plug-in intégré fourni par HDInsight sur AKS qui journalise les événements dans Stockage Blob Azure.

Vous pouvez activer la journalisation des requêtes intégrée de deux manières :

  • Vous pouvez activer la journalisation des requêtes intégrée lors de la création d’un cluster Trino en activant le catalogue Hive.

  • Vous pouvez activer la journalisation des requêtes intégrée dans votre cluster à l’aide d’un modèle ARM.

Cet article traite de l’ajout de la journalisation des requêtes à votre cluster à l’aide d’un modèle ARM.

Prérequis

Activer la journalisation des requêtes

Pour activer le plug-in de journalisation des requêtes intégré dans votre cluster Trino, ajoutez/mettez à jour la section clusterProfile.trinoProfile.userTelemetrySpec avec les propriétés suivantes dans votre modèle ARM de cluster.

Propriété Description
path Chemin complet d’un répertoire utilisé comme racine pour capturer différents journaux de requête.
hivecatalogName Ce catalogue est utilisé pour monter des tables externes sur les fichiers écrits dans le compte de stockage. Ce catalogue doit être ajouté dans votre cluster. Consultez Ajouter un catalogue Hive.
hivecatalogSchema Le plug-in de journalisation des requêtes utilise ce schéma pour monter la table externe pour les journaux. Le plug-in crée ce schéma s’il n’existe pas. Valeur par défaut : trinologs.
partitionRetentionInDays Le plug-in de journalisation des requêtes supprime les partitions dans les tables de journal qui sont antérieures à la configuration spécifiée. Valeur par défaut : 365.

L’exemple suivant montre comment activer une journalisation des requêtes dans un cluster Trino. Ajoutez cet exemple de code JSON sous [*].properties.clusterProfile dans le modèle ARM.

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

Déployez le modèle ARM mis à jour pour refléter les modifications apportées à votre cluster. Découvrez comment déployer un modèle ARM.

Remarque

  • Le plug-in utilise l’identité managée affectée par l’utilisateur (MSI) liée au cluster pour s’authentifier auprès du stockage. Ajoutez l’accès Contributor et Storage Blob Data Owner à l’identité MSI pour veiller à ce que le plug-in puisse écrire des journaux dans le compte de stockage.
    Le nom de l’identité MSI affectée par l’utilisateur est listée dans la propriété msiResourceId dans le code JSON de la ressource de cluster. Découvrez comment attribuer un rôle.

  • PartitionRetentionInDays supprime uniquement la partition de métadonnées de la table montée ; elle ne supprime pas les données. Nettoyez les données si vous n’en avez plus besoin.

Gestion des métadonnées

Si l’utilisateur spécifie un nom de catalogue dans la propriété hiveCatalogName, le plug-in monte les fichiers journaux écrits dans le compte de stockage en tant que tables et vues externes, qui peuvent être interrogées via Trino.

Le plug-in crée trois tables et trois vues, qui peuvent être utilisées pour interroger les événements de cycle de vie (QueryCompletedEvent, QueryCreatedEvent et SplitCompletedEVent). Ces vues et tables sont créées sous le catalogue et le schéma fournis en tant qu’entrée utilisateur.

Nom des tables :

  • querycompleted : contient les événements QueryCompleted déclenchés par Trino.
  • querycreated : contient les QueryCreatedEvents déclenchés par Trino.
  • splitcompleted : contient les SplitCompletedEvents déclenchés par Trino.

Nom des vues :

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

Remarque

Les utilisateurs sont encouragés à utiliser les vues, car elles sont immunisées contre les modifications de schéma sous-jacentes et associées à la table décrite.

Archivage de table

Le plug-in prend en charge l’archivage au niveau (N-1)ième table dans le scénario où l’utilisateur décide de modifier le path ou l’emplacement externe des journaux. Si cela se produit, le plug-in renomme la table pointant vers l’ancien chemin <nom_table>_archived. Dans ce scénario, la vue créée une union du résultat des tables actuelles et archivées.

Créer votre modèle personnalisé

Vous pouvez également créer un plug-in d’écouteur d’événements personnalisé. Suivez les instructions fournies dans la documentation. Pour déployer des plug-ins personnalisés, suivez les étapes de déploiement de plug-in.