Kategorien:

Datenmetrikfunktionen

FRESHNESS (System-Datenmetrikfunktion)

Gibt die Differenz in Sekunden zwischen dem Maximalwert einer Zeitstempelspalte und dem geplanten Zeitpunkt zurück, wenn die Datenmetrikfunktion ausgeführt wird.

Syntax

SNOWFLAKE.CORE.FRESHNESS(<query>)
Copy

Argumente

query

Gibt eine SQL-Abfrage auf einer Tabelle oder Ansicht an.

Zulässige Datentypen

Die referenzierten Spalten in der Abfrage query müssen 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

Um eine System-DMF zu verwenden, wählen Sie eine der folgenden Zugriffssteuerungsmethoden aus:

  • Weisen Sie die Datenbankrolle DATA_METRIC_USER der Rolle des Tabelleneigentümers zu, d. h. der Rolle mit der Berechtigung OWNERSHIP für die Tabelle. Diese Datenbankrolle hat die USAGE-Berechtigung für das Schema SNOWFLAKE.CORE und die Berechtigung USAGE für alle System-DMFs im Schema SNOWFLAKE.CORE.

    Weisen Sie der Rolle des Tabelleneigentümers außerdem die in dieser Tabelle aufgeführten Berechtigungen zu:

    Berechtigung

    Objekt

    Anmerkungen

    EXECUTE DATA METRIC FUNCTION

    Konto

    Mit dieser Berechtigung können Sie steuern, welche Rollen Zugriff auf serverlose Computeressourcen haben, um die System-DMF aufzurufen.

    USAGE

    Datenbank, Schema

    Diese Objekte sind die Datenbank und das Schema, die die referenzierte Tabelle in query enthalten.

  • Weisen Sie die Berechtigungen aus der vorherigen Tabelle der Rolle des Tabelleneigentümers zu. Weisen der Rolle des Tabelleneigentümers außerdem die folgenden Berechtigungen zu:

  • Verwenden Sie die Rolle ACCOUNTADMIN.

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.

Beispiel

Bestimmen der Aktualität der Daten, 300 Sekunden oder 5 Minuten, in der Tabelle, durch Messen der Spalte TIMESTAMP:

SELECT SNOWFLAKE.CORE.FRESHNESS(
  SELECT
    timestamp
  FROM hr.tables.empl_info
) < 300;
Copy
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True                                                                |
+---------------------------------------------------------------------+