In diesem Dokument wird die automatische Datenqualität von Dataplex beschrieben, mit der Sie die Qualität Ihrer Daten definieren und messen können. Sie können das Scannen von Daten automatisieren, Daten anhand definierter Regeln validieren und Benachrichtigungen protokollieren, wenn Ihre Daten die Qualitätsanforderungen nicht erfüllen. Sie können Datenqualitätsregeln und Bereitstellungen als Code verwalten und so die Integrität von Pipelines zur Datenproduktion verbessern.
Sie können mit den Empfehlungen für Regelempfehlungen für die Dataplex-Datenprofilerstellung 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.
Konzeptionelles Modell
Ein Datenscan ist ein Dataplex-Job, der Daten aus BigQuery und Cloud Storage als Stichproben erfasst und verschiedene Arten von Metadaten ableitet. 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 für eine BigQuery-Tabelle ausgeführt. Der Scan verwendet Ressourcen in einem Mandantenprojekt von Google, sodass Sie keine eigene Infrastruktur einrichten müssen.
Das Erstellen und Verwenden eines Datenqualitätsscans umfasst die folgenden Schritte:
- Datenqualitätsregeln definieren
- Regelausführung konfigurieren
- Ergebnisse des Datenqualitätsscans analysieren
- Monitoring und Benachrichtigungen einrichten
- Probleme mit der Datenqualität beheben
Regeldefinition
Mit Datenqualitätsregeln, die mit einem Datenqualitätsscan verknüpft sind, werden die Datenerwartungen definiert. Sie können Regeln für die Datenqualität auf folgende Arten erstellen:
- Empfehlungen aus der Dataplex-Datenprofilerstellung verwenden
- Vordefinierte Regeln verwenden
- Benutzerdefinierte SQL-Regeln erstellen
Vordefinierte Regeln
Dataplex unterstützt zwei Kategorien vordefinierter Regeln: auf Zeilenebene oder aggregiert.
- Zeilenebene
Bei Kategorieregeln auf Zeilenebene wird die Erwartung auf jede Datenzeile angewendet. Jede Zeile erfüllt oder erfüllt die Bedingung unabhängig davon. Beispiel:
column_A_value < 1
.Bei Prüfungen auf Zeilenebene müssen Sie einen Grenzwert für die bestandene Prüfung angeben. Wenn der Prozentsatz der Zeilen, die die Regel erfüllen, unter den Grenzwert fällt, schlägt die Regel fehl.
- Aggregieren
Bei Aggregatregeln wird die Erwartung auf einen einzelnen Wert angewendet, der über die gesamten Daten aggregiert wird. Beispiel:
Avg(someCol) >= 10
Die Prüfung muss den booleschen Werttrue
ergeben, um die Prüfung zu bestehen. Aggregierte Regeln liefern keine unabhängige Anzahl von bestandenen oder nicht bestandenen Prüfungen für jede Zeile.
Für beide Regelkategorien können Sie die folgenden Parameter festlegen:
- Die Spalte, für die die Regel gilt.
- Eine Dimension aus einer Gruppe vordefinierter Dimensionen.
In der folgenden Tabelle sind die unterstützten Regeltypen auf Zeilenebene und für Aggregatregeln aufgeführt:
Regeltyp (Name in der Google Cloud Console) |
Zeilen- oder Aggregatregel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter |
---|---|---|---|---|
RangeExpectation (Bereichsprüfung) |
Zeilenebene | Prüfen Sie, ob der Wert zwischen dem Mindest- und Höchstwert liegt. | Alle numerischen Spalten, Datums- und Zeitstempelspalten. | Erforderlich:
|
NonNullExpectation (Nullprüfung) |
Zeilenebene | Validiert, dass Spaltenwerte nicht NULL sind. | Alle unterstützten Spaltentypen. | Erforderlich:
|
SetExpectation (Bestätigung festlegen) |
Zeilenebene | Überprüfen Sie, ob die Werte in einer Spalte einem der angegebenen Werte in einem Satz entsprechen. | Alle unterstützten Spaltentypen außer Record und Struct . |
Erforderlich:
|
RegexExpectation (Überprüfung regulärer Ausdrücke) |
Zeilenebene | Überprüfen Sie die Werte mit einem angegebenen regulären Ausdruck. | String | Erforderlich:
|
Uniqueness (Eindeutigkeitsprüfung) |
Aggregieren | Prüfen Sie, ob alle Werte in einer Spalte eindeutig sind. | Alle unterstützten Spaltentypen außer Record und Struct . |
Erforderlich:
|
StatisticRangeExpectation (Statistikprüfung) |
Aggregieren | Überprüfen Sie, ob das angegebene statistische Maß mit der Bereichserwartung übereinstimmt. | Alle unterstützten numerischen Spaltentypen. | Erforderlich:
|
Unterstützte benutzerdefinierte SQL-Regeltypen
SQL-Regeln bieten Flexibilität, um die Validierung mit benutzerdefinierter Logik zu erweitern. Diese Regeln gibt es in den folgenden Typen.
Regeltyp | Zeilen- oder Aggregatregel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter | Beispiel |
---|---|---|---|---|---|
Zeilenbedingung | Zeilenebene | Geben Sie für jede Zeile eine Erwartung an, indem Sie einen SQL-Ausdruck in einer Der Ausdruck kann einen Verweis auf eine andere Tabelle enthalten, um beispielsweise referenzielle Integritätsprüfungen zu erstellen. |
Alle Spalten | Erforderlich:
|
grossWeight <= netWeight |
Tabellenbedingung (aggregierter SQL-Ausdruck) |
Aggregieren | 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:
|
Beispiel für eine einfache Aggregation: Verwenden einer Ausdruck-Unterabfrage, um Werte über eine andere Tabelle hinweg zu vergleichen: |
SQL-Assertion | Aggregieren | Eine Assertion-Regel verwendet eine Datenqualitätsabfrage, um Zeilen zu finden, 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 nachgestellte Semikolon aus der SQL-Anweisung weg. Die SQL-Anweisung kann mithilfe von Ausdruck-Unterabfragen einen Verweis auf eine andere Tabelle enthalten. |
Alle Spalten | Erforderlich:
|
Beispiel für eine einfache Aggregation, in der Verwenden einer Ausdruck-Unterabfrage, um Werte über eine andere Tabelle hinweg zu 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
Mit Dimensionen können Sie die Ergebnisse mehrerer Datenqualitätsregeln für Monitoring und Benachrichtigungen aggregieren. Sie müssen jede Datenqualitätsregel einer Dimension zuordnen. Dataplex unterstützt die folgenden Dimensionen:
- Aktualität
- Volumen
- Vollständigkeit
- Gültigkeit
- Konsistenz
- Genauigkeit
- Eindeutigkeit
Eingabe in Regeln
Alle Wertparameter werden als Stringwerte an die API übergeben. Dataplex erfordert Eingaben, die dem von BigQuery angegebenen Format entsprechen.
Parameter des Binärtyps können als Base64-codierter String übergeben werden.
Typ | Unterstützte Formate | Beispiele |
---|---|---|
Binär | Base64-codierter Wert | YXBwbGU= |
Zeitstempel | JJJJ-[M]M-[D]T[( |T)[H]H:[M]M:[S]S[.F]] [Zeitzone] ODER JJJJ-[M-M-[D]T[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
27.09.2014 12:30:00.45-08 |
Datum | JJJJ-M[M]-T[T] | 2014-09-27 |
Zeit | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00,45 |
DateTime | JJJJ-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] | 27.09.2014 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 Vorbedingungsfilter verweisen, anstatt explizit die Quelltabelle und ihre Filter anzugeben.
Dataplex interpretiert den Parameter als Verweis auf die Quelltabelle und ihre Filter. Beispiele für Vorbedingungsfilter sind Zeilenfilter, prozentuale Stichproben und inkrementelle Filter.
Angenommen, Sie haben eine Datenquellentabelle mit dem Namen my_project_id.dim_dataset.dim_currency
. Sie möchten einen inkrementellen Datenqualitätsscan ausführen, der nur neue tägliche Daten durchsucht. Auf die Tabelle wird der Zeilenfilter transaction_timestamp >= current_date()
angewendet, der nach den heutigen Einträgen filtert.
Eine benutzerdefinierte SQL-Regel zum Suchen 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())
Wenn Sie den Parameter „Datenverweis“ verwenden, können Sie die Regel vereinfachen. Ersetzen Sie die Erwähnung der Tabelle und ihrer Vorbedingungsfilter durch den Parameter ${data()}
:
discount_pct IN (SELECT discount_pct FROM ${data()})
Dataplex interpretiert den Parameter ${data()}
als Verweis auf die Datenquellentabelle mit den heutigen Einträgen (my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date()
).
In diesem Beispiel bezieht sich der Datenverweisparameter nur auf die inkrementellen Daten.
Beim Parameter ${data()}
wird zwischen Groß- und Kleinschreibung unterschieden.
Wenn Sie in einer Unterabfrage einen Alias verwenden, um auf Spalten in der Quelltabelle zu verweisen, verwenden Sie entweder den Datenverweisparameter, um auf die Quelltabelle zu verweisen, oder lassen Sie den Tabellenverweis weg. Verweisen Sie nicht mithilfe eines direkten Tabellenverweises in der WHERE
-Klausel auf die Spalten in der Quelltabelle.
Empfohlen:
Verwenden Sie den Datenverweisparameter, 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 den Tabellenverweis weg:
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 Tabellenverweis, 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 so planen, dass sie in einem bestimmten Intervall ausgeführt werden, oder einen Scan nach Bedarf ausführen. Zum Verwalten von Datenqualitätsscans können Sie die API oder die Google Cloud Console verwenden.
Wenn Sie einen Datenqualitätsscan ausführen, erstellt Dataplex einen Job. Im Rahmen der Spezifikation eines Datenqualitätsscans können Sie einen der folgenden Bereiche eines Jobs festlegen:
- Vollständige Tabelle
- Jeder Job validiert die gesamte Tabelle.
- Inkrementell
- Jeder Job validiert inkrementelle Daten. Geben Sie zum Ermitteln der Schritte eine
Date
/Timestamp
-Spalte in der Tabelle an, die als Markierung verwendet werden kann. In der Regel ist dies die Spalte, nach der die Tabelle partitioniert ist.
Daten filtern
Dataplex kann Daten, die auf Datenqualität gescannt werden sollen, mit einem Zeilenfilter filtern. Mit einem Zeilenfilter können Sie sich auf Daten innerhalb eines bestimmten Zeitraums oder eines bestimmten Segments konzentrieren, z. B. einer bestimmten Region. Die Verwendung von Filtern kann die Ausführungszeit und die Kosten reduzieren, z. B. durch das Herausfiltern von Daten mit einem Zeitstempel vor einem bestimmten Datum.
Beispieldaten
Mit Dataplex können Sie einen Prozentsatz der Datensätze Ihrer Daten angeben, die zum Ausführen eines Datenqualitätsscans als Stichproben erfasst werden sollen. Das Erstellen von Datenqualitätsscans für eine kleinere Stichprobe von Daten kann die Ausführungszeit und die Kosten für die Abfrage des gesamten Datasets 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. Um die Berichterstellung anzupassen, können Sie die BigQuery-Tabellendaten mit einem Looker-Dashboard verbinden. Sie können einen aggregierten 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 letzten Scanergebnisse finden Sie auf dem Tab Datenqualität für die Quelltabelle.
Datenqualitätswerte überprüfen
Jedes Scanergebnis enthält Datenqualitätswerte, die den Prozentsatz der bestandenen Regeln angeben. Die Punktzahlen werden auf Gesamtjobebene, auf Spaltenebene (wenn die Regel anhand einer Spalte ausgewertet wird) und auf Dimensionsebene gemeldet. Verwenden Sie die Datenqualitätswerte, um die Datenqualität über Tabellen oder Spalten hinweg zu normalisieren, Trends zu verfolgen und Daten zu ermitteln, die die Qualitätsanforderungen nicht erfüllen.
Weitere Informationen finden Sie unter Ergebnisse des Datenqualitätsscans ansehen.
Monitoring und Benachrichtigungen
Mit den folgenden Methoden können Sie Datenqualitätsscans überwachen und Benachrichtigungen dazu erhalten:
Benachrichtigungen in Cloud Logging festlegen
Sie können die Datenqualitätsjobs mit den Logs
data_scan
unddata_quality_scan_rule_result
im Log-Explorer überwachen.Für jeden Datenqualitätsjob enthält das Log
data_scan
, bei dem das Felddata_scan_type
aufDATA_QUALITY
gesetzt ist, die folgenden Informationen:- Für den Datenscan verwendete Datenquelle.
- Details zur Jobausführung wie Erstellungszeit, Startzeit, Endzeit und Jobstatus.
- Ergebnis des Datenqualitätsjobs: bestanden oder nicht bestanden.
- Auf Dimensionsebene wurde bestanden oder nicht bestanden.
Jeder erfolgreiche Job enthält ein
data_quality_scan_rule_result
-Log mit den folgenden detaillierten Informationen zu jeder Regel in diesem Job:- Konfigurationsinformationen wie Regelname, Regeltyp, Bewertungstyp und Dimension
- Ergebnisinformationen wie bestanden oder nicht bestanden, Gesamtzahl der Zeilen, Anzahl der bestandenen Zeilen, Nullzeilenanzahl und Anzahl der ausgewerteten Zeilen.
Die Informationen in den Logs 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 in Logging festlegen.
E-Mail-Benachrichtigungen senden
Sie können E-Mail-Benachrichtigungen senden, um andere über den Status und die Ergebnisse eines Datenqualitätsjobs zu informieren. Benachrichtigungen sind für die folgenden Szenarien verfügbar:
- Der Datenqualitätsfaktor ist niedriger als ein angegebener Zielwert.
- Der Job ist fehlgeschlagen
- Der Job wurde abgeschlossen
Sie konfigurieren Benachrichtigungen, wenn Sie einen Datenqualitätsscan erstellen.
Probleme mit der Datenqualität beheben
Wenn eine Regel fehlschlägt, erstellt Dataplex eine Abfrage, um die fehlerhaften Einträge abzurufen. Führen Sie diese Abfrage aus, um die Datensätze anzuzeigen, die nicht mit Ihrer Regel übereinstimmen. Weitere Informationen finden Sie unter Probleme mit der Datenqualität beheben.
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 wird auf eine der vordefinierten sieben Dimensionen festgelegt.
- Die Anzahl der Regeln pro Datenqualitätsscan ist auf 1.000 begrenzt.
- E-Mail-Benachrichtigungen werden nur in der gcloud CLI und API unterstützt.
- Datenqualitätswerte, die auf Spaltenebene gemeldet werden, werden nur in der API unterstützt.
Preise
Dataplex verwendet die Premium-Verarbeitungs-SKU, um Gebühren für die automatische Datenqualität zu berechnen. Weitere Informationen finden Sie unter Dataplex-Preise.
Das Veröffentlichen von Ergebnissen der automatischen Datenqualität im Katalog ist noch nicht möglich. Wenn sie verfügbar ist, wird es zum selben Preis wie für den Metadatenspeicher von Katalogen abgerechnet. Weitere Informationen finden Sie unter Preise.
Die Dataplex-Premiumverarbeitung für die automatische Datenqualität wird pro Sekunde mit einem Minimum von einer Minute abgerechnet.
Fehlgeschlagene Datenqualitätsscans werden nicht berechnet.
Die Kosten hängen von der Anzahl der Zeilen, der Anzahl der Spalten, der gescannten Datenmenge, der Konfiguration der Datenqualitätsregel, den Partitionierungs- und Clustering-Einstellungen der Tabelle sowie der Häufigkeit des Gscans ab.
Es gibt mehrere Möglichkeiten, die Kosten für automatische Datenqualitätsscans zu reduzieren:
Trennen Sie die Gebühren für die Datenqualität von anderen Gebühren in der Dataplex-Premium-Verarbeitungs-SKU, verwenden Sie das Label
goog-dataplex-workload-type
mit dem WertDATA_QUALITY
.Sie können zusammengefasste Gebühren filtern. Verwenden Sie die folgenden Labels:
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
- Datenprofilerstellung verwenden