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.

In diesem Thema wird die Syntax für den direkten Aufruf der Funktion bereitgestellt. Wie Sie die Funktion mit einer Tabelle oder Ansicht verknüpfen, sodass sie in regelmäßigen Abständen ausgeführt wird, erfahren Sie unter 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.

Wenn Sie keine Spalte angeben möchten, müssen Sie die Funktion mit einer Tabelle verknüpfen, anstatt sie direkt aufzurufen.

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.

Anforderungen an die Zugriffssteuerung

Das Zuordnen und Ausführen einer System-DMF erfordert die USAGE-Berechtigung für die System-DMF. Sie können die SNOWFLAKE.DATA_METRIC_USER-Datenbankrolle gewähren, um Benutzenden die die USAGE-Berechtigung für alle System-DMFs zu geben. Weitere Informationen dazu finden Sie unter Gewähren der USAGE-Berechtigung für System-DMFs.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Sie müssen ein Spaltenargument angeben, wenn Sie diese Funktion mit einer Ansicht oder externen Tabelle verknüpfen möchten.

  • Diese Funktion kann nur dann direkt aufgerufen werden, wenn Sie eine Abfrage angeben, die eine Zeitstempelspalte projiziert. Wenn Sie die Funktion mit einer Tabelle oder Ansicht verknüpfen möchten, sodass sie in regelmäßigen Intervallen mit oder ohne einem Spaltenargument ausgeführt wird, finden Sie entsprechende Informationen unter 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                                                                |
+---------------------------------------------------------------------+