Freigeben über


Abfrageprotokollierung

Hinweis

Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.

Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.

Wichtig

Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.

Trino unterstützt benutzerdefinierte Ereignislistener, die zum Überwachen von Abfragelebenszyklus-Ereignissen verwendet werden können. Sie können eigene Ereignislistener erstellen oder ein integriertes Plug-In verwenden, das von HDInsight on AKS bereitgestellt wird und Ereignisse in Azure Blob Storage protokolliert.

Sie können die integrierte Abfrageprotokollierung auf zwei Arten aktivieren:

  • Sie können die integrierte Abfrageprotokollierung während der Trino-Clustererstellung aktivieren, indem Sie den Hive-Katalog aktivieren.

  • Sie können die integrierte Abfrageprotokollierung in Ihrem Cluster mithilfe einer ARM-Vorlage aktivieren.

In diesem Artikel wird das Hinzufügen der Abfrageprotokollierung zu Ihrem Cluster mithilfe einer ARM-Vorlage behandelt.

Voraussetzungen

Aktivieren der Abfrageprotokollierung

Um das integrierte Abfrageprotokollierungs-Plug-In in Ihrem Trino-Cluster zu aktivieren, fügen Sie den Abschnitt clusterProfile.trinoProfile.userTelemetrySpec mit den folgenden Eigenschaften in Ihrer ARM-Clustervorlage hinzu, bzw. aktualisieren Sie ihn:

Eigenschaft Beschreibung
path Vollqualifizierter Pfad zu einem Verzeichnis, das als Stamm zum Erfassen verschiedener Abfrageprotokolle verwendet wird
hivecatalogName Dieser Katalog wird verwendet, um externe Tabellen für die Dateien einzubinden, die in ein Speicherkonto geschrieben wurden. Dieser Katalog muss in Ihrem Cluster hinzugefügt werden (Hinzufügen eines Hive-Katalogs).
hivecatalogSchema Das Abfrageprotokollierungs-Plug-In verwendet dieses Schema, um die externe Tabelle für die Protokolle einzubinden. Das Plug-In erstellt dieses Schema, wenn es noch nicht vorhanden ist. Standardwert: trinologs
partitionRetentionInDays Das Abfrageprotokollierungs-Plug-In löscht die Partitionen in den Protokolltabellen, die älter als die angegebene Konfiguration sind. Standardwert: 365

Das folgende Beispiel veranschaulicht, wie eine Abfrageprotokollierung in einem Trino-Cluster aktiviert wird. Fügen Sie dieses JSON-Beispiel unter [*].properties.clusterProfile in der ARM-Vorlage hinzu.

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

Stellen Sie die aktualisierte ARM-Vorlage bereit, um die Änderungen in Ihrem Cluster widerzuspiegeln. Weitere Informationen finden Sie unter Bereitstellen einer ARM-Vorlage.

Hinweis

  • Das Plug-In verwendet eine benutzerseitig zugewiesene verwaltete Identität (MSI), die an den Cluster gebunden ist, um sich beim Speicher zu authentifizieren. Fügen Sie Zugriff vom Typ Contributor und Storage Blob Data Owner zur MSI hinzu, um sicherzustellen, dass das Plug-In Protokolle in das Speicherkonto schreiben kann.
    Der Name der benutzerseitig zugewiesenen MSI ist in der msiResourceId-Eigenschaft im Ressourcen-JSON des Clusters aufgeführt. Erfahren Sie, wie Sie eine Rolle zuweisen.

  • PartitionRetentionInDays entfernt nur die Metadatenpartition aus der eingebundenen Tabelle, die Daten werden nicht gelöscht. Bereinigen Sie die Daten gemäß Ihren Anforderungen, wenn sie nicht mehr benötigt werden.

Metadatenverwaltung

Wenn Benutzer*innen einen Katalognamen in der hiveCatalogName-Eigenschaft angeben, bindet das Plug-In die Protokolldateien, die in das Speicherkonto geschrieben wurden, als externe Tabellen und Ansichten ein, um die Abfrage über Trino zu ermöglichen.

Das Plug-In erstellt drei Tabellen und drei Ansichten, mit denen die Lebenszyklusereignisse abgefragt werden können (QueryCompletedEvent, QueryCreatedEvent und SplitCompletedEVent). Diese Tabellen und Ansichten werden unter dem Katalog und Schema erstellt, die als Benutzereingabe bereitgestellt werden.

Name der Tabellen:

  • querycompleted: Enthält QueryCompleted-Ereignisse, die von Trino ausgelöst werden
  • querycreated: Enthält QueryCreatedEvents-Elemente, die von Trino ausgelöst werden
  • splitcompleted: Enthält SplitCompletedEvents-Elemente, die von Trino ausgelöst werden

Name der Ansichten:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

Hinweis

Benutzer*innen wird empfohlen, die Ansichten zu verwenden, da diese nicht durch Änderungen am zugrunde liegende Schema beeinträchtig werden und die beschriebene Tabelle berücksichtigen.

Tabellenarchivierung

Das Plug-In unterstützt die Archivierung der (N-1)-ten Tabelle in dem Szenario, in dem Benutzer*innen entscheiden, path oder den externen Speicherort der Protokolle zu ändern. In diesem Fall benennt das Plug-In die Tabelle, die auf den alten Pfad verweist, in <table_name>_archived um. Die erstellte Ansicht vereint das Ergebnis der aktuellen und der archivierten Tabellen in diesem Szenario.

Erstellen des benutzerdefinierten Plug-Ins

Sie können auch ein benutzerdefiniertes Ereignislistener-Plug-In erstellen. Befolgen Sie die Anweisungen in der Dokumentation. Stellen Sie benutzerdefinierte Plug-Ins bereit, indem Sie Plug-In-Bereitstellungsschritte ausführen.