Kategorien:

Information Schema, Tabellenfunktionen

EXTERNAL_FUNCTIONS_HISTORY

Diese Tabellenfunktion ruft den Verlauf der von Snowflake aufgerufenen externen Funktionen für Ihr gesamtes Snowflake-Konto ab.

Bemerkung

Diese Funktion kann Ergebnisse nur für Aktivitäten der letzten 14 Tage zurückgeben.

Syntax

EXTERNAL_FUNCTIONS_HISTORY(
      [ DATE_RANGE_START => <constant_date_expression> ]
      [, DATE_RANGE_END => <constant_date_expression> ]
      [, FUNCTION_SIGNATURE => '<string>' ] )

Argumente

Alle Argumente sind optional.

DATE_RANGE_START => Konstanter_Datumsausdruck, . DATE_RANGE_END => Konstanter_Datumsausdruck

Der Datums-/Uhrzeitbereich innerhalb der letzten 2 Wochen, für den Verlaufsdaten abgerufen werden sollen:

  • Wenn kein Enddatum angegeben ist, wird CURRENT_DATE als Ende des Bereichs verwendet.

  • Wenn kein Startdatum angegeben ist, beginnt der Bereich 10 Minuten vor dem Start von DATE_RANGE_END (d. h. standardmäßig werden die letzten 10 Minuten des Verlaufs angezeigt). Wenn DATE_RANGE_END beispielsweise den Wert CURRENT_DATE hat, ist der Standardwert für DATE_RANGE_START 23:50 Uhr des vorherigen Tages.

Der Verlauf wird in Schritten von 5 Minuten, 1 Stunde oder 24 Stunden angezeigt (abhängig von der Länge des angegebenen Bereichs).

Wenn der Bereich außerhalb der letzten 15 Tage liegt, wird ein Fehler zurückgegeben.

FUNCTION_SIGNATURE => Zeichenfolge

Eine Zeichenfolge, die den Namen einer externen Funktion und die Datentypen der Argumente dieser Funktion angibt. (Die Datentypen unterscheiden zwischen überladenen Funktionsnamen.) Es werden nur Informationen zu dieser Funktion zurückgegeben.

Setzen Sie die Signatur in einfache Anführungszeichen, zum Beispiel:

function_signature => 'mydb.public.myfunction(integer, varchar)'

Beachten Sie, dass die Datentype der Argumente und nicht die Namen der Argumente angegeben werden.

Wenn keine Signatur angegeben ist, enthält die Ausgabe die Summe aller im Zeitbereich verwendeten externen Funktionen, und die folgenden Spalten in der Ergebnisanzeige zeigen NULL an:

  • FUNCTION_NAME

  • ARGUMENTS

  • FUNCTION_ENDPOINT_URL

  • SOURCE_CLOUD

  • SOURCE_REGION

  • TARGET_CLOUD

  • TARGET_REGION

Nutzungshinweise

  • Gibt Ergebnisse nur für die Rolle ACCOUNTADMIN oder für eine Rolle zurück, der die globale Berechtigung MONITOR USAGE explizit erteilt wurde.

  • Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname EXTERNAL_FUNCTIONS_HISTORY muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Information Schema.

  • Die Ausgabespalte mit dem Namen ARGUMENTS enthält nicht nur die Argumentdatentypen, sondern auch den Rückgabedatentyp. Der Eingabeparameter mit dem Namen FUNCTION_SIGNATURE sollte die Datentypen der Argumente enthalten, nicht jedoch den Rückgabedatentyp.

  • Tipps zur Problembehandlung finden Sie unter Symptom: EXTERNAL_FUNCTIONS_HISTORY gibt „…invalid identifier…“ zurück..

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

START_TIME

TIMESTAMP_LTZ

Beginn des angegebenen Zeitbereichs, für den der Verlauf zurückgegeben werden soll.

END_TIME

TIMESTAMP_LTZ

Ende des angegebenen Zeitbereichs, für den der Verlauf zurückgegeben werden soll.

NAME

TEXT

Name der Funktion, für die der Verlauf zurückgegeben werden soll.

ARGUMENTS

TEXT

Die Datentypen der Argumente und des Rückgabewerts. Die Datentypen der Argumente unterscheiden zwischen überladenen Funktionsnamen.

FUNCTION_ENDPOINT_URL

TEXT

HTTPS-Endpunkt, den die Funktion aufruft. Dies ist normalerweise ein Proxydienst.

SOURCE_CLOUD

TEXT

Cloudplattform, von der Zeilen gesendet wurden (z. B. GCP, Azure oder AWS).

SOURCE_REGION

TEXT

Region, aus der Zeilen gesendet wurden (z. B. eu-west-1).

TARGET_CLOUD

TEXT

Cloudplattform, an die Zeilen gesendet wurden (z. B. GCP, Azure oder AWS).

TARGET_REGION

TEXT

Region, an die Zeilen gesendet wurden (z. B. eu-west-1).

INVOCATIONS

NUMBER

Die Häufigkeit, mit der der Remotedienst im Zeitfenster zwischen START_TIME und END_TIME aufgerufen wurde. Dies schließt Wiederholungsversuche ein (z. B. aufgrund vorübergehender Netzwerkprobleme).

SENT_ROWS

NUMBER

Anzahl der Zeilen, die im Zeitfensters zwischen START_TIME und END_TIME an den externen Endpunkt gesendet wurden.

RECEIVED_ROWS

NUMBER

Anzahl der Zeilen, die im Zeitfenster zwischen START_TIME und END_TIME vom externen Endpunkt empfangen wurden.

SENT_BYTES

NUMBER

Anzahl der Bytes, die im Zeitfenster zwischen START_TIME und END_TIME an den externen Endpunkt gesendet wurden.

RECEIVED_BYTES

NUMBER

Anzahl der Bytes, die im Zeitfenster zwischen START_TIME und END_TIME vom externen Endpunkt empfangen wurden.

Beispiele

Abrufen des Verlaufs für Ihr Konto für einen 30-Minuten-Bereich (in 5-Minuten-Intervallen):

select *
  from table(information_schema.external_functions_history(
    date_range_start => to_timestamp_ltz('2020-05-24 12:00:00.000'),
    date_range_end => to_timestamp_ltz('2020-05-24 12:30:00.000')));

Abrufen des Verlaufs einer einzelnen externen Funktion für Ihr Konto für einen 12-Stunden-Bereich (in 1-Stunden-Intervallen):

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('hour', -12, current_timestamp()),
    function_signature => 'mydb.public.myfunction(integer, varchar)'));

Abrufen des Verlaufs für Ihr Konto für die letzten 14 Tage (in 1-Tages-Intervallen):

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('day', -14, current_date()),
    date_range_end => current_date()));

Abrufen des Verlaufs für eine angegebene Funktion Ihres Kontos für die letzten 14 Tage (in 1-Tages-Intervallen):

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('day', -14, current_date()),
    date_range_end => current_date(),
    function_signature => 'mydb.public.myfunction(integer, varchar)'));

Problembehandlung

Symptom: EXTERNAL_FUNCTIONS_HISTORY gibt „…invalid identifier…“ zurück.

Mögliche Ursache

Möglicherweise haben Sie die Funktionssignatur nicht in einfache Anführungszeichen gesetzt. Folgendes ist beispielsweise falsch, weil die Anführungszeichen fehlen:

select *
  from table(information_schema.external_functions_history(
    function_signature => mydb.public.myfunction(integer, varchar)));
Mögliche Lösung

Korrigieren Sie dies, indem Sie die Funktionssignatur in Anführungszeichen setzen:

select *
  from table(information_schema.external_functions_history(
    function_signature => 'mydb.public.myfunction(integer, varchar)'));

Symptom: EXTERNAL_FUNCTIONS_HISTORY gibt nur eine Ausgabezeile zurück, und viele der Spalten sind NULL.

Mögliche Ursache

Sie haben wahrscheinlich keine Funktionssignatur eingefügt. Wenn Sie keine Funktionssignatur angeben, gibt EXTERNAL_FUNCTION_HISTORY() für Spalten wie INVOCATIONS, SENT ROWS usw. die Aggregatwerte zurück und für Spalten mit Funktionsname, Argumentliste usw. den Wert NULL.

Mögliche Lösung

Wenn Sie Informationen zu genau einer Funktion abrufen möchten, fügen Sie eine Funktionssignatur hinzu.

Wenn Sie Informationen zu allen Funktionen abrufen möchten, sind die NULL-Werte für einige Spalten korrekt, und Sie müssen die Abfrage nicht korrigieren.