- Kategorien:
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>' ] )
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'
));
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'
));
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'
));