Mit der automatischen Datenqualität von Dataplex Universal Catalog 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 Empfehlungen für Dataplex Universal Catalog-Datenprofilierungsregeln beginnen oder benutzerdefinierte Regeln in der Google Cloud Console erstellen. Dataplex Universal Catalog bietet Überwachung, Fehlerbehebung und Cloud Logging-Benachrichtigungen, die in die automatische Datenqualität von Dataplex Universal Catalog integriert sind.
Konzeptionelles Modell
Ein Daten-Scan ist ein Dataplex Universal Catalog-Job, bei dem Daten aus BigQuery und Cloud Storage erfasst und verschiedene Arten von Metadaten abgeleitet werden. Wenn Sie die Qualität einer Tabelle mit 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. Für den Scan werden Ressourcen in einem Google-Mandantenprojekt verwendet. Sie müssen also keine eigene Infrastruktur einrichten.
Das Erstellen und Verwenden eines Datenqualitätsscans umfasst die folgenden Schritte:
- 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 Regeln für die Datenqualität, die einem Datenqualitätsscan zugeordnet sind, werden Erwartungen an die Daten definiert. Sie können Datenqualitätsregeln auf folgende Arten erstellen:
- Empfehlungen aus der Datenprofilerstellung in Dataplex Universal Catalog verwenden
- Vordefinierte Regeln verwenden
- Benutzerdefinierte SQL-Regeln erstellen
Vordefinierte Regeln
Dataplex Universal Catalog unterstützt zwei Kategorien vordefinierter Regeln: Zeilenebene oder Aggregat.
- Auf Zeilenebene
Bei Kategorie-Regeln auf Zeilenebene wird die Erwartung auf jede Datenzeile angewendet. Jede Zeile erfüllt die Bedingung unabhängig voneinander oder nicht. Beispiel:
column_A_value < 1
.Für Prüfungen auf Zeilenebene müssen Sie einen Grenzwert für das Bestehen angeben. Wenn der Prozentsatz der Zeilen, die die Regel bestehen, unter den Schwellenwert fällt, schlägt die Regel fehl.
- Aggregat
Bei aggregierten Regeln wird die Erwartung auf einen einzelnen Wert angewendet, der über alle Daten hinweg aggregiert wird. Beispiel:
Avg(someCol) >= 10
Damit die Prüfung bestanden wird, muss sie als boolescher Werttrue
ausgewertet werden. Bei aggregierten Regeln gibt es keine unabhängige Anzahl von bestandenen oder nicht bestandenen Tests 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
In der folgenden Tabelle sind die unterstützten Regeltypen für Zeilenebene und Aggregat aufgeführt:
Regeltyp (Name in der Google Cloud Konsole) |
Regel auf Zeilenebene oder aggregierte Regel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter |
---|---|---|---|---|
RangeExpectation (Bereichsprüfung) |
Auf Zeilenebene | Prüfen Sie, ob der Wert zwischen dem Mindest- und dem Höchstwert liegt. | Alle Spalten mit numerischen, Datums- und Zeitstempeltypen. | Erforderlich:
|
NonNullExpectation (Null-Prüfung) |
Auf Zeilenebene | Prüfen Sie, ob die Spaltenwerte nicht NULL sind. | Alle unterstützten Spaltentypen. | Erforderlich:
|
SetExpectation (Set check) |
Auf Zeilenebene | Prüft, ob die Werte in einer Spalte einer der angegebenen Werte in einer Menge sind. | Alle unterstützten Spaltentypen außer Record und Struct . |
Erforderlich:
|
RegexExpectation (Prüfung regulärer Ausdrücke) |
Auf Zeilenebene | Prüft die Werte anhand eines angegebenen regulären Ausdrucks. | 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 Sie, ob die angegebene statistische Maßzahl dem erwarteten Bereich entspricht. | Alle unterstützten numerischen Spaltentypen. | Erforderlich:
|
Unterstützte benutzerdefinierte SQL-Regeltypen
SQL-Regeln bieten die Flexibilität, die Validierung mit benutzerdefinierter Logik zu erweitern. Es gibt die folgenden Arten von Regeln.
Regeltyp | Regel auf Zeilenebene oder aggregierte Regel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter | Beispiel |
---|---|---|---|---|---|
Zeilenbedingung | Auf 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, z. B. um Prü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 mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle verweisen. |
Alle Spalten | Erforderlich:
|
Einfaches Beispiel für eine Aggregation: Verwenden einer Ausdrucksunterabfrage zum Vergleichen von Werten in einer anderen Tabelle: |
SQL-Assertion | Aggregat | In einer Assertionsregel wird mit einer Datenqualitätsabfrage nach Zeilen gesucht, 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 bei der Abfrage Zeilen zurückgegeben werden, schlägt die Regel fehl. Lassen Sie das abschließende Semikolon in der SQL-Anweisung weg. Die SQL-Anweisung kann mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle verweisen. |
Alle Spalten | Erforderlich:
|
Einfaches Beispiel für eine Aggregation, um sicherzustellen, dass Verwenden einer Ausdrucksunterabfrage zum Vergleichen von Werten in einer anderen Tabelle: |
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 die Überwachung und Benachrichtigung aggregieren. Sie müssen jede Regel zur Datenqualität einer Dimension zuordnen. Dataplex Universal Catalog bietet 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 „Volumen“ wird gemessen, ob alle erwarteten Daten vorhanden sind.
- Vollständigkeit
- Bei der Vollständigkeit wird geprüft, ob die Daten alle Informationen enthalten, die für den vorgesehenen Zweck erforderlich sind.
- Gültigkeit
- Bei der Gültigkeit wird geprüft, ob die Daten den 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, sind die Daten 08-12-2019 ungültig. Ein weiteres Beispiel: Wenn ein gültiger Angebotspreis für einen Artikel zwischen 10 $und 20 $liegt, ist ein Angebotspreis von 100 $ungültig. - Konsistenz
- Konsistenz bedeutet, dass Daten in mehreren Instanzen, z. B. Tabellen und Spalten, dieselben Werte haben. Dateninkonsistenzen treten beispielsweise auf, wenn der Umsatz eines Produkts unterschiedlich ist, je nachdem, ob er aus einer Verkaufs- oder einer Nutzungsdatenbank abgerufen wird.
- Genauigkeit
- Die Genauigkeit gibt an, wie korrekt die Daten sind. Beachten Sie, dass gültige Daten nicht unbedingt korrekt sind. Eine gültige Haarfarbe ist beispielsweise „braun“. Wenn eine Person aber keine braunen Haare hat, sind das ungenaue Daten.
- Eindeutigkeit
- Mit der Eindeutigkeit wird gemessen, ob die Daten eindeutig sind und keine Duplikate enthalten.
Eingabe von Typen in Regeln
Alle „value“-Parameter werden als Stringwerte an die API übergeben. Für Dataplex Universal Catalog müssen Eingaben dem von BigQuery angegebenen Format entsprechen.
Parameter vom Typ „Binär“ 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]-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 |
Parameter für Datenreferenz
Wenn Sie eine benutzerdefinierte SQL-Regel erstellen, können Sie mit dem Datenreferenzparameter ${data()}
in der Regel auf eine Datenquellentabelle und alle zugehörigen Vorbedingungsfilter verweisen, anstatt die Quellentabelle und ihre Filter explizit zu erwähnen.
Dataplex Universal Catalog interpretiert den Parameter als Verweis auf die Quelltabelle und ihre Filter. Beispiele für Vorbedingungsfilter sind Zeilenfilter, Stichprobenprozentsätze und inkrementelle Filter.
Angenommen, Sie haben eine Datenquellentabelle mit dem Namen my_project_id.dim_dataset.dim_currency
. Sie möchten einen inkrementellen Scan der Datenqualität ausführen, bei dem nur die neuen täglichen Daten gescannt werden. Auf die Tabelle wird ein Zeilenfilter angewendet, der nach Einträgen von heute, transaction_timestamp >= current_date()
, 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 für den 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()})
Im Dataplex Universal Catalog 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 Parameter für den Datenverweis 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 Parameter „data reference“, um auf die Quelltabelle zu verweisen, oder lassen Sie den Tabellenbezug weg. Verweisen Sie in der WHERE
-Klausel nicht mit einem direkten Tabellenverweis auf die Spalten in der Quelltabelle.
Empfohlen:
Verwenden Sie den Parameter „data_reference“, 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 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 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 so planen, dass sie in einem bestimmten Intervall ausgeführt werden, oder Sie können einen Scan nach Bedarf ausführen. Sie können die API oder dieGoogle Cloud -Konsole verwenden, um Scans zur Datenqualität zu verwalten.
Wenn Sie einen Datenqualitätsscan ausführen, wird in Dataplex Universal Catalog ein Job erstellt. Im Rahmen der Spezifikation eines Datenqualitätsscans 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 Inkremente zu ermitteln, müssen Sie in der Tabelle eine Spalte
Date
/Timestamp
angeben, die als Markierung verwendet werden kann. In der Regel ist dies die Spalte, nach der die Tabelle partitioniert wird.
Daten filtern
Mit Dataplex Universal Catalog können Daten, die auf Datenqualität gescannt werden sollen, mithilfe eines Zeilenfilters gefiltert werden. Mit einem Zeilenfilter können Sie sich auf Daten innerhalb eines bestimmten Zeitraums oder eines bestimmten Segments, z. B. einer bestimmten Region, konzentrieren. Durch das Filtern von Daten mit einem Zeitstempel vor einem bestimmten Datum können Sie beispielsweise die Ausführungszeit und die Kosten reduzieren.
Beispieldaten
Mit Dataplex Universal Catalog können Sie einen Prozentsatz der Datensätze aus Ihren Daten angeben, die für die Ausführung eines Datenqualitätsscans verwendet werden sollen. Wenn Sie Datenqualitätsscans für eine kleinere Stichprobe von Daten erstellen, können Sie die Ausführungszeit und die Kosten im Vergleich zur Abfrage des gesamten Datasets reduzieren.
Ergebnisse des Datenqualitätsscans
Die Ergebnisse Ihrer Datenqualitätsscans sind in Dataplex Universal Catalog 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 Daten aus der BigQuery-Tabelle mit einem Looker-Dashboard verbinden. Sie können einen aggregierten Bericht erstellen, indem Sie dieselbe Ergebnistabelle für mehrere Scans verwenden.
Ergebnisse als Dataplex Universal Catalog-Metadaten veröffentlichen
Sie können die Ergebnisse des Datenqualitätsscans als Dataplex Universal Catalog-Metadaten veröffentlichen. Die neuesten Ergebnisse werden im Dataplex Universal Catalog-Eintrag gespeichert, der die Quelltabelle repräsentiert, und zwar unter dem Systemaspekttyp
data-quality-scorecard
. Sie können die Ergebnisse auf den BigQuery- und Dataplex Universal Catalog-Seiten der Quelltabelle in der Google Cloud -Konsole auf dem Tab Datenqualität ansehen. Sie können die Ergebnisse auch über die API abrufen.Weitere Informationen zu Dataplex Universal Catalog-Metadaten finden Sie unter Data Catalog-Verwaltung in Dataplex Universal Catalog.
Datenqualitätsfaktoren ansehen
Jedes Scanergebnis enthält Datenqualitätswerte, die den Prozentsatz der bestandenen Regeln angeben. Die Werte werden auf der Ebene des Gesamtjobs, der Spalte (wenn die Regel für eine Spalte ausgewertet wird) und der Dimension gemeldet. Mithilfe der Datenqualitätsbewertungen können Sie die Datenqualität über Tabellen oder Spalten hinweg normalisieren, Trends nachvollziehen 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 Datenqualitätsjobs: bestanden oder nicht bestanden.
- Bestanden oder nicht bestanden auf Dimensionsebene.
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, Auswertungstyp und Dimension.
- Ergebnisinformationen wie „Bestanden“ oder „Nicht bestanden“, Gesamtzahl der Zeilen, Anzahl der Zeilen, die die Prüfung bestanden haben, Anzahl der Nullzeilen und Anzahl der ausgewerteten Zeilen.
Die Informationen in den Logs sind über die API und dieGoogle Cloud -Konsole verfügbar. Anhand dieser Informationen können Sie Benachrichtigungen einrichten. Weitere Informationen finden Sie unter Benachrichtigungen in Logging einrichten.
Berichte als E-Mail-Benachrichtigung senden
Sie können Berichte mit E‑Mail-Benachrichtigungen senden, um Personen über den Status und die Ergebnisse eines Datenqualitätsjobs 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 Auftrag wurde abgeschlossen
Sie konfigurieren Benachrichtigungsberichte, wenn Sie einen Datenqualitätsscan erstellen.
Fehler bei der Datenqualität beheben
Wenn eine Regel fehlschlägt, generiert Dataplex Universal Catalog eine Abfrage, um die fehlgeschlagenen Datensätze abzurufen. Führen Sie diese Abfrage aus, um die Datensätze zu sehen, die nicht mit Ihrer Regel übereinstimmen. Weitere Informationen finden Sie unter Fehlerbehebung bei Problemen mit der Datenqualität.
Beschränkungen
- Das Veröffentlichen von Datenqualitätsscan-Ergebnissen als Dataplex Universal Catalog-Metadaten wird in der Google Cloud -Konsole nicht unterstützt.
- Regelempfehlungen werden in der gcloud CLI nicht unterstützt.
- Die Auswahl der Dimensionen ist auf eine der sieben vordefinierten Dimensionen beschränkt.
- Die Anzahl der Regeln pro Datenqualitätsscan ist auf 1.000 begrenzt.
- Datenqualitätswerte, die auf Spaltenebene gemeldet werden, werden nur in der API unterstützt.
Preise
Für die automatische Datenqualität wird im Dataplex Universal Catalog die Premium-Verarbeitungs-SKU verwendet. Weitere Informationen finden Sie unter Dataplex Universal Catalog – Preise.
Die Premium-Verarbeitung für die automatische Datenqualität im Dataplex Universal Catalog wird pro Sekunde mit einem Minimum von einer Minute abgerechnet.
Für fehlgeschlagene Datenqualitätsscans fallen keine Gebühren an.
Die Gebühr hängt von der Anzahl der Zeilen und Spalten, der Menge der gescannten Daten, der Konfiguration der Datenqualitätsregel, den Partitionierungs- und Clustering-Einstellungen für die Tabelle sowie der Häufigkeit des Scans ab.
Es gibt mehrere Möglichkeiten, die Kosten für automatische Scans der Datenqualität zu senken:
Wenn Sie Gebühren für die Datenqualität von anderen Gebühren in der Premium-Verarbeitungs-SKU für Dataplex Universal Catalog 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 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
- Informationen zur Verwendung der automatischen Datenqualität
- Weitere Informationen zur Datenprofilerstellung
- Informationen zur Verwendung der Datenprofilerstellung