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 In Dataplex Auto integrierte Cloud Logging-Benachrichtigungen Datenqualität.
Konzeptionelles Modell
Ein Datenscan ist ein Dataplex-Job,
und leitet verschiedene Arten von Daten
in BigQuery und Cloud Storage ab.
Metadaten. 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. Der Scan nutzt Ressourcen in einem
Mandantenprojekt, damit Sie
eine 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 einem Datenqualitätsscan verknüpfte Datenqualitätsregeln definieren Daten. Erwartungen erfüllt. 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 vordefinierter Regeln: auf Zeilenebene oder und Aggregate.
- Zeilenebene
Für Kategorieregeln auf Zeilenebene wird die Erwartung angewendet. Datenzeile vergleichen. 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 bestandene Prüfung angeben. Wenn der Parameter der Prozentsatz der Zeilen, für die die Regel gilt, unter den Grenzwert fällt, gilt die Regel schlägt fehl.
- Aggregat
Bei aggregierten Regeln wird erwartet, 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, 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: <ph type="x-smartling-placeholder">
|
NonNullExpectation (Nullprüfung) |
Zeilenebene | Validiert, dass Spaltenwerte nicht NULL sind. | Alle unterstützten Spaltentypen. | Erforderlich:
<ph type="x-smartling-placeholder">
|
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: <ph type="x-smartling-placeholder">
<ph type="x-smartling-placeholder">
|
RegexExpectation (Überprüfung regulärer Ausdrücke) |
Zeilenebene | Prüft die Werte auf einen angegebenen regulären Ausdruck. | String | Erforderlich: <ph type="x-smartling-placeholder">
<ph type="x-smartling-placeholder">
|
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:
<ph type="x-smartling-placeholder">
<ph type="x-smartling-placeholder">
|
StatisticRangeExpectation (Statistikprüfung) |
Aggregat | Überprüfen Sie, ob das angegebene statistische Maß mit der Bereichserwartung übereinstimmt. | Alle unterstützten numerischen Spaltentypen. | Erforderlich:
<ph type="x-smartling-placeholder">
|
Unterstützte benutzerdefinierte SQL-Regeltypen
SQL-Regeln bieten Flexibilität, um die Validierung mit benutzerdefinierter Logik zu erweitern. Diese gibt es folgende Arten von Regeln:
Regeltyp | Zeilen- oder Aggregatregel | Beschreibung | Unterstützte Spaltentypen | Regelspezifische Parameter | Beispiel |
---|---|---|---|---|---|
Zeilenbedingung | Zeilenebene | Legen Sie eine Erwartung für jede Zeile fest, indem Sie eine SQL-Abfrage definieren
Ausdruck in einer Der Ausdruck kann einen Verweis auf eine andere Tabelle enthalten, um beispielsweise referenzielle Integritätsprüfungen. |
Alle Spalten | Erforderlich:
<ph type="x-smartling-placeholder">
|
grossWeight <= netWeight |
Tabellenbedingung (aggregierter SQL-Ausdruck) |
Aggregat | Diese Regeln werden einmal pro Tabelle ausgeführt. Geben Sie einen SQL-Ausdruck an, der
wird als boolescher Wert Der SQL-Ausdruck kann Verweisen Sie mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle. |
Alle Spalten | Erforderlich:
<ph type="x-smartling-placeholder">
|
Beispiel für eine einfache Aggregation: Verwenden einer Ausdruck-Unterabfrage zum Vergleichen von Werten in einer anderen Tabelle: |
SQL-Assertion | Aggregat | Eine Assertion-Regel verwendet eine Datenqualitätsabfrage, um fehlerhafte Zeilen zu finden eine oder mehrere Bedingungen, die in der Abfrage angegeben sind. SQL-Anweisung angeben die ausgewertet wird, um Zeilen zurückzugeben, die mit dem ungültigen Status übereinstimmen. Wenn die gibt die Regel Zeilen zurück. Lassen Sie das nachgestellte Semikolon aus der SQL-Anweisung weg. Die SQL-Anweisung kann einen Verweis auf eine andere Tabelle mit Ausdruck-Unterabfragen. |
Alle Spalten | Erforderlich:
<ph type="x-smartling-placeholder">
|
Einfaches Aggregationsbeispiel, um sicherzustellen, dass Verwenden einer Ausdruck-Unterabfrage 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
Mithilfe von Dimensionen können Sie die Ergebnisse mehrerer Datenqualitätsregeln für Monitoring und Benachrichtigungen. Jede Datenqualitätsregel muss einer Dimension. 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 angegebenes Format.
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 auf eine Datenquellentabelle und alle
Vorbedingungsfilter mit dem Datenverweisparameter ${data()}
in
anstatt die Quelltabelle und ihre Filter
ausdrücklich zu erwähnen.
Dataplex interpretiert den Parameter als Verweis auf die Quelle
Tabelle und ihre Filter. Beispiele für Vorbedingungsfilter sind Zeilenfilter,
Stichprobenprozentsatz und inkrementelle Filter.
Angenommen, Sie haben eine Datenquellentabelle mit dem Namen
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 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 mit dem ${data()}
Parameter:
discount_pct IN (SELECT discount_pct FROM ${data()})
Dataplex interpretiert den Parameter ${data()}
als
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 Parameter „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,
Sie können entweder den Parameter „Datenverweis“ verwenden, um auf die Quelltabelle zu verweisen, oder
der Tabellenreferenz. Verweisen Sie nicht auf die Spalten in der Quelltabelle durch Verwendung eines
direkte Tabellenreferenz in der WHERE
-Klausel.
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. Alternativ können Sie führen Sie bei Bedarf einen Scan aus. Zur Verwaltung von Datenqualitätsscans können Sie die API oder den Google Cloud Console
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. Bis
Schritte festlegen, geben Sie eine
Date
/Timestamp
-Spalte in der 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 Zeilenfiltern können Sie sich auf Daten in einem bestimmten für einen bestimmten Zeitraum oder ein bestimmtes Segment, zum Beispiel eine bestimmte Region, Mit Filtern können Sie Ausführungszeit und Kosten reduzieren, z. B. durch das Herausfiltern von Daten mit einem Zeitstempel vor einem bestimmten Datum liegt.
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 kleinerer Datenstichproben kann die Ausführungszeit und die Kosten für die ganzes Dataset.
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 Bearbeitung in eine BigQuery-Tabelle exportieren, Analyse. Um die Berichterstellung anzupassen, können Sie Tabellendaten in ein Looker-Dashboard. Sie können einen aggregierten 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 im BigQuery- und Data Catalog-Seiten in der Google Cloud Console Die letzten Ergebnisse des Scans finden Sie hier: Datenqualität der Quelltabelle.
Datenqualitätswerte überprüfen
Jedes Scanergebnis liefert Datenqualitätsfaktoren, die den Prozentsatz der bestandene Regeln. Die Punktzahlen werden auf Jobebene insgesamt gemeldet, Ebene (wenn die Regel anhand einer Spalte ausgewertet wird) und die Dimensionsebene. Verwenden Sie die Datenqualitätswerte, um die Datenqualität tabellen- oder spaltenübergreifend zu normalisieren, Trends zu verfolgen und Daten zu identifizieren, die die Qualitätsanforderungen nicht erfüllen.
Weitere Informationen finden Sie unter Sehen Sie sich die Ergebnisse des Datenqualitätsscans an.
Monitoring und Benachrichtigungen
Mit dem folgenden Befehl können Sie Datenqualitätsscans überwachen und Benachrichtigungen dazu erhalten: Methoden:
Benachrichtigungen in Cloud Logging festlegen
Sie können die Datenqualitätsjobs mit
data_scan
unddata_quality_scan_rule_result
-Logs im Log-Explorer.Für jeden Datenqualitätsjob das
data_scan
-Log mit dem Felddata_scan_type
DATA_QUALITY
enthält 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 erfolgreich ausgeführte Job enthält ein
data_quality_scan_rule_result
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, bestandene Zeilen Anzahl, Nullzeilenanzahl und ausgewertete Zeilenanzahl.
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 verfügbar für folgenden Szenarien:
- 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.
Probleme mit der Datenqualität beheben
Wenn eine Regel fehlschlägt, erstellt Dataplex eine Abfrage, um die fehlgeschlagene Datensätze. Führen Sie diese Abfrage aus, um die Datensätze anzuzeigen, die nicht mit Ihrer Regel übereinstimmen. Für finden Sie unter Probleme mit der Datenqualität beheben
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 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 unterstützt nur in der API.
Preise
Dataplex verwendet die Premium-Verarbeitungs-SKU, um die automatische Datenqualität. 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 die gescannten Daten, die Konfiguration der Datenqualitätsregel, Partitionierungs- und Clustering-Einstellungen für die Tabelle sowie die Häufigkeit der gscan.
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