Kategorien:

Systemfunktionen, Tabellenfunktionen

SYSTEM$DATA_METRIC_SCAN

Gibt die Zeilen zurück, in denen eine Datenqualitätsmetrik Daten erkannt hat, die eine Datenqualitätsprüfung nicht bestehen. Wenn Sie zum Beispiel die Datenmetrikfunktion NULL_COUNT als Argument verwenden, gibt die Funktion die Zeilen in der Tabelle zurück, die einen NULL-Wert in einer bestimmten Spalte enthalten.

Syntax

SYSTEM$DATA_METRIC_SCAN(
  REF_ENTITY_NAME  => '<object>'
  , METRIC_NAME  => '<data_metric_function>'
  , ARGUMENT_NAME => '<column>'
  [ , ARGUMENT_EXPRESSION => '<boolean-expression>' ]
  [ , AT_TIMESTAMP => '<timestamp>' ] )
Copy

Argumente

Benötigt:

REF_ENTITY_NAME => 'object'

Name der Tabelle oder Ansicht, auf der die angegebene Datenmetrikfunktion ausgeführt wird. Die Funktion gibt Zeilen aus diesem Objekt zurück.

METRIC_NAME => 'data_metric_function'

Name der System-Datenmetrikfunktion, die Sie ausführen möchten, um die angegebene Tabelle oder Ansicht auszuwerten. Nur die folgenden Systemfunktionen werden unterstützt:

  • SNOWFLAKE.CORE.ACCEPTED_VALUES

  • SNOWFLAKE.CORE.BLANK_COUNT

  • SNOWFLAKE.CORE.BLANK_PERCENT

  • SNOWFLAKE.CORE.DUPLICATE_COUNT

  • SNOWFLAKE.CORE.NULL_COUNT

  • SNOWFLAKE.CORE.NULL_PERCENT

ARGUMENT_NAME => 'column'

Name der Spalte in der angegebenen Tabelle oder Ansicht, die als Argument an die angegebene Datenmetrikfunktion übergeben wird.

Optional:

ARGUMENT_EXPRESSION => 'boolean-expression'

Erforderlich, wenn die angegebene Datenmetrikfunktion ALLOWED_VALUES ist. Für alle anderen DMFs nicht zulässig.

Gibt einen booleschen Ausdruck an, der verwendet wird, um zu bewerten, ob ein Datensatz dieALLOWED_VALUES-Datenqualitätsprüfung besteht oder nicht. Die SYSTEM$DATA_METRIC_SCAN-Funktion gibt Datensätze zurück, die nicht mit dem booleschen Ausdruck übereinstimmen. Der Ausdruck kann die folgenden Operatoren und Funktionen enthalten:

Die Spalte im booleschen Ausdruck muss dieselbe Spalte sein, die im ARGUMENT_NAME-Argument angegeben ist.

Wenn die ALLOWED_VALUES-DMF mit dem Objekt verknüpft ist, das von REF_ENTITY_NAME angegeben wird, ignoriert die SYSTEM$DATA_METRIC_SCAN-Funktion den booleschen Ausdruck, der bei der Verknüpfung von ALLOWED_VALUES mit dem Objekt angegeben wurde.

AT_TIMESTAMP => 'timestamp'

Zeitstempel, der als Argument übergeben wird, um die Ergebnisse einer DMF-Auswertung der Tabelle oder Ansicht in der Vergangenheit zu überprüfen.

Rückgabewerte

Zeilen aus der angegebenen Tabelle oder Ansicht

Zugriffssteuerungsrechte

Die Ausführung dieser Funktion erfordert die folgenden Berechtigungen:

  • SELECT auf der angegebenen Tabelle.

  • USAGE der angegebenen Datenmetrikfunktion

Nutzungshinweise

  • Diese Funktion unterstützt keine benutzerdefinierten Kennzahlen.

  • Wenn die angegebene Tabelle durch eine Richtlinie geschützt ist, wie z. B. eine Maskierungsrichtlinie oder eine Zeilenzugriffsrichtlinie, gibt die Funktion möglicherweise unerwartete oder unvollständige Daten zurück, da die Ergebnisse von der Rolle des Benutzers bei der Ausführung der Funktion abhängen.

Beispiele

Da die Systemmetrik SNOWFLAKE.CORE.NULL_COUNT die Gesamtzahl der NULL-Werte in einer bestimmten Spalte zurückgibt, gibt das Folgende die Zeilen der Tabelle employeesTable zurück, die NULL-Werte in der Spalte SSN haben.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.null_count',
    ARGUMENT_NAME => 'SSN'
  ));
Copy

In Anbetracht der Tatsache, dass die Systemmetrik SNOWFLAKE.CORE.BLANK_COUNT die Anzahl der leeren Werte in einer Spalte zurückgibt, gibt die folgende Funktion die Zeilen der employeesTable-Tabelle zurück, die in der Version der Tabelle, die zu einem bestimmten Zeitpunkt in der Vergangenheit existierte, einen leeren Wert in der name-Spalte hatten.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.blank_count',
    ARGUMENT_NAME => 'name',
    AT_TIMESTAMP => '2024-08-28 02:00:00 -0700'
  ));
Copy

Gibt die Zeilen zurück, in denen der Wert der age-Spalte nicht gleich fünf ist (d. h. die Zeilen, die nicht der von ARGUMENT_EXPRESSION angegebenen Bedingung entsprechen).

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.accepted_values',
    ARGUMENT_NAME => 'age',
    ARGUMENT_EXPRESSION => 'age = 5'
  ));
Copy