Mit der automatischen Datenqualität von Dataplex können Sie die Qualität der Daten in Ihren BigQuery-Tabellen definieren und messen. Sie können das Scannen von Daten automatisieren, Daten anhand definierter Regeln validieren und Benachrichtigungen protokollieren, wenn Ihre Daten nicht den Qualitätsanforderungen entsprechen. Sie können Datenqualitätsregeln und Bereitstellungen als Code verwalten und so die Integrität von Pipelines für die Datenproduktion verbessern.
Sie können mit den Empfehlungen für Dataplex-Datenprofile beginnen oder benutzerdefinierte Regeln in der Google Cloud Console erstellen. Dataplex bietet Monitoring, Fehlerbehebung und Cloud Logging-Benachrichtigungen, die in die automatische Datenqualität von Dataplex eingebunden sind.
Konzeptmodell
Ein Datenscan ist ein Dataplex-Job, bei dem Daten aus BigQuery und Cloud Storage abgetastet und verschiedene Arten von Metadaten abgeleitet werden. Wenn Sie die Qualität einer Tabelle mithilfe der automatischen Datenqualität messen möchten, erstellen Sie ein DataScan
-Objekt vom Typ data quality
. Der Scan wird nur auf einer BigQuery-Tabelle ausgeführt. Für den Scan werden Ressourcen in einem Google-Tenant-Projekt verwendet. Sie müssen also keine eigene Infrastruktur einrichten.
So erstellen und verwenden Sie einen Datenqualitätsscan:
- Regeln für die Datenqualität definieren
- Regelausführung konfigurieren
- Ergebnisse des Datenqualitätsscans analysieren
- Monitoring und Benachrichtigungen einrichten
- Fehler bei der Datenqualität beheben
Regeldefinition
Mit den Regeln für die Datenqualität, die mit einem Datenqualitätsscan verknüpft sind, werden die Erwartungen an die Daten definiert. Sie haben folgende Möglichkeiten, Datenqualitätsregeln zu erstellen:
- Empfehlungen aus der Dataplex-Datenprofilerstellung verwenden
- Vordefinierte Regeln verwenden
- Benutzerdefinierte SQL-Regeln erstellen
Vordefinierte Regeln
Dataplex unterstützt zwei Kategorien von vordefinierten Regeln: Zeilenebene oder Gesamtdaten.
- Auf Zeilenebene
Bei Kategorieregeln auf Zeilenebene wird die Erwartung auf jede Datenzeile angewendet. Für jede Zeile wird unabhängig geprüft, ob die Bedingung erfüllt ist. Beispiel:
column_A_value < 1
.Bei Prüfungen auf Zeilenebene müssen Sie einen Grenzwert für die Annahme angeben. Wenn der Prozentsatz der Zeilen, die die Regel bestehen, unter dem Grenzwert liegt, wird die Regel nicht erfüllt.
- Aggregat
Bei zusammengefassten Regeln wird die Erwartung auf einen einzelnen Wert angewendet, der über die gesamten Daten aggregiert wird. Beispiel:
Avg(someCol) >= 10
Damit die Prüfung bestanden wird, muss sie den booleschen Werttrue
ergeben. Aggregierte Regeln liefern keine unabhängige Anzahl von positiven oder negativen Ergebnissen für jede Zeile.
Für beide Regelkategorien können Sie die folgenden Parameter festlegen:
- Die Spalte, auf die sich die Regel bezieht.
- Eine Dimension aus einer Reihe vordefinierter Dimensionen.
In der folgenden Tabelle sind die unterstützten Regeln auf Zeilenebene und Aggregierungsregeln aufgeführt:
Regeltyp (Name in der Google Cloud Console) |
Regel auf Zeilen- oder Aggregierungsebene | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter |
---|---|---|---|---|
RangeExpectation (Bereichsprüfung) |
Auf Zeilenebene | Prüfen Sie, ob der Wert zwischen „min“ und „max“ liegt. | Alle Spalten vom Typ „Nummer“, „Datum“ und „Zeitstempel“. | Erforderlich:
|
NonNullExpectation (Null-Prüfung) |
Auf Zeilenebene | Prüfen Sie, ob die Spaltenwerte nicht NULL sind. | Alle unterstützten Spaltentypen. | Erforderlich:
|
SetExpectation (Häkchen setzen) |
Auf Zeilenebene | Prüft, ob die Werte in einer Spalte zu den angegebenen Werten in einem Satz gehören. | Alle unterstützten Spaltentypen, mit Ausnahme von Record und Struct . |
Erforderlich:
|
RegexExpectation (Regulärer Ausdruck prüfen) |
Auf Zeilenebene | Die Werte werden mit einem bestimmten regulären Ausdruck verglichen. | String | Erforderlich:
|
Uniqueness (Eindeutigkeitsprüfung) |
Aggregat | Prüfen Sie, ob alle Werte in einer Spalte eindeutig sind. | Alle unterstützten Spaltentypen, mit Ausnahme von Record und Struct . |
Erforderlich:
|
StatisticRangeExpectation (Statistische Prüfung) |
Aggregat | Prüfen, ob der angegebene statistische Wert den Erwartungen für den Bereich entspricht. | Alle unterstützten numerischen Spaltentypen. | Erforderlich:
|
Unterstützte Typen benutzerdefinierter SQL-Regeln
Mit SQL-Regeln können Sie die Validierung mit benutzerdefinierter Logik erweitern. Es gibt die folgenden Arten von Regeln:
Regeltyp | Regel auf Zeilen- oder Aggregierungsebene | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter | Beispiel |
---|---|---|---|---|---|
Zeilenbedingung | Auf Zeilenebene | Geben Sie eine Erwartung für jede Zeile an, indem Sie einen SQL-Ausdruck in einer Der Ausdruck kann einen Verweis auf eine andere Tabelle enthalten, z. B. um Überprüfungen der referenziellen Integrität zu erstellen. |
Alle Spalten | Erforderlich:
|
grossWeight <= netWeight |
Tabellenbedingung (SQL-Aggregatsausdruck) |
Aggregat | Diese Regeln werden einmal pro Tabelle ausgeführt. Geben Sie einen SQL-Ausdruck an, der als boolescher Wert Der SQL-Ausdruck kann mithilfe von Ausdruck-Unterabfragen einen Verweis auf eine andere Tabelle enthalten. |
Alle Spalten | Erforderlich:
|
Einfaches Beispiel für eine Aggregation: Mit einer Ausdrucks-Subquery Werte in einer anderen Tabelle vergleichen: |
SQL-Assertion | Aggregat | Mit einer Bestätigungsregel werden mithilfe einer Datenqualitätsabfrage Zeilen gefunden, die eine oder mehrere in der Abfrage angegebene Bedingungen nicht erfüllen. Geben Sie eine SQL-Anweisung an, die ausgewertet wird, um Zeilen zurückzugeben, die dem ungültigen Status entsprechen. Wenn die Abfrage Zeilen zurückgibt, schlägt die Regel fehl. Lassen Sie das abschließende Semikolon aus der SQL-Anweisung weg. Die SQL-Anweisung kann mithilfe von Ausdruck-Unterabfragen einen Verweis auf eine andere Tabelle enthalten. |
Alle Spalten | Erforderlich:
|
Einfaches Beispiel für eine Zusammenfassung, damit Mit einer Ausdrucks-Subquery Werte in einer anderen Tabelle vergleichen: |
Beispielregeln finden Sie unter Beispielregeln für die automatische Datenqualität.
Informationen zu unterstützten SQL-Funktionen finden Sie in der GoogleSQL-Referenz.
Dimensionen
Mithilfe von Dimensionen können Sie die Ergebnisse mehrerer Datenqualitätsregeln für die Überwachung und Benachrichtigung zusammenfassen. Sie müssen jede Datenqualitätsregel einer Dimension zuordnen. Dataplex unterstützt die folgenden Dimensionen:
- Aktualität
- Die Aktualität gibt an, wann die Daten zuletzt aktualisiert wurden. Anhand dieser Informationen können Sie feststellen, ob die Daten aktuell genug sind, um nützlich zu sein.
- Volumen
- Mit dem Volumen wird gemessen, ob alle erwarteten Daten vorhanden sind.
- Vollständigkeit
- Die Vollständigkeit gibt an, ob die Daten alle Informationen enthalten, die für den beabsichtigten Zweck erforderlich sind.
- Gültigkeit
- Mit der Gültigkeit wird geprüft, ob die Daten vordefinierten Standards für Format, zulässige Bereiche oder andere Kriterien entsprechen. Wenn ein gültiges Datum beispielsweise das Format
YYYY/mm/dd
haben muss, ist „08-12-2019“ ungültiges Datum. Ein weiteres Beispiel: Wenn ein gültiger Sonderangebotspreis für einen Artikel zwischen 10 und 20 € liegt, ist ein Sonderangebotspreis von 100 € ungültig. - Konsistenz
- Die Datenkonsistenz bezieht sich darauf, dass die Daten in mehreren Instanzen, z. B. Tabellen und Spalten, dieselben Werte haben. Dateninkonsistenzen treten beispielsweise auf, wenn sich der Umsatz eines Produkts unterscheidet, wenn er aus einer Verkaufs- oder einer Nutzungsdatenbank gelesen wird.
- Genauigkeit
- Die Genauigkeit gibt Aufschluss über die Richtigkeit der Daten. Gültige Daten sind nicht unbedingt korrekt. Eine gültige Haarfarbe kann beispielsweise „braun“ sein. Wenn eine Person jedoch keine braunen Haare hat, sind das falsche Daten.
- Eindeutigkeit
- Mit diesem Messwert wird ermittelt, ob die Daten eindeutig sind und keine Duplikate enthalten.
Tastatureingabe in Regeln
Alle Wertparameter werden als Stringwerte an die API übergeben. In Dataplex müssen Eingaben dem von BigQuery angegebenen Format entsprechen.
Parameter vom Typ „Binary“ können als Base64-codierter String übergeben werden.
Typ | Unterstützte Formate | Beispiele |
---|---|---|
Binär | Base64-codierter Wert | YXBwbGU= |
Zeitstempel | YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] ODER YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
2014-09-27 12:30:00.45-08 |
Datum | JJJJ-M[M]-D[D] | 2014-09-27 |
Zeit | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00.45 |
DateTime | YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] | 2014-09-27 12:30:00.45 |
Datenreferenzparameter
Wenn Sie eine benutzerdefinierte SQL-Regel erstellen, können Sie mithilfe des Datenreferenzparameters ${data()}
in der Regel auf eine Datenquellentabelle und alle ihre Vorbedingungenfilter verweisen, anstatt die Quelltabelle und ihre Filter explizit zu erwähnen.
Dataplex interpretiert den Parameter als Referenz auf die Quelltabelle und ihre Filter. Beispiele für Filter mit Vorbedingungen sind Zeilenfilter, Stichprobenprozente und inkrementelle Filter.
Angenommen, Sie haben eine Datenquellentabelle namens my_project_id.dim_dataset.dim_currency
. Sie möchten einen inkrementellen Datenqualitätsscan ausführen, der nur neue tägliche Daten überprüft. Auf die Tabelle wird ein Zeilenfilter angewendet, der nach den Einträgen vom heutigen Tag, transaction_timestamp >= current_date()
, filtert.
Eine benutzerdefinierte SQL-Regel zum Finden von Zeilen mit discount_pct
für heute sieht so aus:
discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())
Mit dem Datenreferenzparameter können Sie die Regel vereinfachen. Ersetzen Sie die Erwähnung der Tabelle und ihrer Filter für die Vorbedingung durch den Parameter ${data()}
:
discount_pct IN (SELECT discount_pct FROM ${data()})
In Dataplex wird der Parameter ${data()}
als Verweis auf die Datenquellentabelle mit den heutigen Einträgen, my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date()
, interpretiert.
In diesem Beispiel bezieht sich der Datenreferenzparameter nur auf die inkrementellen Daten.
Beim Parameter ${data()}
wird zwischen Groß- und Kleinschreibung unterschieden.
Wenn Sie in einer untergeordneten Abfrage einen Alias verwenden, um auf Spalten in der Quelltabelle zu verweisen, verwenden Sie entweder den Parameter „Datenbezug“, um auf die Quelltabelle zu verweisen, oder lassen Sie den Tabellenbezug weg. Verweisen Sie nicht über einen direkten Tabellenbezug in der WHERE
-Klausel auf die Spalten in der Quelltabelle.
Empfohlen:
Verwenden Sie den Datenreferenzparameter, um auf die Quelltabelle zu verweisen:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = ${data()}.timestamp )
Lassen Sie die Tabellenreferenz aus:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = timestamp )
Nicht empfohlen:
Verwenden Sie keinen direkten Tabellenbezug, um auf Spalten in der Quelltabelle zu verweisen:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp )
Regelausführung
Sie können Datenqualitätsscans in einem bestimmten Intervall planen oder nach Bedarf ausführen. Sie können die Datenqualitätsprüfungen über die API oder die Google Cloud Console verwalten.
Wenn Sie einen Datenqualitätsscan ausführen, wird in Dataplex ein Job erstellt. Im Rahmen der Spezifikation eines Datenqualitäts-Scans können Sie den Umfang eines Jobs auf eine der folgenden Optionen festlegen:
- Vollständige Tabelle
- Bei jedem Job wird die gesamte Tabelle validiert.
- Inkrementell
- Bei jedem Job werden inkrementelle Daten validiert. Um Intervalle zu bestimmen, geben Sie in der Tabelle eine
Date
-/Timestamp
-Spalte an, die als Markierung verwendet werden kann. In der Regel ist dies die Spalte, nach der die Tabelle partitioniert ist.
Daten filtern
In Dataplex können Sie mithilfe eines Zeilenfilters Daten filtern, die auf Datenqualität geprüft werden sollen. Mit einem Zeilenfilter können Sie sich auf Daten innerhalb eines bestimmten Zeitraums oder eines bestimmten Segments konzentrieren, z. B. einer bestimmten Region. Mithilfe von Filtern lassen sich Ausführungszeit und Kosten reduzieren, indem Sie beispielsweise Daten mit einem Zeitstempel vor einem bestimmten Datum herausfiltern.
Beispieldaten
In Dataplex können Sie einen Prozentsatz der Datensätze aus Ihren Daten angeben, die für einen Datenqualitätsscan als Stichprobe verwendet werden sollen. Wenn Sie Datenqualitätsscans für eine kleinere Datenstichprobe erstellen, können Sie die Ausführungszeit und die Kosten im Vergleich zur Abfrage des gesamten Datensatzes reduzieren.
Ergebnisse des Datenqualitätsscans
Die Ergebnisse Ihrer Datenqualitätsscans sind in Dataplex verfügbar. Sie können die Scanergebnisse auch mit den folgenden Methoden überprüfen und analysieren:
Ergebnisse nach BigQuery exportieren
Sie können die Scanergebnisse zur weiteren Analyse in eine BigQuery-Tabelle exportieren. Wenn Sie Berichte anpassen möchten, können Sie die BigQuery-Tabellendaten mit einem Looker-Dashboard verknüpfen. Sie können einen zusammengefassten Bericht erstellen, indem Sie dieselbe Ergebnistabelle für mehrere Scans verwenden.
Ergebnisse in der Google Cloud Console veröffentlichen
Sie können die Ergebnisse des Datenqualitätsscans auf den BigQuery- und Data Catalog-Seiten der Quelltabelle in der Google Cloud Console veröffentlichen. Die neuesten Scanergebnisse sind auf dem Tab Datenqualität für die Quelltabelle verfügbar.
Datenqualitätsfaktoren prüfen
Jedes Scanergebnis enthält Datenqualitätsbewertungen, die den Prozentsatz der erfüllten Regeln angeben. Die Bewertungen werden auf Jobebene, Spaltenebene (falls die Regel anhand einer Spalte ausgewertet wird) und Dimensionsebene erfasst. Mit den Datenqualitätsbewertungen können Sie die Datenqualität in Tabellen oder Spalten normalisieren, Trends verfolgen und Daten identifizieren, die nicht den Qualitätsanforderungen entsprechen.
Weitere Informationen finden Sie unter Ergebnisse des Datenqualitätsscans ansehen.
Monitoring und Benachrichtigungen
Sie können Datenqualitätsscans mit den folgenden Methoden überwachen und Benachrichtigungen dazu erhalten:
Benachrichtigungen in Cloud Logging einrichten
Sie können die Jobs zur Datenqualität mit den
data_scan
- unddata_quality_scan_rule_result
-Logs im Log-Explorer überwachen.Für jeden Job zur Datenqualität enthält das
data_scan
-Log mit dem Felddata_scan_type
, das aufDATA_QUALITY
festgelegt ist, die folgenden Informationen:- Datenquelle, die für den Datenscan verwendet wird.
- Details zur Jobausführung, z. B. Erstellungszeit, Startzeit, Endzeit und Jobstatus.
- Ergebnis des Jobs zur Datenqualität: Erfolgreich oder Fehlgeschlagen.
- Erfolg oder Misserfolg auf Dimensionsebene.
Jeder erfolgreiche Job enthält ein
data_quality_scan_rule_result
-Protokoll mit den folgenden detaillierten Informationen zu jeder Regel in diesem Job:- Konfigurationsinformationen wie Regelname, Regeltyp, Auswertungstyp und Dimension.
- Ergebnisinformationen wie „Erfolg“ oder „Fehlgeschlagen“, Gesamtzahl der Zeilen, Anzahl der Zeilen, die bestanden haben, Anzahl der Zeilen mit Nullwerten und Anzahl der ausgewerteten Zeilen.
Die Informationen in den Protokollen sind über die API und die Google Cloud Console verfügbar. Anhand dieser Informationen können Sie Benachrichtigungen einrichten. Weitere Informationen finden Sie unter Benachrichtigungen unter „Logging“ festlegen.
E-Mail-Benachrichtigungsberichte senden
Sie können E-Mail-Benachrichtigungsberichte senden, um Personen über den Status und die Ergebnisse eines Jobs zur Datenqualität zu informieren. Benachrichtigungsberichte sind für die folgenden Szenarien verfügbar:
- Der Datenqualitätsfaktor ist niedriger als ein angegebener Zielwert
- Der Job ist fehlgeschlagen
- Der Job ist abgeschlossen
Sie konfigurieren Benachrichtigungsberichte, wenn Sie einen Datenqualitätsscan erstellen.
Fehler bei der Datenqualität beheben
Wenn eine Regel fehlschlägt, generiert Dataplex eine Abfrage, um die fehlgeschlagenen Datensätze abzurufen. Führen Sie diese Abfrage aus, um die Einträge zu sehen, die nicht mit Ihrer Regel übereinstimmen. Weitere Informationen finden Sie unter Fehlerbehebung bei Problemen mit der Datenqualität.
Beschränkungen
- Die Ergebnisse des Datenqualitätsscans werden nicht als Tags in Data Catalog veröffentlicht.
- Regelempfehlungen werden in der gcloud CLI nicht unterstützt.
- Die Auswahl der Dimensionen ist auf eine der sieben vordefinierten Dimensionen festgelegt.
- Die Anzahl der Regeln pro Datenqualitätsscan ist auf 1.000 begrenzt.
- Datenqualitätsbewertungen, die auf Spaltenebene erfasst werden, werden nur in der API unterstützt.
Preise
In Dataplex wird die SKU für die Premium-Verarbeitung verwendet, um die automatische Datenqualität in Rechnung zu stellen. Weitere Informationen finden Sie unter Dataplex-Preise.
Das Veröffentlichen von Ergebnissen der automatischen Datenqualität im Katalog ist noch nicht möglich. Sobald er verfügbar ist, werden die Kosten für den Speicherplatz für Metadaten im Katalog berechnet. Weitere Informationen finden Sie unter Preise.
Die Premium-Verarbeitung von Dataplex für die automatische Datenqualität wird pro Sekunde abgerechnet, wobei ein Mindestwert von einer Minute gilt.
Für fehlgeschlagene Datenqualitätsscans fallen keine Gebühren an.
Die Kosten hängen von der Anzahl der Zeilen, der Anzahl der Spalten, der Menge der gescannten Daten, der Konfiguration der Datenqualitätsregel, den Partitionierungs- und Clustering-Einstellungen der Tabelle und der Häufigkeit des Scans ab.
Es gibt mehrere Möglichkeiten, die Kosten für automatische Scans der Datenqualität zu senken:
Wenn Sie die Kosten für die Datenqualität von anderen Kosten in der Dataplex-Premium-Verarbeitungs-SKU trennen möchten, verwenden Sie im Cloud Billing-Bericht das Label
goog-dataplex-workload-type
mit dem WertDATA_QUALITY
.Verwenden Sie die folgenden Labels, um die zusammengefassten Kosten zu filtern:
goog-dataplex-datascan-data-source-dataplex-entity
goog-dataplex-datascan-data-source-dataplex-lake
goog-dataplex-datascan-data-source-dataplex-zone
goog-dataplex-datascan-data-source-project
goog-dataplex-datascan-data-source-region
goog-dataplex-datascan-id
goog-dataplex-datascan-job-id
Nächste Schritte
- Weitere Informationen zur Verwendung der automatischen Datenqualität
- Weitere Informationen zur Datenprofilerstellung
- Weitere Informationen zur Datenprofilerstellung