- Kategorien:
ACCEPTED_VALUES (System-Datenmetrikfunktion)¶
Gibt die Anzahl der Datensätze zurück, bei denen der Wert einer Spalte nicht mit einem booleschen Ausdruck übereinstimmt.
Syntax¶
SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
Argumente¶
column
Gibt die Spalte an, die Werte enthält, die mit dem booleschen Ausdruck in
lambda-expression
verglichen werden.lambda-expression
Gibt einen Lambda-Ausdruck an, der aus der folgenden Syntax besteht:
column -> expression
.Die Funktion gibt die Anzahl der Datensätze zurück, bei denen der Wert von :samp:`{column}`nicht mit dem booleschen Ausdruck übereinstimmt. Dieser Ausdruck kann die folgenden Operationen und Funktionen verwenden:
Die
column
im Lambda-Ausdruck stimmt immer mit demcolumn
-Argument überein.
Zulässige Datentypen¶
Die in den Argumenten column
und lambda-expression
angegebene Spalte kann die folgenden Datentypen enthalten:
DATE
FLOAT
NUMBER
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TIMESTAMP_TZ
VARCHAR
Rückgabewerte¶
Die Funktion gibt einen NUMBER-Wert 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 folgenden 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 „table.referenced“-Tabelle“enthalten, mit der die DMF verknüpft ist.
Weisen Sie IMPORTED PRIVILEGES in der SNOWFLAKE-Datenbank der Rolle des Tabelleneigentümers zu. Weitere Informationen dazu finden Sie unter Ermöglicht anderen Rollen die Verwendung von Schemas in der SNOWFLAKE-Datenbank..
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.
Nutzungshinweise¶
Sie können diese Funktion nicht direkt aufrufen. 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.
Sie können die SYSTEM$DATA_METRIC_SCAN-Funktion verwenden, um die ACCEPTED_VALUES-Funktion für eine Tabelle auszuführen, ohne sie zu verknüpfen.
Sie können diese Funktion nicht mehr als einmal mit derselben Spalte verknüpfen.
Durch das Umbenennen einer Spalte, die in der ACCEPTED_VALUES-Funktion angegeben ist, wird die Zuordnung zwischen der Funktion und der Tabelle oder Ansicht der Spalte unterbrochen. Wenn Sie die Spalte umbenennen, müssen Sie die Funktion neu zu der Tabelle oder Ansicht zuordnen.
Beispiele¶
Verknüpfen Sie die Funktion mit der t1
-Tabelle, sodass die Anzahl der Datensätze zurückgegeben wird, in denen der Wert der Spalte age
nicht gleich fünf ist.
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
Verknüpfen Sie die Funktion mit der order_details
-Ansicht, sodass die Anzahl der Datensätze zurückgegeben wird, in denen der Wert der Spalte order_status
nicht in der Liste der Pending
-, Dispatched
- und Delivered
-Zeichenfolgen enthalten ist.
ALTER VIEW order_details
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
order_status,
order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));