Ausgeben von Ablaufverfolgungsereignissen in Snowflake Scripting¶
Sie können die SYSTEM
-Funktionen von Snowflake verwenden, um Ablaufverfolgungsereignisse von einem in Snowflake Scripting geschriebenen Funktions- oder Prozedur-Handler auszugeben.
Stellen Sie vor dem Ausgeben von Ablaufverfolgungsereignissen sicher, dass der Protokolliergrad (Ablaufverfolgungsebene) so eingestellt ist, dass die gewünschten Meldungen in der Ereignistabelle gespeichert werden. Weitere Informationen dazu finden Sie unter Einstellen des Protokolliergrads (Ablaufverfolgungsebene).
Bemerkung
Bevor Sie mit der Ausgabe von Ablaufverfolgungsereignissen beginnen können, müssen Sie eine Ereignistabelle einrichten. Weitere Informationen dazu finden Sie unter Einrichten einer Ereignistabelle.
Sie können auf die gespeicherten Daten zu den Ablaufverfolgungsereignissen zugreifen, indem Sie einen SELECT-Befehl auf der Ereignistabelle ausführen. Weitere Informationen dazu finden Sie unter Zugriff auf Ablaufverfolgungsdaten.
Allgemeine Informationen zum Einrichten der Protokollierung und zum Abrufen von Meldungen in Snowflake finden Sie unter Ablaufverfolgungsereignisse von Funktionen und Prozeduren.
Bemerkung
Richtlinien, die beim Hinzufügen von Ablaufverfolgungsereignissen berücksichtigt werden sollten, finden Sie unter Allgemeine Richtlinien für das Hinzufügen von Ablaufverfolgungsereignissen.
Hinzufügen von Ablaufverfolgungsereignissen¶
Sie können Ablaufverfolgungsereignisse hinzufügen, indem Sie die Funktion SYSTEM$ADD_EVENT (für Snowflake Scripting) aufrufen und einen Namen für das Ereignis übergeben. Sie können einem Ereignis optional auch Attribute (Schlüssel-Wert-Paare) zuordnen.
Der Code im folgenden Beispiel fügt die Ereignisse SProcEmptyEvent
und SProcEventWithAttributes
hinzu. Mit SProcEventWithAttributes
fügt der Code auch zwei Attribute hinzu: key1
und key2
.
SYSTEM$ADD_EVENT("SProcEmptyEvent")
SYSTEM$ADD_EVENT("SProcEventWithAttributes", {"key1": "value1", "key2": "value2"})
Das Hinzufügen dieser Ereignisse führt zu zwei Zeilen in der Ereignistabelle, die jeweils einen anderen Wert in der Spalte RECORD haben:
{
"name": "SProcEmptyEvent"
}
{
"name": "SProcEventWithAttributes"
}
Die Ereigniszeile SProcEventWithAttributes
enthält in der Spalte RECORD_ATTRIBUTES die folgenden Attribute:
{
"key1": "value1",
"key2": "value2"
}
Hinzufügen von Bereichsattributen¶
Durch Aufruf der Funktion SYSTEM$SET_SPAN_ATTRIBUTES können Sie Attribute (Schlüssel-Wert-Paare) festlegen, die bestimmten Bereichen (Spans) zugeordnet sind.
Weitere Informationen zu Bereichen (Spans) finden Sie unter Darstellung von Ablaufverfolgungsereignissen in Snowflake.
Die Funktion SYSTEM$SET_SPAN_ATTRIBUTES (für Snowflake Scripting) ist in der folgenden Form verfügbar:
SYSTEM$SET_SPAN_ATTRIBUTES(<object>);
Wobei:
object
ist ein Snowflake Scripting-Objekt mit Schlüssel-Wert-Paaren, das die Attribute für dieses Ablaufverfolgungsereignis angibt.
Der Code im folgenden Beispiel erstellt vier Attribute und legt deren Werte fest:
SYSTEM$SET_SPAN_ATTRIBUTES('{'attr1':'value1', 'attr2':true}');
Das Einstellen dieser Attribute führt in der Spalte RECORD_ATTRIBUTES der Ereignistabelle zu folgendem Ergebnis:
{
"attr1": "value1",
"attr2": "value2"
}
Beispiele¶
Der Code im folgenden Beispiel verwendet die Funktion SYSTEM$ADD_EVENT, um ein Ereignis namens name_a
und ein Ereignis namens name_b
hinzuzufügen. name_b
werden die beiden Attribute score
und pass
zugeordnet. Der Code verwendet auch SYSTEM$SET_SPAN_ATTRIBUTES, um die Attribute attr1
und attr2
für den Bereich (Span) festzulegen.
create procedure MYPROC()
returns double
language sql
as
$$
begin
-- Add an event without attributes
SYSTEM$ADD_EVENT('name_a');
-- Add an event with attributes
let attr := {'score':89, 'pass':true};
SYSTEM$ADD_EVENT('name_b', attr);
-- Set attributes for the span
SYSTEM$SET_SPAN_ATTRIBUTES("{'attr1':'value1', 'attr2':true}");
return 3.14;
end;
$$
;
call MYPROC();