Automatische Datenqualität – Übersicht

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

Bei einem Datenqualitätsscan werden Qualitätsregeln auf Tabellendaten angewendet, um Ergebnisse zu erfassen.

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:

  1. Datenqualitätsregeln definieren
  2. Regelausführung konfigurieren
  3. Ergebnisse des Datenqualitätsscans analysieren
  4. Monitoring und Benachrichtigungen einrichten
  5. 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:

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 Wert true. 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:
  • Prozentsatz für den Grenzwert zum Bestehen
  • Werte für mean, min oder max: Angeben mindestens einen Wert.
Optional:
  • strict min aktivieren: Wenn diese Option aktiviert ist, verwendet die Regelprüfung ">" statt ">=".
  • strict max aktivieren: Wenn diese Option aktiviert ist, wird bei der Regelprüfung „<“ statt „<=“ verwendet.
  • ignore null aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte bei der Regelprüfung ignoriert.
NonNullExpectation
(Null-Prüfung)
Zeilenebene Prüfen Sie, ob die Spaltenwerte nicht NULL sind. Alle unterstützten Spaltentypen. Erforderlich:
  • Prozentsatz des Grenzwerts zum Bestehen.
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:
  • Stringwerte, mit denen verglichen werden soll.
  • Prozentsatz des Grenzwerts zum Bestehen.
Optional:
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert in bei der Regelprüfung.
RegexExpectation
(Regulärer Ausdruck prüfen)
Auf Zeilenebene Die Werte werden mit einem bestimmten regulären Ausdruck verglichen. String Erforderlich:
  • Muster für reguläre Ausdrücke zur Überprüfung.
  • Prozentsatz für bestandene Mindesteinnahmen.
  • Hinweis: Google-Standard-SQL bietet eine Unterstützung für reguläre Ausdrücke mit der re2-Bibliothek. Weitere Informationen zur Syntax regulärer Ausdrücke finden Sie in der zugehörigen Dokumentation.
Optional:
  • ignore null aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte bei der Regelprüfung ignoriert.
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:
  • Spalte und Dimension aus den unterstützten Parameter.
Optional:
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert in bei der Regelprüfung.
StatisticRangeExpectation
(Statistikprüfung)
Aggregat Prüfen, ob der angegebene statistische Wert mit der erwarteten Spanne übereinstimmt Alle unterstützten numerischen Spaltentypen. Erforderlich:
  • mean, min oder max-Werte: Geben Sie mindestens einen Wert an.
Optional:
  • strict min aktivieren: Wenn diese Option aktiviert ist, verwendet die Regelprüfung ">" statt ">=".
  • strict max aktivieren: Wenn diese Option aktiviert ist, wird bei der Regelprüfung „<“ verwendet statt "<=".

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 WHERE-Klausel definieren. Der SQL-Ausdruck sollte als true (bestanden) oder false (nicht bestanden) auswerten pro Zeile. Dataplex berechnet den Prozentsatz der Zeilen, die diese Erwartung erfüllen, und vergleicht diesen Wert mit dem Prozentsatz des Grenzwerts, um den Erfolg oder Misserfolg der Regel zu bestimmen.

Der Ausdruck kann einen Verweis auf eine andere Tabelle enthalten, z. B. um Überprüfungen der referenziellen Integrität zu erstellen.

Alle Spalten Erforderlich:
  • Zu verwendende SQL-Bedingung
  • Prozentsatz zum Bestehen
  • Dimension
Optional:
  • Spalte, mit der diese Regel verknüpft werden soll.
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 true (bestanden) oder false (nicht bestanden) ausgewertet wird.

Der SQL-Ausdruck kann Verweisen Sie mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle.

Alle Spalten Erforderlich:
  • Zu verwendende SQL-Bedingung
  • Dimension
Optional:
  • Spalte, mit der diese Regel verknüpft werden soll

Beispiel für eine einfache Aggregation:
avg(price) > 100

Verwenden einer Ausdruck-Unterabfrage, um Werte über eine andere Tabelle hinweg zu vergleichen:
(SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*)

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:
  • SQL-Anweisung zum Prüfen des ungültigen Status
  • Dimension
Optional:
  • Spalte, mit der diese Regel verknüpft werden soll.

Einfaches Aggregationsbeispiel, um sicherzustellen, dass discount_pct ist nicht größer als 100:
SELECT * FROM example_project.example_dataset.table WHERE discount_pct > 100

Verwenden einer Ausdruck-Unterabfrage, um Werte über eine andere Tabelle hinweg zu vergleichen:
SELECT * FROM `example_project.example_dataset.different-table` WHERE gross_weight > (SELECT avg(gross_weight) FROM `example_project.example_dataset.different-table`)

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- und data_quality_scan_rule_result-Logs im Log-Explorer überwachen.

    Für jeden Job zur Datenqualität enthält das data_scan-Log mit dem Feld data_scan_type, das auf DATA_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 Wert DATA_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