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'

Required if the specified data metric function is ACCEPTED_VALUES. Disallowed for all other DMFs.

Specifies a Boolean expression used to evaluate whether a record passes or fails the ACCEPTED_VALUES data quality check. The SYSTEM$DATA_METRIC_SCAN function returns records that do not match the Boolean expression. The expression can include the following operators and functions:

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

If the ACCEPTED_VALUES DMF is associated with the object specified by REF_ENTITY_NAME, the SYSTEM$DATA_METRIC_SCAN function ignores the Boolean expression that was specified when ACCEPTED_VALUES was associated with the object.

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