Automatische Datenqualität – Übersicht

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 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 zur Datenproduktion verbessert wird.

Für den Einstieg können 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

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

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. 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:

  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 haben folgende Möglichkeiten, Datenqualitätsregeln zu erstellen:

Vordefinierte Regeln

Dataplex unterstützt zwei Kategorien vordefinierter Regeln: auf Zeilenebene oder und Aggregate.

Zeilenebene

Bei Kategorieregeln auf Zeilenebene wird die Erwartung auf jede Datenzeile angewendet. Für jede Zeile wird unabhängig geprüft, ob die Bedingung erfüllt ist. 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 dass der Prozentsatz der Zeilen, für die die Regel gilt, unter den Grenzwert fällt, gilt die Regel schlägt fehl.

Aggregat

Bei zusammengefassten Regeln wird die Erwartung auf einen einzelnen Wert angewendet, der aus den gesamten Daten aggregiert wurde. 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 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 „min“ und „max“ liegt. Alle numerischen Spalten, Datums- und Zeitstempelspalten. Erforderlich:
  • Prozentsatz zum Bestehen
  • 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 "<=".
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert bei der Regelprüfung.
NonNullExpectation
(Null-Prüfung)
Zeilenebene Validiert, dass Spaltenwerte nicht NULL sind. Alle unterstützten Spaltentypen. Erforderlich:
  • Prozentsatz für bestandene Mindesteinnahmen.
SetExpectation
(Bestätigung festlegen)
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:
  • Satz der Stringwerte, die geprüft werden sollen.
  • 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)
Zeilenebene Prüft die Werte auf einen angegebenen regulären Ausdruck. String Erforderlich:
  • Regulärer Ausdruck, der für die Prüfung verwendet wird.
  • Prozentsatz für bestandene Mindesteinnahmen.
  • Hinweis: Google Standard-SQL bietet Unterstützung regulärer Ausdrücke mithilfe der re2-Bibliothek; Weitere Informationen finden Sie unter Dokumentation über die Syntax für reguläre Ausdrücke.
Optional:
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert in bei der Regelprüfung.
Uniqueness
(Eindeutigkeitsprüfung)
Aggregat Prüfen, ob alle Werte in einer Spalte eindeutig sind Alle unterstützten Spaltentypen, mit Ausnahme von Record und Struct. Erforderlich:
  • Spalte und Dimension aus den unterstützten Parameter.
Optional:
  • ignore null aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte bei der Regelprüfung ignoriert.
StatisticRangeExpectation
(Statistische Prü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 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 WHERE-Klausel. Der SQL-Ausdruck sollte pro Zeile den Wert true (bestanden) oder false (nicht bestanden) ergeben. 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, um beispielsweise referenzielle Integritätsprüfungen.

Alle Spalten Erforderlich:
  • Zu verwendende SQL-Bedingung
  • Mindestprozentsatz 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 wird als boolescher Wert true (bestanden) oder false (fehlgeschlagen) ausgewertet.

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

Mit einer Ausdrucks-Subquery Werte in einer anderen Tabelle 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. SQL-Anweisung angeben die ausgewertet wird, um Zeilen zurückzugeben, die mit dem ungültigen Status übereinstimmen. Wenn der Parameter gibt die Regel Zeilen zurück.

Lassen Sie das nachgestellte Semikolon aus der SQL-Anweisung weg.

Die SQL-Anweisung kann mithilfe von Ausdruck-Unterabfragen auf eine andere Tabelle verweisen.

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 zum Vergleichen von Werten in einer anderen Tabelle:
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 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

Tastatureingabe in Regeln

Alle Wertparameter werden als Stringwerte an die API übergeben. Dataplex erfordert Eingaben, die dem Von BigQuery angegebenes Format.

Parameter vom Typ „Binary“ 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]
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]] 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 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 „Datenreferenz“ 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.

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 können Sie bei Bedarf einen Scan 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 Umfang eines Jobs 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

In Dataplex können Sie mithilfe eines Zeilenfilters Daten filtern, die auf Datenqualität geprüft werden sollen. 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 Analyse in eine BigQuery-Tabelle exportieren. 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ätsfaktoren prü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. 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 einrichten

    Sie können die Datenqualitätsjobs mit data_scan und data_quality_scan_rule_result-Logs im Log-Explorer.

    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 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-Protokoll 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 folgende Szenarien:

    • Der Datenqualitätsfaktor ist niedriger als ein angegebener Zielwert.
    • Der Job ist fehlgeschlagen
    • Der Job ist 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 Einträge zu sehen, die nicht mit Ihrer Regel übereinstimmen. Für 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 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 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