Freigeben über


Abfrageprotokollierung

Wichtig

Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mehr mit dieser Ankündigung.

Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.

Wichtig

Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Vorschläge zu Funktionen bitten wir Sie, eine Anfrage in AskHDInsight mit den Details zu senden und uns zu folgen, um weitere Updates in der Azure HDInsight Communityzu erhalten.

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

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

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

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

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

Voraussetzungen

Aktivieren der Abfrageprotokollierung

Um das eingebaute Abfrageprotokollierungs-Plugin in Ihrem Trino-Cluster zu aktivieren, fügen Sie den Abschnitt clusterProfile.trinoProfile.userTelemetrySpec mit den folgenden Eigenschaften in Ihrer Cluster-ARM-Vorlage hinzu oder aktualisieren Sie ihn.

Eigentum Beschreibung
path Vollqualifizierter Pfad zu einem Verzeichnis, das als Wurzelverzeichnis zum Erfassen verschiedener Abfrageprotokolle verwendet wird.
hivecatalogName Dieser Katalog wird verwendet, um externe Tabellen auf den Dateien bereitzustellen, die in einem Speicherkonto geschrieben wurden. Dieser Katalog muss in Ihrem Cluster hinzugefügt werden, Hive-Katalog hinzufügen.
hivecatalogSchema Das Abfrageprotokollierungs-Plug-In verwendet dieses Schema, um die externe Tabelle für die Protokolle zu bereitstellen, erstellt das Plug-In dieses Schema, wenn es noch nicht vorhanden ist. Standardwert - trinologs
partitionRetentionInDays Das Abfrageprotokollierungs-Plug-In schneidet die Partitionen in den Protokolltabellen ab, die älter als die angegebene Konfiguration sind. Standardwert - 365

Das folgende Beispiel veranschaulicht, wie eine Abfrageprotokollierung in einem Trino-Cluster aktiviert ist. Fügen Sie dieses Beispiel-JSON 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. Erfahren Sie, wie Sie eine ARM-Vorlagebereitstellen.

Anmerkung

  • Plugin verwendet die vom Benutzer zugewiesene verwaltete Identität (MSI), die an den Cluster gebunden ist, um sich gegenüber dem Speicher zu authentifizieren. Bitte fügen Sie Contributor und Storage Blob Data Owner Zugriff auf die MSI hinzu, um sicherzustellen, dass das Plugin Protokolle in das Speicherkonto schreiben kann.
    Der vom Benutzer zugewiesene MSI-Name wird in der eigenschaft msiResourceId im Ressourcen-JSON des Clusters aufgeführt. Erfahren Sie, wie Sie eine Rolle zuweisen.

  • PartitionRetentionInDays entfernt nur die Metadatenpartition aus der bereitgestellten Tabelle, es löscht die Daten nicht. Bereinigen Sie die Daten nach Ihren Anforderungen, wenn sie nicht mehr benötigt werden.

Metadatenverwaltung

Wenn der Benutzer einen Katalognamen in der hiveCatalogName-Eigenschaft angibt, stellt das Plug-In die Logdateien, die im Speicherkonto geschrieben wurden, als externe Tabellen und Ansichten bereit, die über Trino abgefragt werden können.

Das Plug-In erstellt drei Tabellen und drei Ansichten, die verwendet werden können, um die Lebenszyklusereignisse abzufragen (QueryCompletedEvent, QueryCreatedEventund SplitCompletedEVent). Diese Tabellen & Ansichten werden unter dem Katalog und schema erstellt, das als Benutzereingabe bereitgestellt wird.

Name der Tabellen:

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

Name der Ansichten:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

Anmerkung

Benutzer werden ermutigt, die Ansichten zu verwenden, da sie immun gegen zugrunde liegende Schemaänderungen sind und die beschriebene Tabelle berücksichtigen.

Tabellenarchivierung

Das Plug-In unterstützt die Archivierung der (N-1)ten Tabelle in dem Szenario, in dem der Benutzer beschließt, den path- oder den externen Speicherort der Protokolle zu ändern. In diesem Fall benennt das Plugin die Tabelle, die auf den alten Pfad verweist, in <table_name>_archivedum, die erstellte Ansicht wird das Ergebnis der aktuellen und der archivierten Tabellen in diesem Szenario zusammenführen.

Erstellen Ihres benutzerdefinierten Plug-Ins

Sie können auch ein benutzerdefiniertes Ereignislistener-Plugin verfassen, indem Sie den Anweisungen in den -Dokumentenfolgen. Bereitstellen von benutzerdefinierten Plugins gemäß der Plugin-Bereitstellungsschritte.