Abfrageprotokollierung
Wichtig
Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bedingungen, 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 in 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
- Ein betriebsbereiter Trino-Cluster mit HDInsight on AKS.
- Erstellen einer ARM-Vorlage für Ihren Cluster
- Überprüfen eines Beispielclusters basierend auf einer ARM-Vorlage
- Kenntnisse in der Erstellung und Bereitstellung von ARM-Vorlagen.
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
undStorage 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 dermsiResourceId
-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ältQueryCompleted
-Ereignisse, die von Trino ausgelöst werdenquerycreated
: EnthältQueryCreatedEvents
-Elemente, die von Trino ausgelöst werdensplitcompleted
: EnthältSplitCompletedEvents
-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.