- Kategorien:
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 => constant_date_expression
, .DATE_RANGE_END => constant_date_expression
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). WennDATE_RANGE_END
beispielsweise den Wert CURRENT_DATE hat, ist der Standardwert fürDATE_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 => string
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 Snowflake 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. |
SOURCE_REGION |
TEXT |
Region, aus der Zeilen gesendet wurden (z. B. |
TARGET_CLOUD |
TEXT |
Cloudplattform, an die Zeilen gesendet wurden (z. B. |
TARGET_REGION |
TEXT |
Region, an die Zeilen gesendet wurden (z. B. |
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.