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

  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

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 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, 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:
  • Prozentsatz 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 „<“ verwendet statt "<=".
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert bei der Regelprüfung.
NonNullExpectation
(Nullprüfung)
Zeilenebene Validiert, dass Spaltenwerte nicht NULL sind. Alle unterstützten Spaltentypen. Erforderlich: <ph type="x-smartling-placeholder">
    </ph>
  • Prozentsatz für bestandene Mindesteinnahmen.
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:
  • Satz der Stringwerte, die geprüft werden sollen.
  • Prozentsatz für bestandene Mindesteinnahmen.
Optional:
  • ignore null“ aktivieren: Wenn diese Option aktiviert ist, werden Nullwerte ignoriert in bei der Regelprüfung.
RegexExpectation
(Überprüfung regulärer Ausdrücke)
Zeilenebene Überprüfen Sie die Werte mit einem angegebenen regulären Ausdruck. String Erforderlich:
  • Muster für reguläre Ausdrücke zur Überprüfung.
  • Prozentsatz für bestandene Mindesteinnahmen.
  • Hinweis: Google Standard-SQL bietet Unterstützung regulärer Ausdrücke mithilfe des 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 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>
  • 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 Überprüfen Sie, ob das angegebene statistische Maß mit der Bereichserwartung übereinstimmt. Alle unterstützten numerischen Spaltentypen. Erforderlich: <ph type="x-smartling-placeholder">
    </ph>
  • 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

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 WHERE-Klausel. Der SQL-Ausdruck sollte als true (bestanden) oder false (nicht bestanden) auswerten pro Zeile. Dataplex berechnet den Prozentsatz der übergebenen Zeilen Erwartung und vergleicht diesen Wert mit dem Prozentsatz, der zum Bestehen erforderlich ist. um den Erfolg oder Misserfolg der Regel zu ermitteln.

Der Ausdruck kann einen Verweis auf eine andere Tabelle enthalten, um beispielsweise referenzielle Integritätsprüfungen.

Alle Spalten Erforderlich: <ph type="x-smartling-placeholder">
    </ph>
  • 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 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: <ph type="x-smartling-placeholder">
    </ph>
  • 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 zum Vergleichen von Werten in einer anderen Tabelle:
(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 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">
    </ph>
  • 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 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, oder können Sie bei Bedarf einen Scan ausführen. 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 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 und data_quality_scan_rule_result-Logs im Log-Explorer.

    Für jeden Datenqualitätsjob das data_scan-Log mit dem Feld data_scan_type festgelegt auf 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:

  • Trennen Sie Gebühren für die Datenqualität von anderen Gebühren in Dataplex Premium-Verarbeitungs-SKU, verwenden Sie das Label goog-dataplex-workload-type mit dem Wert DATA_QUALITY.

  • Sie können zusammengefasste Gebühren filtern. Verwenden Sie die folgenden Labels:

    • 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