In diesem Dokument wird die automatische Datenqualität von Dataplex beschrieben, können Sie die Qualität Ihrer Daten definieren und messen. Sie können die das Scannen von Daten, Validieren von Daten anhand definierter Regeln und Protokollieren von Benachrichtigungen, wenn Ihre die Qualitätsanforderungen nicht erfüllen. Sie können Datenqualitätsregeln verwalten und Bereitstellungen als Code, wodurch die Integrität von Pipelines für die Datenproduktion verbessert wird.
Sie können beginnen, indem Sie Dataplex-Datenprofiling oder in der Google Cloud Console benutzerdefinierte Regeln 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, bei dem Daten aus BigQuery und Cloud Storage abgetastet und verschiedene Arten von Metadaten abgeleitet werden. Um die Qualität einer Tabelle mithilfe der automatischen Datenqualität zu messen, erstellen Sie
Ein DataScan
-Objekt vom Typ data quality
Der Scan wird nur auf folgenden Geräten ausgeführt:
eine BigQuery-Tabelle. Für den Scan werden Ressourcen in einem Google-Tenant-Projekt verwendet. Sie müssen also keine eigene Infrastruktur einrichten.
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 einem Datenqualitätsscan verknüpfte Datenqualitätsregeln definieren Daten. Erwartungen erfüllt. 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 und Aggregate.
- Auf Zeilenebene
Bei Kategorieregeln auf Zeilenebene wird die Erwartung auf jede Datenzeile angewendet. Jede Zeile wird unabhängig durchgeführt oder die Bedingung nicht erfüllt. 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 Aggregatregeln wird erwartet, dass auf einen einzelnen Wert angewendet, der über alle Daten hinweg aggregiert ist. Beispiel:
Avg(someCol) >= 10
Für eine erfolgreiche Prüfung muss die Prüfung den Der boolesche Werttrue
. Aggregierte Regeln liefern keine unabhängige bestandene/nicht bestandene Prüfung für jede Zeile zählen.
Für beide Regelkategorien können Sie die folgenden Parameter festlegen:
- Die Spalte, auf die sich die Regel bezieht.
- Eine Dimension aus einer Gruppe vordefinierter Dimensionen.
In der folgenden Tabelle sind die unterstützten Regeln auf Zeilenebene und Aggregierungsregeln aufgeführt:
Regeltyp (Name in der Google Cloud Console) |
Zeilen- oder Aggregatregel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter |
---|---|---|---|---|
RangeExpectation (Bereichsprüfung) |
Auf Zeilenebene | Prüfen Sie, ob der Wert zwischen dem Mindest- und Höchstwert liegt. | Alle numerischen Spalten, Datums- und Zeitstempelspalten. | Erforderlich:
|
NonNullExpectation (Null-Prüfung) |
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 außer 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 außer Record und Struct . |
Erforderlich:
|
StatisticRangeExpectation (Statistikprüfung) |
Aggregat | Prüfen, ob der angegebene statistische Wert mit der erwarteten Spanne übereinstimmt | Alle unterstützten numerischen Spaltentypen. | Erforderlich:
|
Unterstützte benutzerdefinierte SQL-Regeltypen
Mit SQL-Regeln können Sie die Validierung mit benutzerdefinierter Logik erweitern. Diese gibt es folgende Arten von Regeln:
Regeltyp | Regel auf Zeilen- oder Aggregierungsebene | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter | Beispiel |
---|---|---|---|---|---|
Zeilenbedingung | 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 (aggregierter SQL-Ausdruck) |
Aggregat | Diese Regeln werden einmal pro Tabelle ausgeführt. Geben Sie einen SQL-Ausdruck an, der als boolescher Wert Der SQL-Ausdruck kann Verweisen Sie mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle. |
Alle Spalten | Erforderlich:
|
Beispiel für eine einfache Aggregation: Verwenden einer Ausdruck-Unterabfrage, um Werte über eine andere Tabelle hinweg zu vergleichen: |
SQL-Assertion | Aggregat | Eine Assertion-Regel verwendet eine Datenqualitätsabfrage, um fehlerhafte Zeilen zu finden eine oder mehrere in der Abfrage angegebene Bedingungen. Geben Sie eine SQL-Anweisung an, die ausgewertet wird, um Zeilen zurückzugeben, die dem ungültigen Status entsprechen. Wenn die gibt die Regel Zeilen zurück. Lassen Sie das abschließende Semikolon aus der SQL-Anweisung weg. Die SQL-Anweisung kann einen Verweis auf eine andere Tabelle mit Ausdruck-Unterabfragen. |
Alle Spalten | Erforderlich:
|
Einfaches Aggregationsbeispiel, um sicherzustellen, dass 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
Mithilfe von Dimensionen können Sie die Ergebnisse mehrerer Datenqualitätsregeln für die Überwachung und Benachrichtigung zusammenfassen. Jede Datenqualitätsregel muss einer Dimension. Dataplex unterstützt die folgenden Dimensionen:
- Aktualität
- Volumen
- Vollständigkeit
- Gültigkeit
- Konsistenz
- Genauigkeit
- Eindeutigkeit
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] |
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 | 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 Verweis auf die Quelle
Tabelle 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 eine inkrementelle
Qualitätsscan, bei dem nur neue tägliche Daten berücksichtigt werden. Zeilenfilter, mit dem nach
Die heutigen Einträge, transaction_timestamp >= current_date()
, werden auf die
.
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())
Wenn Sie den Parameter „Datenverweis“ verwenden, können Sie die Regel vereinfachen. Ersetzen Sie die
Erwähnung der Tabelle und ihrer Vorbedingungsfilter mit dem ${data()}
Parameter:
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.
Bei dem 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 „Datenreferenz“, um auf die Quelltabelle zu verweisen, oder lassen Sie die Tabellenreferenz aus. Verweisen Sie nicht über einen direkten Tabellenbezug 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 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 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 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, erstellt Dataplex einen Job. Als Teil der Spezifikation eines Datenqualitätsscans, können Sie den Bereich muss eines der folgenden sein:
- Vollständige Tabelle
- Jeder Job validiert die gesamte Tabelle.
- Inkrementell
- Jeder Job validiert inkrementelle Daten. 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, Tabelle partitioniert ist.
Daten filtern
Dataplex kann Daten filtern, die auf Datenqualität geprüft werden sollen, mit einem Zeilenfilter. 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
Mit Dataplex können Sie einen Prozentsatz der Datensätze aus Ihren Daten angeben für die Durchführung eines Datenqualitätsscans. Datenqualitätsscans auf einem kleinere Stichproben an Daten können die Ausführungszeit und die Kosten im Vergleich zu Abfragen des gesamten Datasets.
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 Tabellendaten in ein Looker-Dashboard. Sie können einen zusammengefassten Bericht 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ätswerte überprüfen
Jedes Scanergebnis enthält Datenqualitätsbewertungen, die den Prozentsatz der erfüllten Regeln angeben. Die Punktzahlen werden auf Jobebene insgesamt gemeldet, Ebene (wenn die Regel anhand einer Spalte ausgewertet wird) und die Dimensionsebene. 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 Sehen Sie sich die Ergebnisse des Datenqualitätsscans an.
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:- Für den Datenscan verwendete Datenquelle.
- Details zur Jobausführung, z. B. Erstellungszeit, Startzeit, Endzeit und Jobstatus.
- Ergebnis des Jobs zur Datenqualität: Erfolgreich oder Fehlgeschlagen.
- Auf Dimensionsebene wurde bestanden oder nicht bestanden.
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, Bewertungstyp, und Dimension.
- Ergebnisinformationen wie „Erfolg“ oder „Fehlschlag“, Gesamtzahl der Zeilen, Anzahl der Zeilen mit Erfolg, Anzahl der Zeilen mit Nullwerten und Anzahl der ausgewerteten Zeilen.
Die Informationen in den Protokollen sind über die API und Google Cloud Console Anhand dieser Informationen können Sie Benachrichtigungen einrichten. Für finden Sie unter Benachrichtigungen in Logging festlegen
E-Mail-Benachrichtigungen senden
Sie können E-Mail-Benachrichtigungen senden, um andere über den Status und eines Datenqualitätsjobs. 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 Erstellen Sie einen Datenqualitätsscan.
Fehler bei der Datenqualität beheben
Wenn eine Regel fehlschlägt, führt Dataplex eine Abfrage aus, 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
- Ergebnisse des Datenqualitätsscans werden nicht in Data Catalog veröffentlicht als Tags.
- 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.
- E-Mail-Benachrichtigungen werden nur in der gcloud CLI und API unterstützt.
- 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. Wenn es verfügbar wird, wird derselbe Preis berechnet wie die Katalogmetadaten Speicherpreise. Weitere Informationen finden Sie unter Preise.
Die Abrechnung für die Dataplex-Premiumverarbeitung für automatische Datenqualität erfolgt pro bei einem Minimum von einer Minute.
Fehlgeschlagene Datenqualitätsscans werden nicht berechnet.
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 der gscan-Aufrufe ab.
Es gibt mehrere Möglichkeiten, die Kosten für automatische Datenqualitätsscans zu reduzieren:
Um Gebühren für Datenqualität von anderen Gebühren in Dataplex zu trennen Premium-Artikel zur Verarbeitung in der Cloud Billing-Bericht, verwenden Sie das Label
goog-dataplex-workload-type
mit dem WertDATA_QUALITY
.Verwenden Sie die folgenden Labels, um zusammengefasste Gebühren 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
- Datenprofilerstellung verwenden