Auf dieser Seite wird beschrieben, wie Sie einen Dataplex-Datenqualitätsscan erstellen.
Weitere Informationen zu Datenqualitätsscans finden Sie unter Informationen zur automatischen Datenqualität.
Hinweise
Aktivieren Sie die Dataplex API.
Berechtigungen
Zum Ausführen eines Datenqualitätsscans für eine BigQuery-Tabelle benötigen Sie die Berechtigung zum Lesen der BigQuery-Tabelle und die Berechtigung zum Erstellen eines BigQuery-Jobs in dem Projekt, das zum Scannen der Tabelle verwendet wird.
Wenn sich die BigQuery-Tabelle und der Datenqualitätsscan in verschiedenen Projekten befinden, müssen Sie dem Dataplex-Dienstkonto des Projekts, das die Leseberechtigung für den Datenqualitätsscan enthält, die Leseberechtigung für die entsprechende BigQuery-Tabelle erteilen.
Wenn sich die Datenqualitätsregeln auf zusätzliche Tabellen beziehen, muss das Dienstkonto des Scanprojekts Leseberechtigungen für dieselben Tabellen haben.
Bitten Sie Ihren Administrator, dem Dataplex-Dienstkonto die IAM-Rolle „BigQuery Data Editor“ (
roles/bigquery.dataEditor
) für das Ergebnis-Dataset und die Ergebnistabelle zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Exportieren der Scanergebnisse in eine BigQuery-Tabelle benötigen. Dadurch werden die folgenden Berechtigungen gewährt:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
Wenn die BigQuery-Daten in einem Dataplex-Lake organisiert sind, gewähren Sie dem Dataplex-Dienstkonto die Rollen
roles/dataplex.metadataReader
undroles/dataplex.viewer
. Alternativ benötigen Sie alle der folgenden Berechtigungen:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
Wenn Sie eine externe BigQuery-Tabelle aus Cloud Storage scannen, weisen Sie dem Dataplex-Dienstkonto die Cloud Storage-Rolle
roles/storage.objectViewer
für den Bucket zu. Alternativ können Sie dem Dataplex-Dienstkonto die folgenden Berechtigungen zuweisen:storage.buckets.get
storage.objects.get
Wenn Sie die Ergebnisse des Datenqualitätsscans auf den BigQuery- und Data Catalog-Seiten in der Google Cloud Console für die Quelltabellen veröffentlichen möchten, muss Ihnen entweder die IAM-Rolle „BigQuery-Datenbearbeiter“ (
roles/bigquery.dataEditor
) oder die Berechtigungbigquery.tables.update
für die Tabelle gewährt worden sein.Wenn Sie auf Spalten zugreifen müssen, die durch BigQuery-Zugriffsrichtlinien auf Spaltenebene geschützt sind, weisen Sie diesen Spalten die Berechtigungen des Dataplex-Dienstkontos zu. Der Nutzer, der einen Datenscan erstellt oder aktualisiert, benötigt auch Berechtigungen für die Spalten.
Wenn für eine Tabelle BigQuery-Zugriffsrichtlinien auf Zeilenebene aktiviert sind, können Sie nur Zeilen scannen, die für das Dataplex-Dienstkonto sichtbar sind. Die Zugriffsberechtigungen der einzelnen Nutzer werden bei Richtlinien auf Zeilenebene nicht ausgewertet.
Berechtigungen und Rollen für Datenscans
Zur Verwendung der automatischen Datenqualität benötigen Sie entweder die Berechtigungen zum Ausführen von Datenscans oder eine Rolle mit vordefinierten Berechtigungen zum Ausführen von Datenscans.
In der folgenden Tabelle sind die DataScan
-Berechtigungen aufgeführt:
Name der Berechtigung | Gewährt die Berechtigung für folgende Aktionen: |
---|---|
dataplex.datascans.create |
DataScan erstellen |
dataplex.datascans.delete |
DataScan löschen |
dataplex.datascans.get |
Operative Metadaten wie ID oder Zeitplan aufrufen, aber nicht Ergebnisse und Regeln |
dataplex.datascans.getData |
Details zu DataScan ansehen, einschließlich Regeln und Ergebnisse |
dataplex.datascans.list |
DataScan auflisten |
dataplex.datascans.run |
DataScan ausführen |
dataplex.datascans.update |
Beschreibung von DataScan aktualisieren |
dataplex.datascans.getIamPolicy |
Aktuelle IAM-Berechtigungen für den Scan ansehen |
dataplex.datascans.setIamPolicy |
IAM-Berechtigungen für den Scan festlegen |
Gewähren Sie Nutzern eine oder mehrere der folgenden Rollen:
roles/dataplex.dataScanAdmin
: Vollständiger Zugriff aufDataScan
Ressourcen.roles/dataplex.dataScanEditor
: Schreibzugriff aufDataScan
Ressourcen.roles/dataplex.dataScanViewer
: Lesezugriff aufDataScan
-Ressourcen mit Ausnahme von Regeln und Ergebnissen.roles/dataplex.dataScanDataViewer
: Lesezugriff aufDataScan
-Ressourcen, einschließlich Regeln und Ergebnisse.
Datenqualitätsregeln definieren
Sie können Regeln für die Datenqualität mithilfe von integrierten Regeln oder benutzerdefinierten SQL-Prüfungen definieren. Wenn Sie die Google Cloud CLI verwenden, können Sie diese Regeln in einer JSON- oder YAML-Datei definieren.
Die Beispiele in den folgenden Abschnitten zeigen, wie Sie verschiedene Datenqualitätsregeln definieren können. Mithilfe der Regeln wird eine Beispieltabelle mit Daten zu Kundentransaktionen validiert. Angenommen, die Tabelle hat das folgende Schema:
Spaltenname | Spaltentyp | Spaltenbeschreibung |
---|---|---|
transaction_timestamp | Zeitstempel | Zeitstempel der Transaktion. Die Tabelle ist nach diesem Feld partitioniert. |
customer_id | String | Eine Kundennummer mit 8 Buchstaben gefolgt von 16 Ziffern. |
transaction_id | String | Die Transaktions-ID darf in der Tabelle nur einmal vorkommen. |
currency_id | String | Eine der unterstützten Währungen.Der Währungstyp muss mit einer der verfügbaren Währungen in der Dimensionstabelle dim_currency übereinstimmen.
|
Menge | float | Transaktionsbetrag. |
discount_pct | float | Rabattprozentsatz Dieser Wert muss zwischen 0 und 100 liegen. |
Datenqualitätsregeln mit integrierten Regeltypen definieren
Die folgenden Beispielregeln basieren auf integrierten Regeltypen. Sie können Regeln anhand von integrierten Regeltypen mit der Google Cloud Console oder der API erstellen. Dataplex empfiehlt möglicherweise einige dieser Regeln.
Spaltenname | Regeltyp | Vorgeschlagene Dimension | Regelparameter |
---|---|---|---|
transaction_id |
Eindeutigkeitsprüfung | Eindeutigkeit | Threshold: Not Applicable (Grenzwert: 500) |
amount |
Nullprüfung | Vollständigkeit | Threshold: 100% (Grenzwert: 500) |
customer_id |
Prüfung mit Regex (regulärer Ausdruck) | Gültigkeit | Regulärer Ausdruck: ^[0-9]{8}[a-zA-Z]{16}$ Grenzwert: 100%
|
currency_id |
Wertesatzprüfung | Gültigkeit | Satz aus: USD,JPY,INR,GBP,CAN Schwellenwert: 100%
|
Datenqualitätsregeln mit benutzerdefinierten SQL-Regeln definieren
Verwenden Sie das folgende Framework, um benutzerdefinierte SQL-Regeln zu erstellen:
Wenn Sie eine Regel erstellen, die eine Zeile nach der anderen auswertet, erstellen Sie einen Ausdruck, der die Anzahl der erfolgreichen Zeilen generiert, wenn Dataplex die Abfrage
SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE
auswertet. Dataplex prüft die Anzahl der erfolgreichen Zeilen anhand des Schwellenwerts.Wenn Sie eine Regel erstellen, die Daten für alle Zeilen auswertet oder eine aggregierte SQL-Prüfung verwendet, erstellen Sie einen Ausdruck, der Erfolg oder Misserfolg zurückgibt, wenn Dataplex die Abfrage
SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE
auswertet.Wenn Sie eine Regel erstellen, die den ungültigen Status eines Datasets auswertet, geben Sie eine Anweisung an, die ungültige Zeilen zurückgibt. Wenn Zeilen zurückgegeben werden, schlägt die Regel fehl. Lassen Sie das nachgestellte Semikolon in der SQL-Anweisung weg.
Sie können auf eine Datenquellentabelle und alle ihre Vorbedingungsfilter verweisen, indem Sie den Datenreferenzparameter
${data()}
in einer Regel verwenden, anstatt die Quelltabelle und ihre Filter explizit zu erwähnen. Beispiele für Vorbedingungsfilter sind Zeilenfilter, Stichproben in Prozent und inkrementelle Filter. Beim Parameter${data()}
wird zwischen Groß- und Kleinschreibung unterschieden.
Die folgenden Beispielregeln basieren auf benutzerdefinierten SQL-Regeln.
Regeltyp | Regelbeschreibung | SQL-Ausdruck |
---|---|---|
Zeilenbedingung | Prüft, ob der Wert von discount_pct zwischen 0 und 100 liegt.
|
0 <discount_pct UND discount_pct < 100
|
Zeilenbedingung | Referenzprüfung, um zu bestätigen, dass currency_id eine der unterstützten Währungen ist.
|
currency_id in (select id from my_project_id.dim_dataset.dim_currency)
|
Aggregat-SQL-Ausdruck | Überprüft, ob der durchschnittliche discount_pct zwischen 30% und 50 % liegt.
|
30<avg(discount) AND avg(discount) <50
|
Zeilenbedingung | Überprüft, ob ein Datum nicht in der Zukunft liegt. | TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
|
Aggregat-SQL-Ausdruck |
Eine benutzerdefinierte BigQuery-Funktion (UDF), mit der geprüft wird, ob der durchschnittliche Transaktionsbetrag unter einem vordefinierten Wert pro Land liegt. Erstellen Sie die UDF (JavaScript) mit dem folgenden Befehl: CREATE OR REPLACE FUNCTION myProject.myDataset.average_by_country ( country STRING, average FLOAT64) RETURNS BOOL LANGUAGE js AS R""" if (country = "CAN" && average < 5000){ return 1 } else if (country = "IND" && average < 1000){ return 1 } else { return 0 } """; |
Beispielregel zur Überprüfung des durchschnittlichen Transaktionsbetrags für country=CAN .
myProject.myDataset.average_by_country( "CAN", (SELECT avg(amount) FROM myProject.myDataset.transactions_table WHERE currency_id = 'CAN' )) |
Aggregat-SQL-Ausdruck | Eine BigQuery ML-Vorhersageklausel zum Identifizieren von Anomalien in discount_pct . Anhand von customer , currency und transaction wird geprüft, ob ein Rabatt angewendet werden sollte. Die Regel prüft zu mindestens 99 %, ob die Vorhersage mit dem tatsächlichen Wert übereinstimmt. Annahme: Das ML-Modell wird vor Verwendung der Regel erstellt. Erstellen Sie das ML-Modell mit dem folgenden Befehl: CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
Die folgende Regel prüft, ob die Vorhersagegenauigkeit größer als 99 % ist.
SELECT accuracy > 0.99 FROM ML.EVALUATE (MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names WHERE transaction_timestamp > '2022-01-01'; ) ) |
Zeilenbedingung | Eine BigQuery ML-Vorhersagefunktion zum Identifizieren von Anomalien in discount_pct . Die Funktion prüft anhand von customer , currency und transaction , ob ein Rabatt angewendet werden sollte.
Die Regel identifiziert alle Vorkommen, bei denen die Vorhersage nicht übereinstimmte.
Annahme: Das ML-Modell wird vor Verwendung der Regel erstellt. Erstellen Sie das ML-Modell mit dem folgenden Befehl: CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
Mit der folgenden Regel wird für jede Zeile geprüft, ob die Rabattvorhersage mit dem tatsächlichen Wert übereinstimmt.
IF(discount_pct > 0, 1, 0) =(SELECT predicted_label FROM ML.PREDICT( MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names AS t WHERE t.transaction_timestamp = transaction_timestamp LIMIT 1 ) ) ) |
SQL-Assertion | Prüft, ob discount_pct für heute größer als 30% ist. Dazu wird geprüft, ob Zeilen mit einem Rabattprozentsatz von weniger oder gleich 30 vorhanden sind. |
SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date() |
SQL-Assertion (mit Datenreferenzparameter) | Prüft, ob Der Datumsfilter Der Datenreferenzparameter |
SELECT * FROM ${data()} WHERE discount_pct > 30 |
Datenqualitätsregeln mit der gcloud CLI definieren
Die folgende YAML-Beispieldatei verwendet dieselben Regeln wie die Beispielregeln mit integrierten Typen und die Beispielregeln für benutzerdefinierte SQL-Regeln. Sie können diese YAML-Datei als Eingabe für den gcloud CLI-Befehl verwenden.
rules:
- uniquenessExpectation: {}
column: transaction_id
dimension: UNIQUENESS
- nonNullExpectation: {}
column: amount
dimension: COMPLETENESS
threshold: 1
- regexExpectation:
regex: '^[0-9]{8}[a-zA-Z]{16}$'
column : customer_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- setExpectation :
values :
- 'USD'
- 'JPY'
- 'INR'
- 'GBP'
- 'CAN'
column : currency_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- rowConditionExpectation:
sqlExpression : 0 < `discount_pct` AND `discount_pct` < 100
column: discount_pct
dimension: VALIDITY
threshold: 1
- rowConditionExpectation:
sqlExpression : currency_id in (select id from `my_project_id.dim_dataset.dim_currency`)
column: currency_id
dimension: VALIDITY
threshold: 1
- tableConditionExpectation:
sqlExpression : 30 < avg(discount_pct) AND avg(discount_pct) < 50
dimension: VALIDITY
- rowConditionExpectation:
sqlExpression : TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
column: transaction_timestamp
dimension: VALIDITY
threshold: 1
Datenqualitätsscan erstellen
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf Datenqualitätsscan erstellen.
Füllen Sie im Fenster Scan definieren die folgenden Felder aus:
Geben Sie einen Anzeigenamen ein.
Die Scan-ID wird automatisch generiert, wenn Sie keine eigene ID angeben. Siehe Namenskonvention für Ressourcen.
Optional: Geben Sie eine Beschreibung ein.
Klicken Sie im Feld Tabelle auf Durchsuchen, wählen Sie die gewünschte Tabelle aus und klicken Sie auf Auswählen. Dataplex unterstützt nur BigQuery-Standardtabellen.
Wählen Sie für Tabellen in multiregionalen Datasets eine Region aus, in der der Datenscan erstellt werden soll.
Klicken Sie auf In Dataplex-Lakes durchsuchen, um die im Dataplex-Lake organisierten Tabellen zu durchsuchen.
Wählen Sie im Feld Umfang die Option Inkrementell oder Gesamte Daten aus.
- Bei Auswahl von Inkrementell: Wählen Sie im Feld Zeitstempelspalte eine Spalte vom Typ
DATE
oderTIMESTAMP
aus der BigQuery-Tabelle aus, die monoton zunimmt und zum Identifizieren neuer Datensätze verwendet werden kann. Das kann eine Spalte sein, die die Tabelle partitioniert.
- Bei Auswahl von Inkrementell: Wählen Sie im Feld Zeitstempelspalte eine Spalte vom Typ
Optional: Fügen Sie Labels hinzu. Labels sind
key:value
-Paare, mit denen Sie verwandte Objekte zusammen oder mit anderen Google Cloud-Ressourcen gruppieren können.Klicken Sie auf Filter, um die Daten zu filtern. Klicken Sie das Kästchen Zeilen filtern an. Der Eingabewert für den Zeilenfilter muss ein gültiger SQL-Ausdruck sein, der als Teil einer
WHERE
-Klausel in der BigQuery-Standard-SQL-Syntax verwendet werden kann. Beispiel:col1 >= 0
Der Filter kann eine Kombination aus mehreren Spaltenbedingungen sein. Beispiel:col1 >= 0 AND col2 < 10
.Wählen Sie in der Liste Stichprobengröße einen Stichprobenprozentsatz aus, damit Stichproben für Ihre Daten erhoben werden. Wählen Sie einen Prozentsatz zwischen 0,0% und 100,0% mit bis zu drei Dezimalstellen aus. Wählen Sie bei größeren Datasets einen niedrigeren Prozentsatz für die Stichprobenerhebung aus. Wenn Sie beispielsweise bei einer Tabelle mit ca. 1 PB einen Wert zwischen 0, 1% und 1, 0 % eingeben, nimmt Dataplex Stichproben zwischen 1 und 10 TB an Daten. Bei inkrementellen Datenscans wendet Dataplex Stichproben auf das neueste Inkrement an.
Klicken Sie auf das Kästchen Ergebnisse in BigQuery und Dataplex-Katalog-UI veröffentlichen, um die Ergebnisse des Datenqualitätsscans auf den Seiten von BigQuery und Data Catalog in der Google Cloud Console für die Quelltabelle zu veröffentlichen. Sie können die letzten Scanergebnisse auf dem Tab Datenqualität der BigQuery- und Data Catalog-Seiten der Quelltabelle ansehen. Informationen dazu, wie Sie Nutzern den Zugriff auf die veröffentlichten Scanergebnisse ermöglichen, finden Sie unter Veröffentlichte Ergebnisse freigeben. In den folgenden Fällen ist die Veröffentlichungsoption möglicherweise nicht verfügbar:
- Sie haben nicht die erforderlichen Berechtigungen für die Tabelle.
- Ein anderer Datenqualitätsscan ist so eingestellt, dass Ergebnisse veröffentlicht werden.
Weitere Informationen zu den Berechtigungen, die zum Ansehen der veröffentlichten Ergebnisse erforderlich sind, finden Sie unter Berechtigungen.
Klicken Sie auf Weiter.
Wählen Sie im Fenster Zeitplan eine der folgenden Optionen aus:
Wiederholen: Führen Sie den Datenqualitätsscanjob nach einem Zeitplan aus: täglich, wöchentlich, monatlich oder benutzerdefiniert. Geben Sie an, wie oft und zu welcher Zeit der Scan ausgeführt werden soll. Wenn Sie „Benutzerdefiniert“ auswählen, geben Sie den Zeitplan im Cron-Format an.
On-Demand: Führen Sie Ihren Datenqualitätsscanjob nach Bedarf aus.
Klicken Sie auf Weiter.
Definieren Sie im Fenster Datenqualitätsregeln die Regeln, die für diesen Datenqualitätsscan konfiguriert werden sollen. Klicken Sie auf Regeln hinzufügen und wählen Sie dann eine der folgenden Optionen aus.
Profilbasierte Empfehlungen: Erstellen Sie Regeln aus den Empfehlungen, die auf einem vorhandenen Datenprofilscan basieren.
Spalten auswählen: Wählen Sie die Spalten aus, für die empfohlene Regeln angezeigt werden sollen.
Projekt scannen: Empfehlungen basierend auf einem vorhandenen Scan zur Datenprofilerstellung. Standardmäßig wählt Dataplex Profilscans aus dem Projekt aus, in dem Sie den Datenqualitätsscan erstellen. Wenn Sie den Scan in einem anderen Projekt erstellt haben, müssen Sie das Projekt angeben, aus dem Profilscans abgerufen werden sollen.
Profilergebnisse auswählen: Abhängig von den ausgewählten Spalten und Projekten werden mehrere Profilergebnisse angezeigt.
Wählen Sie ein oder mehrere Profilergebnisse aus und klicken Sie dann auf OK. Dadurch wird eine Liste mit Regeln gefüllt, aus denen ausgewählt werden kann.
Wählen Sie die Regeln aus, die Sie bearbeiten möchten, indem Sie die entsprechenden Kästchen anklicken und dann auf Auswählen klicken. Anschließend werden die Regeln der aktuellen Regelliste hinzugefügt. Anschließend können Sie die Regeln bearbeiten.
Integrierte Regeltypen: Sie erstellen Regeln aus vordefinierten Regeln. Liste der vordefinierten Regeln
Spalten auswählen: Wählen Sie die Spalten aus, für die Sie Regeln auswählen möchten.
Regeltypen auswählen: Abhängig von den ausgewählten Spalten werden mehrere Regeltypen zur Auswahl angezeigt.
Wählen Sie einen oder mehrere Regeltypen aus und klicken Sie dann auf OK. Dadurch wird eine Liste mit Regeln gefüllt, aus denen Sie auswählen können.
Wählen Sie die Regeln aus, die Sie bearbeiten möchten, indem Sie die entsprechenden Kästchen anklicken und dann auf Auswählen klicken. Nach der Auswahl werden die Regeln Ihrer aktuellen Regelliste hinzugefügt. Anschließend können Sie die Regeln bearbeiten.
Prüfregel für SQL-Zeilen: Erstellen Sie eine benutzerdefinierte SQL-Regel, die auf jede Zeile angewendet wird (benutzerdefinierte SQL-Zeilenprüfungsregel).
Wählen Sie unter Dimension eine Dimension aus.
Wählen Sie unter Bestandsschwellenwert den Prozentsatz der Datensätze aus, die die Prüfung bestehen müssen.
Wählen Sie unter Spaltenname eine Spalte aus.
Geben Sie im Feld SQL-Ausdruck angeben einen SQL-Ausdruck ein, der den booleschen Wert
true
(bestanden) oderfalse
(fehlgeschlagen) ergibt. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.Klicken Sie auf Hinzufügen.
SQL-Regel für zusammengefasste Prüfung: Erstellen Sie eine benutzerdefinierte SQL-Regel für zusammengefasste Prüfung.
Wählen Sie unter Dimension eine Dimension aus.
Wählen Sie unter Spaltenname eine Spalte aus.
Geben Sie im Feld SQL-Ausdruck angeben einen SQL-Ausdruck ein, der den booleschen Wert
true
(bestanden) oderfalse
(fehlgeschlagen) ergibt. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.Klicken Sie auf Hinzufügen.
SQL-Assertion-Regel: Erstellen Sie eine benutzerdefinierte SQL-Assertion-Regel, um zu prüfen, ob die Daten einen ungültigen Status haben.
Wählen Sie unter Dimension eine Dimension aus.
Optional: Wählen Sie unter Spaltenname eine Spalte aus.
Geben Sie im Feld SQL-Anweisung angeben eine SQL-Anweisung ein, die Zeilen zurückgibt, die mit dem ungültigen Status übereinstimmen. Wenn Zeilen zurückgegeben werden, schlägt diese Regel fehl. Lassen Sie das nachgestellte Semikolon in der SQL-Anweisung weg. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.
Klicken Sie auf Hinzufügen.
Dataplex ermöglicht benutzerdefinierte Namen für Datenqualitätsregeln für Monitoring und Benachrichtigungen. Sie können jeder Datenqualitätsregel optional einen benutzerdefinierten Regelnamen und eine Beschreibung zuweisen. Bearbeiten Sie dazu eine Regel und geben Sie die folgenden Details an:
- Regelname: Geben Sie einen Namen für eine benutzerdefinierte Regel mit bis zu 63 Zeichen ein. Der Regelname kann Buchstaben (a–z, A–Z), Ziffern (0–9) und Bindestriche (-) enthalten und muss mit einem Buchstaben beginnen und mit einer Ziffer oder einem Buchstaben enden.
- Beschreibung: Geben Sie eine Regelbeschreibung mit einer maximalen Länge von 1.024 Zeichen ein.
Klicken Sie auf Weiter.
Optional: Exportieren Sie die Scanergebnisse in eine BigQuery-Standardtabelle. Klicken Sie auf Durchsuchen, um ein vorhandenes BigQuery-Dataset auszuwählen, in dem die Ergebnisse des Datenqualitätsscans gespeichert werden sollen.
Wenn die angegebene Tabelle nicht vorhanden ist, erstellt Dataplex sie für Sie. Wenn Sie eine vorhandene Tabelle verwenden, achten Sie darauf, dass sie mit dem Exporttabellenschema kompatibel ist.
Klicken Sie auf Erstellen.
Nachdem der Scan erstellt wurde, können Sie ihn jederzeit ausführen. Klicken Sie dazu auf Jetzt ausführen.
gcloud
Verwenden Sie zum Erstellen eines Datenqualitätsscans den Befehl gcloud dataplex datascans create data-quality
.
Wenn die Quelldaten in einem Dataplex-Lake organisiert sind, fügen Sie das Flag --data-source-entity
ein:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-entity=DATA_SOURCE_ENTITY
Wenn die Quelldaten nicht in einem Dataplex-Lake organisiert sind, fügen Sie das Flag --data-source-resource
hinzu:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-resource=DATA_SOURCE_RESOURCE
Ersetzen Sie die folgenden Variablen:
DATASCAN
: Der Name des Datenqualitätsscans.LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt werden soll.DATA_QUALITY_SPEC_FILE
: Der Pfad zur JSON- oder YAML-Datei, die die Spezifikationen für den Datenqualitätsscan enthält. Die Datei kann eine lokale Datei oder ein Cloud Storage-Pfad mit dem Präfixgs://
sein. Sie können zusätzliche Felder in dieser Datei angeben, z. B.rules
,rowFilter
odersamplingPercent
. Weitere Informationen finden Sie in der Dokumentation zur JSON-Darstellung.DATA_SOURCE_ENTITY
: Die Dataplex-Entität, die die Daten für den Datenqualitätsscan enthält. Beispiel:projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
DATA_SOURCE_RESOURCE
: Der Name der Ressource, die die Daten für den Datenqualitätsscan enthält. Beispiel://bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
REST
Tabellenschema exportieren
Wenn Sie die Ergebnisse des Datenqualitätsscans in eine vorhandene BigQuery-Tabelle exportieren möchten, muss sie mit dem folgenden Tabellenschema kompatibel sein:
Spaltenname | Datentyp der Spalte | Name des Unterfelds (falls zutreffend) |
Datentyp des Unterfelds | Modus | Beispiel |
---|---|---|---|---|---|
data_quality_scan | struct/record |
resource_name |
string |
Nullwerte zulässig | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
Nullwerte zulässig | dataplex-back-end-dev-project |
||
location |
string |
Nullwerte zulässig | us-central1 |
||
data_scan_id |
string |
Nullwerte zulässig | test-datascan |
||
data_source | struct/record |
resource_name |
string |
Nullwerte zulässig | Entitätsfall://dataplex.googleapis.com/projects/dataplex-back-end-dev-project/locations/europe-west2/lakes/a0-datascan-test-lake/zones/a0-datascan-test-zone/entities/table1 Groß-/Kleinschreibung der Tabelle: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
|
dataplex_entity_project_id |
string |
Nullwerte zulässig | dataplex-back-end-dev-project |
||
dataplex_entity_project_number |
integer |
Nullwerte zulässig | 123456789 |
||
dataplex_lake_id |
string |
Nullwerte zulässig | (Nur gültig, wenn die Quelle eine Entität ist.)test-lake
|
||
dataplex_zone_id |
string |
Nullwerte zulässig | (Nur gültig, wenn die Quelle eine Entität ist.)test-zone |
||
dataplex_entity_id |
string |
Nullwerte zulässig | (Nur gültig, wenn die Quelle eine Entität ist.)test-entity |
||
table_project_id |
string |
Nullwerte zulässig | test-project |
||
table_project_number |
integer |
Nullwerte zulässig | 987654321 |
||
dataset_id |
string |
Nullwerte zulässig | (nur gültig, wenn die Quelle eine Tabelle ist)test-dataset |
||
table_id |
string |
Nullwerte zulässig | (nur gültig, wenn die Quelle eine Tabelle ist)test-table |
||
data_quality_job_id | string |
Nullwerte zulässig | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
data_quality_job_configuration | json |
trigger |
string |
Nullwerte zulässig | ondemand /schedule |
incremental |
boolean |
Nullwerte zulässig | true /false |
||
sampling_percent |
float |
Nullwerte zulässig | (0–100)20.0 (gibt 20 % an) |
||
row_filter |
string |
Nullwerte zulässig | col1 >= 0 AND col2 < 10 |
||
job_labels | json |
Nullwerte zulässig | {"key1":value1} |
||
job_start_time | timestamp |
Nullwerte zulässig | 2023-01-01 00:00:00 UTC |
||
job_end_time | timestamp |
Nullwerte zulässig | 2023-01-01 00:00:00 UTC |
||
job_rows_scanned | integer |
Nullwerte zulässig | 7500 |
||
rule_name | string |
Nullwerte zulässig | test-rule |
||
rule_type | string |
Nullwerte zulässig | Range Check |
||
rule_evaluation_type | string |
Nullwerte zulässig | Per row |
||
rule_column | string |
Nullwerte zulässig | Rule only attached to a certain column |
||
rule_dimension | string |
Nullwerte zulässig | Uniqueness |
||
job_quality_result | struct/record |
passed |
boolean |
Nullwerte zulässig | true /false |
score |
float |
Nullwerte zulässig | 90.8 |
||
job_dimension_result | json |
Nullwerte zulässig | { "accuracy":{ "passed":true }, "consistency":{ "passed":false } }
|
||
rule_threshold_percent | float |
Nullwerte zulässig | (0,0–100,0)Rule-threshold-pct in API * 100 |
||
rule_parameters | json |
Nullwerte zulässig | {min: 24, max:5345} |
||
rule_pass | boolean |
Nullwerte zulässig | True |
||
rule_rows_evaluated | integer |
Nullwerte zulässig | 7400 |
||
rule_rows_passed | integer |
Nullwerte zulässig | 3 |
||
rule_rows_null | integer |
Nullwerte zulässig | 4 |
||
rule_failed_records_query | string |
Nullwerte zulässig | "SELECT * FROM `test-project.test-dataset.test-table` WHERE (NOT((`cTime` >= '15:31:38.776361' and `cTime` <= '19:23:53.754823') IS TRUE));" |
Beachten Sie beim Konfigurieren von BigQueryExport für einen Datenqualitätsscanjob die folgenden Richtlinien:
- Verwenden Sie für das Feld
resultsTable
das folgende Format://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}
. - Verwenden Sie eine BigQuery-Standardtabelle.
- Wenn die Tabelle beim Erstellen oder Aktualisieren des Scans nicht vorhanden ist, erstellt Dataplex sie für Sie.
- Standardmäßig wird die Tabelle täglich nach der Spalte
job_start_time
partitioniert. - Wenn Sie die Tabelle in anderen Konfigurationen partitionieren möchten oder nicht, erstellen Sie die Tabelle mit dem erforderlichen Schema und den erforderlichen Konfigurationen neu und geben Sie dann die vorab erstellte Tabelle als Ergebnistabelle an.
- Achten Sie darauf, dass sich die Ergebnistabelle am selben Speicherort wie die Quelltabelle befindet.
- Wenn VPC-SC im Projekt konfiguriert ist, muss sich die Ergebnistabelle im selben VPC-SC-Perimeter wie die Quelltabelle befinden.
- Wenn die Tabelle während der Scanausführungsphase geändert wird, wird der aktuell ausgeführte Job in die vorherige Ergebnistabelle exportiert und die Tabellenänderung wird ab dem nächsten Scanjob wirksam.
- Ändern Sie das Tabellenschema nicht. Wenn Sie benutzerdefinierte Spalten benötigen, erstellen Sie eine Ansicht der Tabelle.
- Legen Sie basierend auf Ihrem Anwendungsfall einen Ablauf für die Partition fest, um Kosten zu reduzieren. Weitere Informationen finden Sie unter Ablauf der Partition festlegen.
Datenqualitätsscan ausführen
Console
- Rufen Sie in der Google Cloud Console die Seite Datenqualität auf. Rufen Sie Dataplex Data Quality auf.
- Klicken Sie auf den Datenqualitätsscan, um ihn auszuführen.
- Klicken Sie auf Jetzt ausführen.
gcloud
Verwenden Sie den Befehl gcloud dataplex datascans run
, um einen Datenqualitätsscan auszuführen:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION \
Ersetzen Sie die folgenden Variablen:
LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.DATASCAN
: Der Name des Datenqualitätsscans.
REST
Ergebnisse des Datenqualitätsscans ansehen
Console
Die von Ihnen erstellten Datenqualitätsscans werden auf der Seite Datenqualität angezeigt.
Um die detaillierten Ergebnisse eines Scans aufzurufen, klicken Sie auf den Namen des Scans.
Im Abschnitt Übersicht finden Sie Informationen zu den letzten sieben Ausführungen. Dazu gehören der Zeitpunkt, zu dem der Scan ausgeführt wurde, die Anzahl der in jedem Job gescannten Datensätze, ob alle Datenqualitätsprüfungen bestanden wurden, ob Fehler aufgetreten sind, wie viele Datenqualitätsprüfungen fehlgeschlagen sind und welche Dimensionen fehlgeschlagen sind.
Der Abschnitt Konfiguration des Datenqualitätsscans enthält Details zum Scan.
gcloud
Verwenden Sie den Befehl gcloud dataplex datascans jobs describe
, um die Ergebnisse eines Datenqualitätsscanjobs anzusehen:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Ersetzen Sie die folgenden Variablen:
JOB
: Die Job-ID des Datenqualitätsscanjobs.LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.DATASCAN
: Der Name des Datenqualitätsscans, zu dem der Job gehört.--view=FULL
: Geben SieFULL
an, um das Ergebnis des Scanjobs anzusehen.
REST
Sehen Sie sich mit APIs Explorer die Ergebnisse eines Datenqualitätsscans an.
Alle Datenqualitätsscanjobs ansehen
Dataplex speichert den Datenqualitätsscanverlauf der letzten 300 Jobs oder des vergangenen Jahres, je nachdem, was zuerst eintritt.
Console
Der Tab Jobverlauf enthält Informationen zu vergangenen Jobs. Es listet alle Jobs auf, die Anzahl der in jedem Job gescannten Datensätze, den Jobstatus, den Zeitpunkt der Jobausführung, ob die einzelnen Regeln bestanden wurden oder fehlgeschlagen sind, usw.
Klicken Sie in der Spalte Job-ID auf einen der Jobs, um detaillierte Informationen zu einem Job aufzurufen.
gcloud
Verwenden Sie den Befehl gcloud dataplex datascans jobs list
, um alle Jobs eines Datenqualitätsscans anzusehen:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN \
Ersetzen Sie die folgenden Variablen:
LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.DATASCAN
: Der Name des Datenqualitätsscans, für den alle Jobs angezeigt werden sollen.
REST
Veröffentlichte Ergebnisse teilen
Wenn Sie beim Erstellen eines Datenqualitätsscans die Scanergebnisse auf den Seiten „BigQuery“ und „Data Catalog“ in der Google Cloud Console veröffentlichen, sind die aktuellen Scanergebnisse auf dem Tab Datenqualität dieser Seiten verfügbar.
Sie können den Nutzern in Ihrer Organisation Zugriff auf die veröffentlichten Scanergebnisse gewähren. So gewähren Sie Zugriff auf die Scanergebnisse:
Rufen Sie in der Google Cloud Console die Seite Profil auf.
Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie freigeben möchten.
Wechseln Sie zum Tab Berechtigungen.
Klicken Sie auf Zugriff erlauben.
Fügen Sie im Feld Neue Hauptkonten das Hauptkonto hinzu, auf das Sie Zugriff gewähren möchten.
Wählen Sie im Feld Rolle auswählen die Option Dataplex DataScan DataViewer aus.
Klicken Sie auf Speichern.
So entfernen Sie den Zugriff auf die veröffentlichten Scanergebnisse für ein Hauptkonto:
Rufen Sie in der Google Cloud Console die Seite Profil auf.
Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie freigeben möchten.
Wechseln Sie zum Tab Berechtigungen.
Wählen Sie das Hauptkonto aus, für das Sie die Rolle Dataplex DataScan DataViewer entfernen möchten.
Klicken Sie auf Zugriff entfernen.
Klicken Sie auf Bestätigen.
Datenqualitätsscan aktualisieren
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie in der Zeile mit dem zu bearbeitenden Scan auf das Dreipunkt-Menü > Bearbeiten.
Die Werte bearbeiten
Klicken Sie auf Speichern.
gcloud
Verwenden Sie den Befehl gcloud dataplex datascans update data-quality
, um die Beschreibung eines Datenqualitätsscans zu aktualisieren:
gcloud dataplex datascans update data-quality DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
Ersetzen Sie Folgendes:
DATASCAN
: Der Name des Datenqualitätsscans, der aktualisiert werden soll.LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.DESCRIPTION
: Die neue Beschreibung des Datenqualitätsscans.
REST
Verwenden Sie APIs Explorer, um den Datenqualitätsscan zu bearbeiten.
Datenqualitätsscan löschen
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Scan, den Sie löschen möchten.
Klicken Sie auf Löschen.
gcloud
Verwenden Sie den Befehl gcloud dataplex datascans delete
, um einen Datenqualitätsscan zu löschen:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION \ --async
Ersetzen Sie die folgenden Variablen:
DATASCAN
: Der Name des zu löschenden Datenqualitätsscans.LOCATION
: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.
REST
Benachrichtigungen in Cloud Logging festlegen
So richten Sie mithilfe der Logs in Cloud Logging Benachrichtigungen für Datenqualitätsfehler ein:
Console
Rufen Sie in der Google Cloud Console den Log-Explorer von Cloud Logging auf.
Geben Sie im Fenster Abfrage Ihre Abfrage ein. Beispielabfragen
Klicken Sie auf Abfrage ausführen.
Klicken Sie auf Benachrichtigung erstellen. Dadurch wird eine Seitenleiste geöffnet.
Geben Sie den Namen der Benachrichtigungsrichtlinie ein und klicken Sie auf Weiter.
Überprüfen Sie die Abfrage.
Klicken Sie auf die Schaltfläche Protokollvorschau, um die Abfrage zu testen. Es werden Logs mit übereinstimmenden Bedingungen angezeigt.
Klicken Sie auf Next (Weiter).
Legen Sie die Zeitspanne zwischen Benachrichtigungen fest und klicken Sie auf Weiter.
Legen Sie fest, wer über die Benachrichtigung benachrichtigt werden soll, und klicken Sie auf Speichern, um die Benachrichtigungsrichtlinie zu erstellen.
Alternativ können Sie Ihre Benachrichtigungen konfigurieren und bearbeiten. Rufen Sie dazu in der Google Cloud Console Monitoring > Benachrichtigungen auf.
gcloud
Nicht unterstützt.
REST
Mit APIs Explorer können Sie Warnungen in Cloud Logging festlegen.
Beispielabfragen zum Festlegen von Benachrichtigungen auf Job- oder Dimensionsebene
Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allgemeinen Datenqualitätsfehlern für einen Datenqualitätsscan:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND NOT jsonPayload.dataQuality.passed=true
Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu Datenqualitätsfehlern für eine Dimension (z. B. Eindeutigkeit) eines bestimmten Datenqualitätsscans:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND jsonPayload.dataQuality.dimensionPassed.UNIQUENESS=false
Eine Beispielabfrage zum Einrichten von Benachrichtigungen zu Datenqualitätsfehlern für eine Tabelle.
Legen Sie Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle fest, die nicht in einem Dataplex-Lake organisiert ist:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="//bigquery.googleapis.com/projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Legen Sie Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle fest, die in einem Dataplex-Lake organisiert ist:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Beispielabfragen, die Benachrichtigungen pro Regel festgelegt werden können
Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln mit dem angegebenen benutzerdefinierten Regelnamen für einen Datenqualitätsscan:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.ruleName="custom-name" AND jsonPayload.result="FAILED"
Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln eines bestimmten Bewertungstyps für einen Datenqualitätsscan:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.evalutionType="PER_ROW" AND jsonPayload.result="FAILED"
Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln für eine Spalte in der Tabelle, die für einen Datenqualitätsscan verwendet wird:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.column="CInteger" AND jsonPayload.result="FAILED"
Probleme mit der Datenqualität beheben
Für jeden Job mit fehlgeschlagenen Regeln auf Zeilenebene stellt Dataplex eine Abfrage zum Abrufen der fehlgeschlagenen Einträge bereit. Führen Sie diese Abfrage aus, um die Einträge aufzurufen, die nicht Ihrer Regel entsprechen.
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Wählen Sie den Scan aus, für den Sie eine Fehlerbehebung durchführen möchten, indem Sie auf den Anzeigenamen klicken.
Suchen Sie auf dem Tab Jobverlauf die fehlgeschlagene Scanausführung und klicken Sie auf den Fehlerlink.
Suchen Sie im daraufhin geöffneten Jobfenster im Abschnitt Rules (Regeln) nach der Spalte Query to get failed Records (Fehlgeschlagene Einträge abrufen).
Kopieren Sie die Abfrage, um sie in BigQuery auszuführen, und sehen Sie sich die Datensätze an, die zum Fehlschlagen des Jobs geführt haben.
gcloud
Nicht unterstützt.
REST
Rufen Sie mit APIs Explorer die Abfrage zum Abrufen fehlgeschlagener Datensätze für fehlgeschlagene Jobs auf.
Nächste Schritte
- Datenprofilerstellung
- Datenprofilerstellung verwenden
- Mit Terraform Datenqualitätsregeln als Code verwalten