- Kategorien:
FRESHNESS (System-Datenmetrikfunktion)¶
Gibt zurück, wie viel Zeit in Sekunden seit der letzten Änderung einer Tabelle vergangen ist.
Wenn ein Spaltenargument angegeben ist, wird der Zeitraum berechnet, indem die aktuelle Ausführung der Funktion mit dem maximalen Wert einer Zeitstempelspalte verglichen wird. Wenn die geplante Zeit für die Ausführung der Funktion von der tatsächlichen Ausführungszeit abweicht, wird die geplante Zeit für den Vergleich verwendet.
Wenn keine Spalte angegeben ist, wird der Zeitraum berechnet, indem die aktuelle Ausführung der Funktion mit dem letzten Zeitpunkt verglichen wird, zu dem ein DML-Befehl auf die Tabelle angewendet wurde. Wenn die geplante Zeit für die Ausführung der Funktion von der tatsächlichen Ausführungszeit abweicht, wird die geplante Zeit für den Vergleich verwendet.
This topic provides the syntax for calling the function directly. To learn how to associate the function with a table or view so it runs at regular intervals, see Eine DMF verknüpfen, um Datenqualitätsprüfungen zu automatisieren.
Syntax¶
SNOWFLAKE.CORE.FRESHNESS( [ <query> ] )
Argumente¶
queryFalls angegeben, muss die Abfrage eine einzelne Zeitstempelspalte projizieren.
If you don’t want to specify a column, you must associate the function with a table rather than call it directly.
Zulässige Datentypen¶
Die Spalte, die von der query projiziert wird, muss einen der folgenden Datentypen haben:
DATE
TIMESTAMP_LTZ
TIMESTAMP_TZ
Rückgabewerte¶
Die Funktion gibt einen Einzelwert vom Datentyp NUMBER zurück.
Nutzungshinweise¶
Sie müssen ein Spaltenargument angeben, wenn Sie diese Funktion mit einer Ansicht oder externen Tabelle verknüpfen möchten.
This function can be called directly only if you specify a query that projects a timestamp column. If you want to associate the function with a table or view so it runs at regular intervals with or without a column argument, see Eine DMF verknüpfen, um Datenqualitätsprüfungen zu automatisieren.
Beispiel¶
Verknüpfen Sie die Funktion mit der Tabelle t1, um festzustellen, wie viel Zeit seit der letzten DML-Operation für die Tabelle vergangen ist:
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS on ();
Rufen Sie die Funktion direkt auf, um die Aktualität der Daten (300 Sekunden oder 5 Minuten) in der Tabelle durch Messen der Spalte TIMESTAMP zu bestimmen:
SELECT SNOWFLAKE.CORE.FRESHNESS(
SELECT
timestamp
FROM hr.tables.empl_info
) < 300;
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True |
+---------------------------------------------------------------------+