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"})
Copy

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"
}
Copy
{
  "name": "SProcEventWithAttributes"
}
Copy

Die Ereigniszeile SProcEventWithAttributes enthält in der Spalte RECORD_ATTRIBUTES die folgenden Attribute:

{
  "key1": "value1",
  "key2": "value2"
}
Copy

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>);
Copy

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}');
Copy

Das Einstellen dieser Attribute führt in der Spalte RECORD_ATTRIBUTES der Ereignistabelle zu folgendem Ergebnis:

{
  "attr1": "value1",
  "attr2": "value2"
}
Copy

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;
$$
;
Copy
call MYPROC();
Copy