Kategorien:

Datenmetrikfunktionen

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

Argumente

query

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

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;
Copy
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True                                                                |
+---------------------------------------------------------------------+