Auf dieser Seite wird beschrieben, wie Sie einen Dataplex-Datenqualitätsscan erstellen.
Weitere Informationen zu Datenqualitätsscans finden Sie unter Automatische Datenqualität.
Hinweise
Aktivieren Sie die Dataplex API.
Optional: Wenn Dataplex Empfehlungen für Datenqualitätsregeln, die auf den Ergebnissen eines Datenprofilerstellungsscans basieren, Datenprofilerstellungsscan erstellen und ausführen
Berechtigungen
Um einen Datenqualitätsscan für eine BigQuery-Tabelle auszuführen, müssen Sie die Berechtigung, die BigQuery-Tabelle zu lesen, einen BigQuery-Job in dem Projekt erstellen, das zum Scannen der Tabelle verwendet wird.
Wenn sich die BigQuery-Tabelle und der Datenqualitätsscan in Projekten arbeiten, müssen Sie dem Dataplex-Dienst Konto des Projekts mit der Leseberechtigung für Datenqualitätsscans für die entsprechende BigQuery-Tabelle.
Wenn sich die Datenqualitätsregeln auf zusätzliche Tabellen beziehen, Dienstkonto muss Leseberechtigungen für dieselben Tabellen haben.
Um die Berechtigungen zu erhalten, die Sie zum Exportieren der Scanergebnisse in einen BigQuery-Tabelle enthält, bitten Sie Ihren Administrator, Ihnen die Berechtigung Dataplex-Dienstkonto für BigQuery IAM-Rolle „Datenbearbeiter“ (
roles/bigquery.dataEditor
) für das Ergebnis-Dataset und -Tabelle. Hierdurch 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 organisiert sind gewähren Sie dem Dataplex-Dienstkonto die 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 Cloud Storage hinzufügen, gewähren Sie dem Dataplex-Dienstkonto die Cloud Storage-Rolle
roles/storage.objectViewer
für den Bucket. Alternativ können Sie dem Dataplex-Dienstkonto die folgenden Berechtigungen:storage.buckets.get
storage.objects.get
Wenn Sie die Ergebnisse des Datenqualitätsscans im BigQuery- und Data Catalog-Seiten in der Google Cloud Console für die Quelltabellen benötigen, benötigen Sie entweder der BigQuery-Dateneditor (
roles/bigquery.dataEditor
) IAM-Rolle oder die Berechtigungbigquery.tables.update
für die Tabelle.Wenn Sie auf Spalten zugreifen müssen, die durch BigQuery-Zugriffsrichtlinien auf Spaltenebene geschützt sind, weisen Sie diesen Spalten die Dataplex-Dienstkontoberechtigungen 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 des einzelnen Nutzers werden nicht für Richtlinien auf Zeilenebene ausgewertet.
Datenscanberechtigungen und -rollen
Zur Verwendung der automatischen Datenqualität benötigen Sie entweder 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 | Erteilt folgende Berechtigungen: |
---|---|
dataplex.datascans.create |
DataScan erstellen |
dataplex.datascans.delete |
DataScan löschen |
dataplex.datascans.get |
Operative Metadaten wie ID oder Zeitplan, aber keine Ergebnisse und Regeln ansehen |
dataplex.datascans.getData |
Details zu DataScan ansehen, einschließlich Regeln und Ergebnisse |
dataplex.datascans.list |
Liste DataScan s |
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 |
Weisen Sie Nutzern mindestens eine der folgenden Rollen zu:
roles/dataplex.dataScanAdmin
: Vollständiger Zugriff aufDataScan
Ressourcen.roles/dataplex.dataScanEditor
: Schreibzugriff aufDataScan
-Ressourcen.roles/dataplex.dataScanViewer
: Lesezugriff aufDataScan
Ressourcen außer Regeln und Ergebnisse.roles/dataplex.dataScanDataViewer
: Lesezugriff aufDataScan
Ressourcen, einschließlich Regeln und Ergebnissen.
Regeln für die Datenqualität definieren
Sie können Datenqualitätsregeln definieren, indem Sie integrierten Regeln oder benutzerdefinierte SQL-Prüfungen. Wenn Sie die Google Cloud CLI verwenden, können Sie diese Regeln in einer JSON- oder YAML-Datei zu speichern.
Die Beispiele in den folgenden Abschnitten zeigen, wie Sie eine Vielzahl von Datenqualität definieren können Regeln. Mit den Regeln wird eine Beispieltabelle validiert, die Daten zu Kundentransaktionen enthält. 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 im Format 8 Buchstaben gefolgt von 16 Ziffern. |
transaction_id | String | Die Transaktions-ID muss in der Tabelle eindeutig sein. |
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. |
Regeln für die Datenqualität mithilfe integrierter Regeltypen definieren
Die folgenden Beispielregeln basieren auf integrierten Regeltypen. Sie können Regeln basierend auf vordefinierten 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 auf Regex (regulärer Ausdruck) | Gültigkeit | Regulärer Ausdruck: ^[0-9]{8}[a-zA-Z]{16}$ Grenzwert: 100%
|
currency_id |
Prüfung des Wertesatzes | Gültigkeit | Satz aus: USD,JPY,INR,GBP,CAN Grenzwert: 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 die die Anzahl der erfolgreichen Zeilen generiert, wenn Dataplex wertet die Abfrage
SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE
aus. Dataplex prüft die Anzahl der erfolgreichen Zeilen anhand der Grenzwert.Wenn Sie eine Regel erstellen, die zeilenübergreifend ausgewertet wird oder eine Tabelle verwendet erstellen Sie einen Ausdruck, der Erfolg oder Misserfolg zurückgibt, Dataplex wertet die Abfrage aus
SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE
Wenn Sie eine Regel erstellen, die den ungültigen Status eines Datasets auswertet, geben Sie eine Anweisung, die ungültige Zeilen zurückgibt. Wenn Zeilen zurückgegeben werden, gilt die Regel schlägt fehl. Lassen Sie das abschließende Semikolon aus der SQL-Anweisung weg.
Sie können auf eine Datenquellentabelle und alle ihre Vorbedingungsfilter verweisen, indem Sie Verwendung des Datenreferenzparameters
${data()}
in einer Regel anstelle von und die Quelltabelle und ihre Filter explizit erwähnen. Beispiele für Filter für Voraussetzungen sind Zeilenfilter, Prozentsätze für Stichproben 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 folgenden ist:
unterstützten Währungen enthalten.
|
currency_id in (select id from my_project_id.dim_dataset.dim_currency)
|
Tabellenbedingung | Aggregierter SQL-Ausdruck, der prüft, ob der durchschnittliche discount_pct zwischen 30% und 50 % liegt.
|
30<avg(discount) AND avg(discount) <50
|
Zeilenbedingung | Prüft, ob ein Datum nicht in der Zukunft liegt. | TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
|
Tabellenbedingung |
Eine benutzerdefinierte BigQuery-Funktion (User-Defined Function, UDF)
um zu prüfen, ob der durchschnittliche Transaktionsbetrag unter einem vordefinierten
-Wert pro Land. Erstellen Sie die UDF (JavaScript) mit folgendem Befehl:
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 zum Prüfen 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' )) |
Tabellenbedingung | BigQuery ML
Vorhersageklausel zum Identifizieren von Anomalien in discount_pct . Überprüft
ob ein Rabatt auf Basis von customer angewendet werden soll,
currency und transaction . Die Regel prüft, ob der
entspricht mindestens 99% der Fälle mit dem tatsächlichen Wert. Annahme: Das
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 Vorhersage in BigQuery ML
zum Identifizieren von Anomalien in discount_pct . Die Funktion
Prüft, ob ein Rabatt basierend auf customer angewendet werden soll,
currency und transaction .
Die Regel gibt alle Vorkommen an, bei denen die Vorhersage nicht übereinstimmte.
Annahme: Das ML-Modell wird vor Verwendung der Regel erstellt. ML erstellen
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 der discount_pct für heute größer als 30% ist
indem Sie prüfen, ob Zeilen vorhanden sind, deren Rabattprozentsatz kleiner als oder
gleich 30 ist. |
SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date() |
SQL-Bestätigung (mit Datenreferenzparameter) | Prüft, ob der Der Datumsfilter „ Der Datenverweisparameter |
SELECT * FROM ${data()} WHERE discount_pct > 30 |
Datenqualitätsregeln mit der gcloud CLI definieren
In der folgenden Beispiel-YAML-Datei werden einige derselben Regeln verwendet wie in den Beispielregeln mit vordefinierten Typen und den 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
- rangeExpectation:
minValue : '0'
maxValue : '100'
column : discount_pct
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
- sqlAssertion:
sqlStatement : SELECT * FROM `my_project_id.dim_dataset.dim_currency` WHERE discount_pct > 100
dimension: VALIDITY
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. Weitere Informationen finden Sie in der 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 Standard- BigQuery-Tabellen.
Wählen Sie für Tabellen in multiregionalen Datasets eine Region aus, in der der Datenscan erstellt werden soll.
Wenn Sie die im Data Lake organisierten Tabellen durchsuchen möchten, klicken Sie auf In Dataplex-Lakes suchen.
Wählen Sie im Feld Umfang die Option Inkrementell oder Gesamte Daten aus.
- Wenn Sie Inkrementell auswählen, gehen Sie im Feld Zeitstempelspalte so vor:
wählen Sie eine Spalte vom Typ
DATE
oderTIMESTAMP
aus Ihrem BigQuery-Tabelle, die monoton zunimmt und zur Identifizierung neuer Datensätze. Das kann eine Spalte sein, die die Tabelle partitioniert.
- Wenn Sie Inkrementell auswählen, gehen Sie im Feld Zeitstempelspalte so vor:
wählen Sie 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 kombinieren.Klicken Sie auf Filter, um die Daten zu filtern. Wählen Sie den Filter Zeilen. 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 zur Stichprobenerhebung in der Liste Stichprobengröße eine Stichprobenprozentsatz. Wähle einen Prozentwert zwischen 0,0% und 100,0% mit bis zu 3 Dezimalstellen. Wählen Sie für größere Datensätze einen niedrigeren Prozentsatz für die Stichprobenerhebung aus. Beispiel: Für eine ~1 PB in der Tabelle: Wenn Sie einen Wert zwischen 0,1% und 1,0 % eingeben, Dataplex erstellt Stichproben aus 1–10 TB Daten. Für Datenscans nicht begrenzt, wendet Dataplex Stichproben auf neuestes Inkrement.
Um die Ergebnisse des Datenqualitätsscans zu veröffentlichen, BigQuery- und Data Catalog-Seiten in der Google Cloud Console für die Quelltabelle auf das Symbol Veröffentlichen Sie die Ergebnisse in BigQuery und Benutzeroberfläche von Dataplex Catalog. Die neuesten Scanergebnisse finden Sie auf dem Tab Datenqualität in der BigQuery- und Data Catalog-Seiten für die Quelle . So ermöglichen Sie Nutzern den Zugriff auf die veröffentlichten Scanergebnisse: Siehe Veröffentlichte Ergebnisse teilen. In den folgenden Fällen ist die Veröffentlichungsoption möglicherweise nicht verfügbar:
- Sie haben nicht die erforderlichen Berechtigungen für die Tabelle.
- Bei einem weiteren Datenqualitätsscan werden Ergebnisse veröffentlicht.
Weitere Informationen zu den Berechtigungen, die zum Aufrufen der veröffentlichten Ergebnissen finden Sie unter Berechtigungen.
Klicken Sie auf Weiter.
Wählen Sie im Fenster Zeitplan eine der folgenden Optionen aus:
Wiederholen: Der Scanjob zur Datenqualität wird nach einem Zeitplan ausgeführt: täglich, wöchentlich, monatlich oder benutzerdefiniert. Geben Sie an, wie oft der Scan ausgeführt wird zu welchem Zeitpunkt. Wenn Sie „Benutzerdefiniert“ auswählen, verwenden Sie cron. Format zum Angeben des Zeitplans.
On-Demand: Sie können den Job zum Scannen der Datenqualität nach Bedarf ausführen.
Klicken Sie auf Weiter.
Definieren Sie im Fenster Datenqualitätsregeln die Regeln, für diesen Datenqualitätsscan konfigurieren. Klicken Sie auf Regeln hinzufügen und wählen Sie eine der folgenden Optionen.
Profilbasierte Empfehlungen: Erstellen Sie Regeln anhand der Empfehlungen basierend auf einem vorhandenen Scan zur Datenprofilerstellung.
Spalten auswählen: Wählen Sie die Spalten aus, für die Sie empfohlene Regeln erhalten möchten.
Projekt scannen: Empfehlungen basierend auf einem vorhandenen Datenprofiling-Scan. Standardmäßig wählt Dataplex die Profilerstellung aus Scans aus demselben Projekt, in dem Sie die Daten erstellen Qualitätsscan. Wenn Sie den Scan in einem anderen Projekt erstellt haben, muss das Projekt angeben, aus dem Profilscans abgerufen werden sollen.
Profilergebnisse auswählen: Basierend auf den Spalten und dem Projekt, das Sie auswählen, werden Ergebnisse mit mehreren Profilen angezeigt.
Wählen Sie ein oder mehrere Profilergebnisse aus und klicken Sie dann auf OK. Dieses wird eine Liste mit Regeln ausgefü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 Auswählen: Nach der Auswahl werden die Regeln der aktuellen Regel hinzugefügt Liste. Anschließend können Sie die Regeln bearbeiten.
Integrierte Regeltypen: Erstellen Sie Regeln aus vordefinierten Regeln. Liste der vordefinierten Regeln
Spalten auswählen: Wählen Sie die Spalten aus, für die Sie Regeln festlegen möchten.
Regeltypen auswählen: Je nach den von Ihnen ausgewählten Spalten stehen mehrere Regeltypen zur Auswahl.
Wählen Sie einen oder mehrere Regeltypen aus und klicken Sie dann auf OK. Dadurch wird eine Liste mit Regeln zur Auswahl ausgefüllt.
Wählen Sie die Regeln aus, die Sie bearbeiten möchten, indem Sie die Kästchen anklicken und dann auf Auswählen klicken. Nach der Auswahl werden die Regeln Ihrer aktuellen Regelliste hinzugefügt. Gehen Sie dann so vor: können Sie die Regeln bearbeiten.
SQL-Zeilenprüfregel: Erstellen Sie eine benutzerdefinierte SQL-Regel, die auf jede Zeile angewendet werden soll (benutzerdefinierte SQL- Zeilenprüfregel).
Wählen Sie unter Dimension eine Dimension aus.
Wählen Sie unter Grenzwert für Bestehen einen 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 als boolescher Wert
true
(bestanden) oderfalse
(fehlgeschlagen) ausgewertet wird. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren dieses Dokuments.Klicken Sie auf Hinzufügen.
SQL-Aggregatprüfungsregel: Benutzerdefinierte SQL-Abfrage erstellen Tabellenbedingungsregel.
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 als boolescher Wert
true
(bestanden) oderfalse
(fehlgeschlagen) ausgewertet wird. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren dieses Dokuments.Klicken Sie auf Hinzufügen.
SQL-Assertion-Regel: Benutzerdefinierte SQL-Assertion-Regel erstellen, die geprüft werden soll für einen ungültigen Zustand der Daten.
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. gibt Zeilen zurück, die mit dem ungültigen Status übereinstimmen. Wenn Zeilen zurückgegeben wird, schlägt diese Regel fehl. Lassen Sie das abschließende Semikolon aus der SQL-Anweisung weg. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren dieses Dokuments.
Klicken Sie auf Hinzufügen.
Dataplex erlaubt benutzerdefinierte Namen für Datenqualitätsregeln. für Monitoring und Benachrichtigungen. Für jede Datenqualitätsregel können Sie können Sie optional einen Namen und eine Beschreibung für die benutzerdefinierte Regel festlegen. Bearbeiten Sie dazu eine Regel und geben Sie die folgenden Details an:
- Regelname: Geben Sie einen Namen für die benutzerdefinierte Regel mit bis zu 63 Zeichen ein. Der Regelname kann Buchstaben (a–z, A–Z), Ziffern (0–9) und Bindestriche (-) und muss mit einem Buchstaben beginnen und mit einer Ziffer enden oder einen Brief.
- Beschreibung: Geben Sie eine Regelbeschreibung mit einem Höchstwert ein. Länge von 1.024 Zeichen.
Klicken Sie auf Weiter.
Optional: Scanergebnisse in einen BigQuery-Standard exportieren . Klicken Sie auf Browse (Durchsuchen), um ein vorhandenes BigQuery auszuwählen. Dataset zum Speichern der Ergebnisse des Datenqualitätsscans.
Wenn die angegebene Tabelle nicht vorhanden ist, erstellt Dataplex sie für von dir. Wenn Sie eine vorhandene Tabelle verwenden, prüfen Sie, ob sie kompatibel ist. mit dem Exporttabellenschema.
Klicken Sie auf Erstellen.
Nachdem der Scan erstellt wurde, können Sie ihn jederzeit ausführen, indem Sie auf Jetzt ausführen klicken.
gcloud
Verwenden Sie zum Erstellen eines Datenqualitätsscans die Methode
gcloud dataplex datascans create data-quality
-Befehl
Wenn die Quelldaten in einem Dataplex-Lake organisiert sind, fügen Sie den Parameter
--data-source-entity
-Flag:
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
:
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 Vorgang ausgeführt werden soll. um den Datenqualitätsscan zu erstellen.DATA_QUALITY_SPEC_FILE
: Der Pfad zum JSON- oder YAML-Datei mit den Spezifikationen für den Datenqualitätsscan. Die Datei kann eine lokale Datei oder ein Cloud Storage-Pfad mit dem Präfixgs://
sein. Verwenden Sie diese Datei, um die Datenqualitätsregeln für den Scan festzulegen. Sie können in dieser Datei auch zusätzliche Details angeben, z. B. Filter, Stichprobenprozentsatz und Aktionen nach dem Scan wie Exportieren nach BigQuery oder Senden von E-Mail-Benachrichtigungen. Weitere Informationen finden Sie in der Dokumentation zur JSON-Darstellung.DATA_SOURCE_ENTITY
: Das 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
Verwenden Sie APIs Explorer, um einen Datenqualitätsscan zu erstellen.
Wenn Sie Regeln für den Datenqualitätsscan erstellen möchten,
Empfehlungen, die auf den Ergebnissen eines Scans zur Datenprofilerstellung basieren, erhalten Sie
die Empfehlungen durch Aufrufen der
dataScans.jobs.generateDataQualityRules
-Methode
beim Scan der Datenprofilerstellung.
Tabellenschema exportieren
So exportieren Sie die Ergebnisse des Datenqualitätsscans in eine vorhandene BigQuery-Datei: müssen Sie sicherstellen, dass sie mit dem folgenden Tabellenschema kompatibel ist:
Spaltenname | Datentyp der Spalte | Name des untergeordneten Felds (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 | Groß-/Kleinschreibung für Entitäten://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 für Tabellen: //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 |
nullable | (Nur gültig, wenn „source“ „entity“ 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 |
nullable | ondemand /schedule |
incremental |
boolean |
Nullwerte zulässig | true /false |
||
sampling_percent |
float |
Nullwerte zulässig | (0–100)20.0 (steht für 20%) |
||
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 |
nullable | {"ACCURACY":{"passed":true,"score":100},"CONSISTENCY":{"passed":false,"score":60}}
|
||
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));" |
Beim Konfigurieren BigQueryExport für einen Datenqualitätsscanjob diese Richtlinien befolgen:
- 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, wird sie von Dataplex für Sie erstellt.
- Standardmäßig wird die Tabelle täglich nach der Spalte
job_start_time
partitioniert. - Wenn die Tabelle in anderen Konfigurationen partitioniert werden soll nicht möchten, erstellen Sie die Tabelle mit den erforderlichen und Konfigurationen erstellen und die vorab erstellte Tabelle Ergebnistabelle.
- Die Ergebnistabelle muss sich am selben Speicherort wie die Quelltabelle befinden.
- Wenn VPC-SC für das Projekt konfiguriert ist, muss sich die Ergebnistabelle im denselben VPC-SC-Perimeter wie die Quelltabelle.
- Wenn die Tabelle während der Ausführungsphase des Scans geändert wird, ist der aktuelle Wert ausgeführte Jobexporte in die vorherige Ergebnistabelle und die Tabellenänderung wird ab dem nächsten Scanjob übernommen.
- Ändern Sie das Tabellenschema nicht. Wenn Sie benutzerdefinierte Spalten benötigen, erstellen Sie eine Ansicht. auf dem Tisch.
- Legen Sie ein Ablaufdatum für die Partition fest, um die Kosten zu senken. Weitere Informationen finden Sie unter Partitionsablauf festlegen.
Datenqualitätsscan ausführen
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Datenqualitätsscan, um ihn auszuführen.
Klicken Sie auf Jetzt ausführen.
gcloud
Um einen Datenqualitätsscan auszuführen, verwenden Sie den
gcloud dataplex datascans run
-Befehl:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION \
Ersetzen Sie die folgenden Variablen:
LOCATION
: Die Google Cloud-Region, in der der Scan der Datenqualität erstellt wurde.DATASCAN
: Der Name des Datenqualitätsscans.
REST
Verwenden Sie APIs Explorer, um den Datenqualitätsscan durchzuführen.
Ergebnisse des Datenqualitätsscans ansehen
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Namen eines Scans, um die detaillierten Ergebnisse aufzurufen.
Im Abschnitt Übersicht werden Informationen zu den letzten sieben einschließlich der Ausführungszeit des Scans, der Anzahl der Datensätze ob alle Datenqualitätsprüfungen bestanden wurden die Anzahl der fehlgeschlagenen Datenqualitätsprüfungen Dimensionen fehlgeschlagen.
Im Abschnitt Konfiguration des Datenqualitätsscans werden Details zur zu überprüfen.
Klicken Sie auf den Tab Jobverlauf, um Datenqualitätsbewertungen zu sehen, die den Prozentsatz der bestandenen Regeln angeben. Klicken Sie dann auf eine Job-ID.
gcloud
Um die Ergebnisse eines Datenqualitätsscanjobs anzuzeigen, verwenden Sie den
gcloud dataplex datascans jobs describe
-Befehl:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Ersetzen Sie die folgenden Variablen:
JOB
: Die Job-ID des Jobs für den Datenqualitätsscan.LOCATION
: Die Google Cloud-Region, in der die Daten gespeichert sind. Qualitätsscan wurde erstellt.DATASCAN
: Der Name des Datenqualitätsscans, zu dem der Job gehört.--view=FULL
: Geben SieFULL
an, um das Ergebnis des Scanjobs anzusehen.
REST
Verwenden Sie den APIs Explorer, um die Ergebnisse eines Datenqualitätsscans anzusehen.
Historische Scanergebnisse ansehen
Dataplex speichert den Verlauf der Datenqualitätsscans der letzten 300 Jobs oder für das vergangene Jahr, je nachdem, was zuerst eintritt.
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Namen eines Scans.
Klicken Sie auf den Tab Jobverlauf.
Der Tab Jobverlauf enthält Informationen zu vergangenen Jobs. Darin sind alle die Jobs, die Anzahl der in jedem Job gescannten Datensätze, den Jobstatus, die Uhrzeit der Job ausgeführt wurde, ob die einzelnen Regeln bestanden wurden oder nicht.
Klicken Sie auf einen Job in der Spalte Job-ID, um detaillierte Informationen zu einem Job aufzurufen.
gcloud
Um alle Jobs eines Datenqualitätsscans anzuzeigen, verwenden Sie die
gcloud dataplex datascans jobs list
-Befehl:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN \
Ersetzen Sie die folgenden Variablen:
LOCATION
: Die Google Cloud-Region, in der die Daten gespeichert sind. Qualitätsscan wurde erstellt.DATASCAN
: Der Name des Scans zur Datenqualität, für den alle Jobs angezeigt werden sollen.
REST
Verwenden Sie APIs Explorer, um alle Scanjobs anzusehen.
Veröffentlichte Ergebnisse teilen
Wenn Sie beim Erstellen eines Datenqualitätsscans die Scanergebnisse veröffentlichen auf den Seiten „BigQuery“ und „Data Catalog“ in der Google Cloud Console aktiviert haben, sind die neuesten Scanergebnisse im Datenqualität.
Sie können den Nutzern in Ihrer Organisation erlauben, auf den veröffentlichten Scan zuzugreifen Ergebnisse. So gewähren Sie Zugriff auf die Scanergebnisse:
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie teilen möchten.
Wechseln Sie zum Tab Berechtigungen.
Klicken Sie auf Zugriff erlauben.
Fügen Sie im Feld Neue Hauptkonten das Hauptkonto hinzu, dem Sie das Konto zuweisen möchten. Zugriff zu gewähren.
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: Schritte:
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie teilen möchten.
Wechseln Sie zum Tab Berechtigungen.
Wählen Sie das Hauptkonto aus, für das Sie den Dataplex DataScan DataViewer entfernen möchten Rolle.
Klicken Sie auf Zugriff entfernen.
Klicken Sie auf Bestätigen.
Benachrichtigungen in Cloud Logging festlegen
So legen Sie mithilfe der Logs in Cloud Logging Benachrichtigungen für Fehler bei der Datenqualität fest:
Console
Rufen Sie in der Google Cloud Console Cloud Logging auf. Log-Explorer:
Geben Sie im Fenster Abfrage Ihre Abfrage ein. Siehe 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 Logvorschau, um die Abfrage zu testen. Hier werden Logs angezeigt mit übereinstimmenden Bedingungen.
Klicken Sie auf Weiter.
Legen Sie die Zeit zwischen den Benachrichtigungen fest und klicken Sie auf Weiter.
Legen Sie fest, wer über die Benachrichtigung benachrichtigt werden soll, und klicken Sie auf Speichern. der Benachrichtigungsrichtlinie.
Alternativ können Sie Ihre Benachrichtigungen konfigurieren und bearbeiten, indem Sie in der Wechseln Sie in der Google Cloud Console zu Monitoring > Benachrichtigungen.
gcloud
Nicht unterstützt.
REST
Verwenden Sie APIs Explorer, um Benachrichtigungen in Cloud Logging festzulegen.
Beispielabfragen zum Festlegen von Benachrichtigungen auf Job- oder Dimensionsebene
Beispielabfrage zum Festlegen von Benachrichtigungen bei allgemeinen Fehlern bei der Datenqualität 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
Beispielabfrage zum Festlegen von Benachrichtigungen bei 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
Beispielabfrage zum Festlegen von Benachrichtigungen bei Datenqualitätsfehlern für eine Tabelle.
So legen Sie Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle fest, die sich nicht in einem Dataplex-Lake befindet:
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
Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle festlegen der 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 für Benachrichtigungen pro Regel
Beispielabfrage zum Festlegen von Benachrichtigungen für alle fehlgeschlagenen 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 Bewertungstyp für einen Datenqualitätsscan:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.evalutionType="PER_ROW" AND jsonPayload.result="FAILED"
Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln für eine Spalte in der für einen Datenqualitätsscan verwendeten Tabelle:
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 bereit, um die fehlgeschlagenen Datensätze abzurufen. Führen Sie diese Abfrage aus, um die Einträge zu sehen, die nicht mit Ihrer Regel übereinstimmen.
Console
Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.
Klicken Sie auf den Namen des Scans, dessen Einträge Sie beheben möchten.
Klicken Sie auf den Tab Jobverlauf.
Klicken Sie auf die Job-ID des Jobs, der Probleme mit der Datenqualität identifiziert hat.
Suchen Sie im Fenster mit den Jobergebnissen im Abschnitt Regeln nach der Spalte Abfrage zum Abrufen fehlgeschlagener Einträge. Klicken Sie auf Abfrage in Zwischenablage kopieren für den fehlgeschlagene Regel.
Abfrage in BigQuery ausführen um die Einträge zu sehen, die zum Fehlschlagen des Jobs geführt haben.
gcloud
Nicht unterstützt.
REST
Im APIs Explorer finden Sie die Abfrage, mit der Sie Fehlerdatensätze für fehlgeschlagene Jobs abrufen können.
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 die drei vertikalen Punkte > Bearbeiten:
Die Werte bearbeiten
Klicken Sie auf Speichern.
gcloud
Um die Beschreibung eines Datenqualitätsscans zu aktualisieren, verwenden Sie den
gcloud dataplex datascans update data-quality
-Befehl:
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 die Daten gespeichert sind. Qualitätsscan wurde erstellt.DESCRIPTION
: Die neue Beschreibung für den Datenqualitätsscan.
REST
Verwenden Sie APIs Explorer, um Ihren 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 zum Löschen eines Datenqualitätsscans den
gcloud dataplex datascans delete
-Befehl:
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ätscheck erstellt wurde.
REST
Verwenden Sie APIs Explorer, um den Datenqualitätsscan zu löschen.
Nächste Schritte
- Weitere Informationen zur Datenprofilerstellung
- Datenprofilerstellung verwenden
- Folgen Sie einem Tutorial, um Datenqualitätsregeln als Code mit Terraform verwalten