Automatische Datenqualität verwenden

Auf dieser Seite wird beschrieben, wie Sie einen Dataplex-Datenqualitätsscan erstellen.

Weitere Informationen zu Datenqualitätsscans finden Sie unter Informationen zur automatischen Datenqualität.

Hinweise

Aktivieren Sie die Dataplex API.

API aktivieren

Berechtigungen

  • Zum Ausführen eines Datenqualitätsscans für eine BigQuery-Tabelle benötigen Sie die Berechtigung zum Lesen der BigQuery-Tabelle und die Berechtigung zum Erstellen eines BigQuery-Jobs in dem Projekt, das zum Scannen der Tabelle verwendet wird.

  • Wenn sich die BigQuery-Tabelle und der Datenqualitätsscan in verschiedenen Projekten befinden, müssen Sie dem Dataplex-Dienstkonto des Projekts, das die Leseberechtigung für den Datenqualitätsscan enthält, die Leseberechtigung für die entsprechende BigQuery-Tabelle erteilen.

  • Wenn sich die Datenqualitätsregeln auf zusätzliche Tabellen beziehen, muss das Dienstkonto des Scanprojekts Leseberechtigungen für dieselben Tabellen haben.

  • Bitten Sie Ihren Administrator, dem Dataplex-Dienstkonto die IAM-Rolle „BigQuery Data Editor“ (roles/bigquery.dataEditor) für das Ergebnis-Dataset und die Ergebnistabelle zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Exportieren der Scanergebnisse in eine BigQuery-Tabelle benötigen. Dadurch werden die folgenden Berechtigungen gewährt:

    • bigquery.datasets.get
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.getData
    • bigquery.tables.update
    • bigquery.tables.updateData
  • Wenn die BigQuery-Daten in einem Dataplex-Lake organisiert sind, gewähren Sie dem Dataplex-Dienstkonto die Rollen roles/dataplex.metadataReader und roles/dataplex.viewer. Alternativ benötigen Sie alle der folgenden Berechtigungen:

    • dataplex.lakes.list
    • dataplex.lakes.get
    • dataplex.zones.list
    • dataplex.zones.get
    • dataplex.entities.list
    • dataplex.entities.get
    • dataplex.operations.get
  • Wenn Sie eine externe BigQuery-Tabelle aus Cloud Storage scannen, weisen Sie dem Dataplex-Dienstkonto die Cloud Storage-Rolle roles/storage.objectViewer für den Bucket zu. Alternativ können Sie dem Dataplex-Dienstkonto die folgenden Berechtigungen zuweisen:

    • storage.buckets.get
    • storage.objects.get
  • Wenn Sie die Ergebnisse des Datenqualitätsscans auf den BigQuery- und Data Catalog-Seiten in der Google Cloud Console für die Quelltabellen veröffentlichen möchten, muss Ihnen entweder die IAM-Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor) oder die Berechtigung bigquery.tables.update für die Tabelle gewährt worden sein.

  • Wenn Sie auf Spalten zugreifen müssen, die durch BigQuery-Zugriffsrichtlinien auf Spaltenebene geschützt sind, weisen Sie diesen Spalten die Berechtigungen des Dataplex-Dienstkontos zu. Der Nutzer, der einen Datenscan erstellt oder aktualisiert, benötigt auch Berechtigungen für die Spalten.

  • Wenn für eine Tabelle BigQuery-Zugriffsrichtlinien auf Zeilenebene aktiviert sind, können Sie nur Zeilen scannen, die für das Dataplex-Dienstkonto sichtbar sind. Die Zugriffsberechtigungen der einzelnen Nutzer werden bei Richtlinien auf Zeilenebene nicht ausgewertet.

Berechtigungen und Rollen für Datenscans

Zur Verwendung der automatischen Datenqualität benötigen Sie entweder die Berechtigungen zum Ausführen von Datenscans oder eine Rolle mit vordefinierten Berechtigungen zum Ausführen von Datenscans.

In der folgenden Tabelle sind die DataScan-Berechtigungen aufgeführt:

Name der Berechtigung Gewährt die Berechtigung für folgende Aktionen:
dataplex.datascans.create DataScan erstellen
dataplex.datascans.delete DataScan löschen
dataplex.datascans.get Operative Metadaten wie ID oder Zeitplan aufrufen, aber nicht Ergebnisse und Regeln
dataplex.datascans.getData Details zu DataScan ansehen, einschließlich Regeln und Ergebnisse
dataplex.datascans.list DataScan auflisten
dataplex.datascans.run DataScan ausführen
dataplex.datascans.update Beschreibung von DataScan aktualisieren
dataplex.datascans.getIamPolicy Aktuelle IAM-Berechtigungen für den Scan ansehen
dataplex.datascans.setIamPolicy IAM-Berechtigungen für den Scan festlegen

Gewähren Sie Nutzern eine oder mehrere der folgenden Rollen:

  • roles/dataplex.dataScanAdmin: Vollständiger Zugriff auf DataScan Ressourcen.
  • roles/dataplex.dataScanEditor: Schreibzugriff auf DataScan Ressourcen.
  • roles/dataplex.dataScanViewer: Lesezugriff auf DataScan-Ressourcen mit Ausnahme von Regeln und Ergebnissen.
  • roles/dataplex.dataScanDataViewer: Lesezugriff auf DataScan-Ressourcen, einschließlich Regeln und Ergebnisse.

Datenqualitätsregeln definieren

Sie können Regeln für die Datenqualität mithilfe von integrierten Regeln oder benutzerdefinierten SQL-Prüfungen definieren. Wenn Sie die Google Cloud CLI verwenden, können Sie diese Regeln in einer JSON- oder YAML-Datei definieren.

Die Beispiele in den folgenden Abschnitten zeigen, wie Sie verschiedene Datenqualitätsregeln definieren können. Mithilfe der Regeln wird eine Beispieltabelle mit Daten zu Kundentransaktionen validiert. Angenommen, die Tabelle hat das folgende Schema:

Spaltenname Spaltentyp Spaltenbeschreibung
transaction_timestamp Zeitstempel Zeitstempel der Transaktion. Die Tabelle ist nach diesem Feld partitioniert.
customer_id String Eine Kundennummer mit 8 Buchstaben gefolgt von 16 Ziffern.
transaction_id String Die Transaktions-ID darf in der Tabelle nur einmal vorkommen.
currency_id String Eine der unterstützten Währungen.Der Währungstyp muss mit einer der verfügbaren Währungen in der Dimensionstabelle dim_currency übereinstimmen.
Menge float Transaktionsbetrag.
discount_pct float Rabattprozentsatz Dieser Wert muss zwischen 0 und 100 liegen.

Datenqualitätsregeln mit integrierten Regeltypen definieren

Die folgenden Beispielregeln basieren auf integrierten Regeltypen. Sie können Regeln anhand von integrierten Regeltypen mit der Google Cloud Console oder der API erstellen. Dataplex empfiehlt möglicherweise einige dieser Regeln.

Spaltenname Regeltyp Vorgeschlagene Dimension Regelparameter
transaction_id Eindeutigkeitsprüfung Eindeutigkeit Threshold: Not Applicable (Grenzwert: 500)
amount Nullprüfung Vollständigkeit Threshold: 100% (Grenzwert: 500)
customer_id Prüfung mit Regex (regulärer Ausdruck) Gültigkeit Regulärer Ausdruck: ^[0-9]{8}[a-zA-Z]{16}$
Grenzwert: 100%
currency_id Wertesatzprüfung Gültigkeit Satz aus: USD,JPY,INR,GBP,CAN
Schwellenwert: 100%

Datenqualitätsregeln mit benutzerdefinierten SQL-Regeln definieren

Verwenden Sie das folgende Framework, um benutzerdefinierte SQL-Regeln zu erstellen:

  • Wenn Sie eine Regel erstellen, die eine Zeile nach der anderen auswertet, erstellen Sie einen Ausdruck, der die Anzahl der erfolgreichen Zeilen generiert, wenn Dataplex die Abfrage SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE auswertet. Dataplex prüft die Anzahl der erfolgreichen Zeilen anhand des Schwellenwerts.

  • Wenn Sie eine Regel erstellen, die Daten für alle Zeilen auswertet oder eine aggregierte SQL-Prüfung verwendet, erstellen Sie einen Ausdruck, der Erfolg oder Misserfolg zurückgibt, wenn Dataplex die Abfrage SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE auswertet.

  • Wenn Sie eine Regel erstellen, die den ungültigen Status eines Datasets auswertet, geben Sie eine Anweisung an, die ungültige Zeilen zurückgibt. Wenn Zeilen zurückgegeben werden, schlägt die Regel fehl. Lassen Sie das nachgestellte Semikolon in der SQL-Anweisung weg.

  • Sie können auf eine Datenquellentabelle und alle ihre Vorbedingungsfilter verweisen, indem Sie den Datenreferenzparameter ${data()} in einer Regel verwenden, anstatt die Quelltabelle und ihre Filter explizit zu erwähnen. Beispiele für Vorbedingungsfilter sind Zeilenfilter, Stichproben in Prozent und inkrementelle Filter. Beim Parameter ${data()} wird zwischen Groß- und Kleinschreibung unterschieden.

Die folgenden Beispielregeln basieren auf benutzerdefinierten SQL-Regeln.

Regeltyp Regelbeschreibung SQL-Ausdruck
Zeilenbedingung Prüft, ob der Wert von discount_pct zwischen 0 und 100 liegt. 0 <discount_pct UND discount_pct < 100
Zeilenbedingung Referenzprüfung, um zu bestätigen, dass currency_id eine der unterstützten Währungen ist. currency_id in (select id from my_project_id.dim_dataset.dim_currency)
Aggregat-SQL-Ausdruck Überprüft, ob der durchschnittliche discount_pct zwischen 30% und 50 % liegt. 30<avg(discount) AND avg(discount) <50
Zeilenbedingung Überprüft, ob ein Datum nicht in der Zukunft liegt. TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
Aggregat-SQL-Ausdruck Eine benutzerdefinierte BigQuery-Funktion (UDF), mit der geprüft wird, ob der durchschnittliche Transaktionsbetrag unter einem vordefinierten Wert pro Land liegt. Erstellen Sie die UDF (JavaScript) mit dem folgenden Befehl:
        CREATE OR REPLACE FUNCTION
        myProject.myDataset.average_by_country (
          country STRING, average FLOAT64)
        RETURNS BOOL LANGUAGE js AS R"""
        if (country = "CAN" && average < 5000){
          return 1
        } else if (country = "IND" && average < 1000){
          return 1
        } else { return 0 }
        """;
       
Beispielregel zur Überprüfung des durchschnittlichen Transaktionsbetrags für country=CAN.
        myProject.myDataset.average_by_country(
        "CAN",
        (SELECT avg(amount) FROM
          myProject.myDataset.transactions_table
            WHERE currency_id = 'CAN'
        ))
      
Aggregat-SQL-Ausdruck Eine BigQuery ML-Vorhersageklausel zum Identifizieren von Anomalien in discount_pct. Anhand von customer, currency und transaction wird geprüft, ob ein Rabatt angewendet werden sollte. Die Regel prüft zu mindestens 99 %, ob die Vorhersage mit dem tatsächlichen Wert übereinstimmt. Annahme: Das ML-Modell wird vor Verwendung der Regel erstellt. Erstellen Sie das ML-Modell mit dem folgenden Befehl:
  CREATE MODEL
  model-project-id.dataset-id.model-name
        OPTIONS(model_type='logistic_reg') AS
  SELECT
  IF(discount_pct IS NULL, 0, 1) AS label,
  IFNULL(customer_id, "") AS customer,
  IFNULL(currency_id, "") AS currency,
  IFNULL(amount, 0.0) AS amount
  FROM
  `data-project-id.dataset-id.table-names`
  WHERE transaction_timestamp < '2022-01-01';
  
Die folgende Regel prüft, ob die Vorhersagegenauigkeit größer als 99 % ist.
      SELECT
        accuracy > 0.99
      FROM
       ML.EVALUATE
        (MODEL model-project-id.dataset-id.model-name,
         (
          SELECT
            customer_id,
            currency_id,
            amount,
            discount_pct
          FROM
            data-project-id.dataset-id.table-names
          WHERE transaction_timestamp > '2022-01-01';
         )
        )
    
Zeilenbedingung Eine BigQuery ML-Vorhersagefunktion zum Identifizieren von Anomalien in discount_pct. Die Funktion prüft anhand von customer, currency und transaction, ob ein Rabatt angewendet werden sollte. Die Regel identifiziert alle Vorkommen, bei denen die Vorhersage nicht übereinstimmte. Annahme: Das ML-Modell wird vor Verwendung der Regel erstellt. Erstellen Sie das ML-Modell mit dem folgenden Befehl:
  CREATE MODEL
  model-project-id.dataset-id.model-name
        OPTIONS(model_type='logistic_reg') AS
  SELECT
  IF(discount_pct IS NULL, 0, 1) AS label,
  IFNULL(customer_id, "") AS customer,
  IFNULL(currency_id, "") AS currency,
  IFNULL(amount, 0.0) AS amount
  FROM
  `data-project-id.dataset-id.table-names`
  WHERE transaction_timestamp < '2022-01-01';
  
Mit der folgenden Regel wird für jede Zeile geprüft, ob die Rabattvorhersage mit dem tatsächlichen Wert übereinstimmt.
       IF(discount_pct > 0, 1, 0)
          =(SELECT predicted_label FROM
           ML.PREDICT(
            MODEL model-project-id.dataset-id.model-name,
              (
                SELECT
                  customer_id,
                  currency_id,
                  amount,
                  discount_pct
                FROM
                  data-project-id.dataset-id.table-names AS t
                    WHERE t.transaction_timestamp =
                     transaction_timestamp
                   LIMIT 1
              )
            )
         )
    
SQL-Assertion Prüft, ob discount_pct für heute größer als 30% ist. Dazu wird geprüft, ob Zeilen mit einem Rabattprozentsatz von weniger oder gleich 30 vorhanden sind. SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date()
SQL-Assertion (mit Datenreferenzparameter)

Prüft, ob discount_pct für alle derzeit unterstützten Währungen größer als 30% ist.

Der Datumsfilter transaction_timestamp >= current_date() wird als Zeilenfilter auf die Datenquellentabelle angewendet.

Der Datenreferenzparameter ${data()} dient als Platzhalter für my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date() und wendet den Zeilenfilter an.

SELECT * FROM ${data()} WHERE discount_pct > 30

Datenqualitätsregeln mit der gcloud CLI definieren

Die folgende YAML-Beispieldatei verwendet dieselben Regeln wie die Beispielregeln mit integrierten Typen und die Beispielregeln für benutzerdefinierte SQL-Regeln. Sie können diese YAML-Datei als Eingabe für den gcloud CLI-Befehl verwenden.

rules:
- uniquenessExpectation: {}
  column: transaction_id
  dimension: UNIQUENESS
- nonNullExpectation: {}
  column: amount
  dimension: COMPLETENESS
  threshold: 1
- regexExpectation:
  regex: '^[0-9]{8}[a-zA-Z]{16}$'
  column : customer_id
  ignoreNull : true
  dimension : VALIDITY
  threshold : 1
- setExpectation :
  values :
  - 'USD'
  - 'JPY'
  - 'INR'
  - 'GBP'
  - 'CAN'
  column : currency_id
  ignoreNull : true
  dimension : VALIDITY
  threshold : 1
- rowConditionExpectation:
    sqlExpression : 0 < `discount_pct` AND `discount_pct` < 100
  column: discount_pct
  dimension: VALIDITY
  threshold: 1
- rowConditionExpectation:
    sqlExpression : currency_id in (select id from `my_project_id.dim_dataset.dim_currency`)
  column: currency_id
  dimension: VALIDITY
  threshold: 1
- tableConditionExpectation:
    sqlExpression : 30 < avg(discount_pct) AND avg(discount_pct) < 50
  dimension: VALIDITY
- rowConditionExpectation:
    sqlExpression : TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
  column: transaction_timestamp
  dimension: VALIDITY
  threshold: 1

Datenqualitätsscan erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.

    Zur Datenqualität

  2. Klicken Sie auf Datenqualitätsscan erstellen.

  3. Füllen Sie im Fenster Scan definieren die folgenden Felder aus:

    1. Geben Sie einen Anzeigenamen ein.

    2. Die Scan-ID wird automatisch generiert, wenn Sie keine eigene ID angeben. Siehe Namenskonvention für Ressourcen.

    3. Optional: Geben Sie eine Beschreibung ein.

    4. Klicken Sie im Feld Tabelle auf Durchsuchen, wählen Sie die gewünschte Tabelle aus und klicken Sie auf Auswählen. Dataplex unterstützt nur BigQuery-Standardtabellen.

      Wählen Sie für Tabellen in multiregionalen Datasets eine Region aus, in der der Datenscan erstellt werden soll.

      Klicken Sie auf In Dataplex-Lakes durchsuchen, um die im Dataplex-Lake organisierten Tabellen zu durchsuchen.

    5. Wählen Sie im Feld Umfang die Option Inkrementell oder Gesamte Daten aus.

      • Bei Auswahl von Inkrementell: Wählen Sie im Feld Zeitstempelspalte eine Spalte vom Typ DATE oder TIMESTAMP aus der BigQuery-Tabelle aus, die monoton zunimmt und zum Identifizieren neuer Datensätze verwendet werden kann. Das kann eine Spalte sein, die die Tabelle partitioniert.
    6. Optional: Fügen Sie Labels hinzu. Labels sind key:value-Paare, mit denen Sie verwandte Objekte zusammen oder mit anderen Google Cloud-Ressourcen gruppieren können.

    7. Klicken Sie auf Filter, um die Daten zu filtern. Klicken Sie das Kästchen Zeilen filtern an. Der Eingabewert für den Zeilenfilter muss ein gültiger SQL-Ausdruck sein, der als Teil einer WHERE-Klausel in der BigQuery-Standard-SQL-Syntax verwendet werden kann. Beispiel: col1 >= 0 Der Filter kann eine Kombination aus mehreren Spaltenbedingungen sein. Beispiel: col1 >= 0 AND col2 < 10.

    8. Wählen Sie in der Liste Stichprobengröße einen Stichprobenprozentsatz aus, damit Stichproben für Ihre Daten erhoben werden. Wählen Sie einen Prozentsatz zwischen 0,0% und 100,0% mit bis zu drei Dezimalstellen aus. Wählen Sie bei größeren Datasets einen niedrigeren Prozentsatz für die Stichprobenerhebung aus. Wenn Sie beispielsweise bei einer Tabelle mit ca. 1 PB einen Wert zwischen 0, 1% und 1, 0 % eingeben, nimmt Dataplex Stichproben zwischen 1 und 10 TB an Daten. Bei inkrementellen Datenscans wendet Dataplex Stichproben auf das neueste Inkrement an.

    9. Klicken Sie auf das Kästchen Ergebnisse in BigQuery und Dataplex-Katalog-UI veröffentlichen, um die Ergebnisse des Datenqualitätsscans auf den Seiten von BigQuery und Data Catalog in der Google Cloud Console für die Quelltabelle zu veröffentlichen. Sie können die letzten Scanergebnisse auf dem Tab Datenqualität der BigQuery- und Data Catalog-Seiten der Quelltabelle ansehen. Informationen dazu, wie Sie Nutzern den Zugriff auf die veröffentlichten Scanergebnisse ermöglichen, finden Sie unter Veröffentlichte Ergebnisse freigeben. In den folgenden Fällen ist die Veröffentlichungsoption möglicherweise nicht verfügbar:

      • Sie haben nicht die erforderlichen Berechtigungen für die Tabelle.
      • Ein anderer Datenqualitätsscan ist so eingestellt, dass Ergebnisse veröffentlicht werden.

      Weitere Informationen zu den Berechtigungen, die zum Ansehen der veröffentlichten Ergebnisse erforderlich sind, finden Sie unter Berechtigungen.

    10. Klicken Sie auf Weiter.

  4. Wählen Sie im Fenster Zeitplan eine der folgenden Optionen aus:

    • Wiederholen: Führen Sie den Datenqualitätsscanjob nach einem Zeitplan aus: täglich, wöchentlich, monatlich oder benutzerdefiniert. Geben Sie an, wie oft und zu welcher Zeit der Scan ausgeführt werden soll. Wenn Sie „Benutzerdefiniert“ auswählen, geben Sie den Zeitplan im Cron-Format an.

    • On-Demand: Führen Sie Ihren Datenqualitätsscanjob nach Bedarf aus.

    Klicken Sie auf Weiter.

  5. Definieren Sie im Fenster Datenqualitätsregeln die Regeln, die für diesen Datenqualitätsscan konfiguriert werden sollen. Klicken Sie auf Regeln hinzufügen und wählen Sie dann eine der folgenden Optionen aus.

    • Profilbasierte Empfehlungen: Erstellen Sie Regeln aus den Empfehlungen, die auf einem vorhandenen Datenprofilscan basieren.

      1. Spalten auswählen: Wählen Sie die Spalten aus, für die empfohlene Regeln angezeigt werden sollen.

      2. Projekt scannen: Empfehlungen basierend auf einem vorhandenen Scan zur Datenprofilerstellung. Standardmäßig wählt Dataplex Profilscans aus dem Projekt aus, in dem Sie den Datenqualitätsscan erstellen. Wenn Sie den Scan in einem anderen Projekt erstellt haben, müssen Sie das Projekt angeben, aus dem Profilscans abgerufen werden sollen.

      3. Profilergebnisse auswählen: Abhängig von den ausgewählten Spalten und Projekten werden mehrere Profilergebnisse angezeigt.

      4. Wählen Sie ein oder mehrere Profilergebnisse aus und klicken Sie dann auf OK. Dadurch wird eine Liste mit Regeln gefüllt, aus denen ausgewählt werden kann.

      5. Wählen Sie die Regeln aus, die Sie bearbeiten möchten, indem Sie die entsprechenden Kästchen anklicken und dann auf Auswählen klicken. Anschließend werden die Regeln der aktuellen Regelliste hinzugefügt. Anschließend können Sie die Regeln bearbeiten.

    • Integrierte Regeltypen: Sie erstellen Regeln aus vordefinierten Regeln. Liste der vordefinierten Regeln

      1. Spalten auswählen: Wählen Sie die Spalten aus, für die Sie Regeln auswählen möchten.

      2. Regeltypen auswählen: Abhängig von den ausgewählten Spalten werden mehrere Regeltypen zur Auswahl angezeigt.

      3. Wählen Sie einen oder mehrere Regeltypen aus und klicken Sie dann auf OK. Dadurch wird eine Liste mit Regeln gefüllt, aus denen Sie auswählen können.

      4. Wählen Sie die Regeln aus, die Sie bearbeiten möchten, indem Sie die entsprechenden Kästchen anklicken und dann auf Auswählen klicken. Nach der Auswahl werden die Regeln Ihrer aktuellen Regelliste hinzugefügt. Anschließend können Sie die Regeln bearbeiten.

    • Prüfregel für SQL-Zeilen: Erstellen Sie eine benutzerdefinierte SQL-Regel, die auf jede Zeile angewendet wird (benutzerdefinierte SQL-Zeilenprüfungsregel).

      1. Wählen Sie unter Dimension eine Dimension aus.

      2. Wählen Sie unter Bestandsschwellenwert den Prozentsatz der Datensätze aus, die die Prüfung bestehen müssen.

      3. Wählen Sie unter Spaltenname eine Spalte aus.

      4. Geben Sie im Feld SQL-Ausdruck angeben einen SQL-Ausdruck ein, der den booleschen Wert true (bestanden) oder false (fehlgeschlagen) ergibt. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.

      5. Klicken Sie auf Hinzufügen.

    • SQL-Regel für zusammengefasste Prüfung: Erstellen Sie eine benutzerdefinierte SQL-Regel für zusammengefasste Prüfung.

      1. Wählen Sie unter Dimension eine Dimension aus.

      2. Wählen Sie unter Spaltenname eine Spalte aus.

      3. Geben Sie im Feld SQL-Ausdruck angeben einen SQL-Ausdruck ein, der den booleschen Wert true (bestanden) oder false (fehlgeschlagen) ergibt. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.

      4. Klicken Sie auf Hinzufügen.

    • SQL-Assertion-Regel: Erstellen Sie eine benutzerdefinierte SQL-Assertion-Regel, um zu prüfen, ob die Daten einen ungültigen Status haben.

      1. Wählen Sie unter Dimension eine Dimension aus.

      2. Optional: Wählen Sie unter Spaltenname eine Spalte aus.

      3. Geben Sie im Feld SQL-Anweisung angeben eine SQL-Anweisung ein, die Zeilen zurückgibt, die mit dem ungültigen Status übereinstimmen. Wenn Zeilen zurückgegeben werden, schlägt diese Regel fehl. Lassen Sie das nachgestellte Semikolon in der SQL-Anweisung weg. Weitere Informationen finden Sie unter Unterstützte benutzerdefinierte SQL-Regeltypen und in den Beispielen im Abschnitt Datenqualitätsregeln definieren in diesem Dokument.

      4. Klicken Sie auf Hinzufügen.

    Dataplex ermöglicht benutzerdefinierte Namen für Datenqualitätsregeln für Monitoring und Benachrichtigungen. Sie können jeder Datenqualitätsregel optional einen benutzerdefinierten Regelnamen und eine Beschreibung zuweisen. Bearbeiten Sie dazu eine Regel und geben Sie die folgenden Details an:

    • Regelname: Geben Sie einen Namen für eine benutzerdefinierte Regel mit bis zu 63 Zeichen ein. Der Regelname kann Buchstaben (a–z, A–Z), Ziffern (0–9) und Bindestriche (-) enthalten und muss mit einem Buchstaben beginnen und mit einer Ziffer oder einem Buchstaben enden.
    • Beschreibung: Geben Sie eine Regelbeschreibung mit einer maximalen Länge von 1.024 Zeichen ein.

    Klicken Sie auf Weiter.

  6. Optional: Exportieren Sie die Scanergebnisse in eine BigQuery-Standardtabelle. Klicken Sie auf Durchsuchen, um ein vorhandenes BigQuery-Dataset auszuwählen, in dem die Ergebnisse des Datenqualitätsscans gespeichert werden sollen.

    Wenn die angegebene Tabelle nicht vorhanden ist, erstellt Dataplex sie für Sie. Wenn Sie eine vorhandene Tabelle verwenden, achten Sie darauf, dass sie mit dem Exporttabellenschema kompatibel ist.

  7. Klicken Sie auf Erstellen.

    Nachdem der Scan erstellt wurde, können Sie ihn jederzeit ausführen. Klicken Sie dazu auf Jetzt ausführen.

gcloud

Verwenden Sie zum Erstellen eines Datenqualitätsscans den Befehl gcloud dataplex datascans create data-quality.

Wenn die Quelldaten in einem Dataplex-Lake organisiert sind, fügen Sie das Flag --data-source-entity ein:

gcloud dataplex datascans create data-quality DATASCAN \
    --location=LOCATION \
    --data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
    --data-source-entity=DATA_SOURCE_ENTITY

Wenn die Quelldaten nicht in einem Dataplex-Lake organisiert sind, fügen Sie das Flag --data-source-resource hinzu:

gcloud dataplex datascans create data-quality DATASCAN \
    --location=LOCATION \
    --data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
    --data-source-resource=DATA_SOURCE_RESOURCE

Ersetzen Sie die folgenden Variablen:

  • DATASCAN: Der Name des Datenqualitätsscans.
  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt werden soll.
  • DATA_QUALITY_SPEC_FILE: Der Pfad zur JSON- oder YAML-Datei, die die Spezifikationen für den Datenqualitätsscan enthält. Die Datei kann eine lokale Datei oder ein Cloud Storage-Pfad mit dem Präfix gs:// sein. Sie können zusätzliche Felder in dieser Datei angeben, z. B. rules, rowFilter oder samplingPercent. Weitere Informationen finden Sie in der Dokumentation zur JSON-Darstellung.
  • DATA_SOURCE_ENTITY: Die Dataplex-Entität, die die Daten für den Datenqualitätsscan enthält. Beispiel: projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
  • DATA_SOURCE_RESOURCE: Der Name der Ressource, die die Daten für den Datenqualitätsscan enthält. Beispiel: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table

REST

Erstellen Sie mit APIs Explorer einen Datenqualitätsscan.

Tabellenschema exportieren

Wenn Sie die Ergebnisse des Datenqualitätsscans in eine vorhandene BigQuery-Tabelle exportieren möchten, muss sie mit dem folgenden Tabellenschema kompatibel sein:

Spaltenname Datentyp der Spalte Name des Unterfelds
(falls zutreffend)
Datentyp des Unterfelds Modus Beispiel
data_quality_scan struct/record resource_name string Nullwerte zulässig //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan
project_id string Nullwerte zulässig dataplex-back-end-dev-project
location string Nullwerte zulässig us-central1
data_scan_id string Nullwerte zulässig test-datascan
data_source struct/record resource_name string Nullwerte zulässig Entitätsfall:
//dataplex.googleapis.com/projects/dataplex-back-end-dev-project/locations/europe-west2/lakes/a0-datascan-test-lake/zones/a0-datascan-test-zone/entities/table1

Groß-/Kleinschreibung der Tabelle: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
dataplex_entity_project_id string Nullwerte zulässig dataplex-back-end-dev-project
dataplex_entity_project_number integer Nullwerte zulässig 123456789
dataplex_lake_id string Nullwerte zulässig (Nur gültig, wenn die Quelle eine Entität ist.)
test-lake
dataplex_zone_id string Nullwerte zulässig (Nur gültig, wenn die Quelle eine Entität ist.)
test-zone
dataplex_entity_id string Nullwerte zulässig (Nur gültig, wenn die Quelle eine Entität ist.)
test-entity
table_project_id string Nullwerte zulässig test-project
table_project_number integer Nullwerte zulässig 987654321
dataset_id string Nullwerte zulässig (nur gültig, wenn die Quelle eine Tabelle ist)
test-dataset
table_id string Nullwerte zulässig (nur gültig, wenn die Quelle eine Tabelle ist)
test-table
data_quality_job_id string Nullwerte zulässig caeba234-cfde-4fca-9e5b-fe02a9812e38
data_quality_job_configuration json trigger string Nullwerte zulässig ondemand/schedule
incremental boolean Nullwerte zulässig true/false
sampling_percent float Nullwerte zulässig (0–100)
20.0 (gibt 20 % an)
row_filter string Nullwerte zulässig col1 >= 0 AND col2 < 10
job_labels json Nullwerte zulässig {"key1":value1}
job_start_time timestamp Nullwerte zulässig 2023-01-01 00:00:00 UTC
job_end_time timestamp Nullwerte zulässig 2023-01-01 00:00:00 UTC
job_rows_scanned integer Nullwerte zulässig 7500
rule_name string Nullwerte zulässig test-rule
rule_type string Nullwerte zulässig Range Check
rule_evaluation_type string Nullwerte zulässig Per row
rule_column string Nullwerte zulässig Rule only attached to a certain column
rule_dimension string Nullwerte zulässig Uniqueness
job_quality_result struct/record passed boolean Nullwerte zulässig true/false
score float Nullwerte zulässig 90.8
job_dimension_result json Nullwerte zulässig {
"accuracy":{
"passed":true
},
"consistency":{
"passed":false
}
}
rule_threshold_percent float Nullwerte zulässig (0,0–100,0)
Rule-threshold-pct in API * 100
rule_parameters json Nullwerte zulässig {min: 24, max:5345}
rule_pass boolean Nullwerte zulässig True
rule_rows_evaluated integer Nullwerte zulässig 7400
rule_rows_passed integer Nullwerte zulässig 3
rule_rows_null integer Nullwerte zulässig 4
rule_failed_records_query string Nullwerte zulässig "SELECT * FROM `test-project.test-dataset.test-table` WHERE (NOT((`cTime` >= '15:31:38.776361' and `cTime` <= '19:23:53.754823') IS TRUE));"

Beachten Sie beim Konfigurieren von BigQueryExport für einen Datenqualitätsscanjob die folgenden Richtlinien:

  • Verwenden Sie für das Feld resultsTable das folgende Format: //bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}.
  • Verwenden Sie eine BigQuery-Standardtabelle.
  • Wenn die Tabelle beim Erstellen oder Aktualisieren des Scans nicht vorhanden ist, erstellt Dataplex sie für Sie.
  • Standardmäßig wird die Tabelle täglich nach der Spalte job_start_time partitioniert.
  • Wenn Sie die Tabelle in anderen Konfigurationen partitionieren möchten oder nicht, erstellen Sie die Tabelle mit dem erforderlichen Schema und den erforderlichen Konfigurationen neu und geben Sie dann die vorab erstellte Tabelle als Ergebnistabelle an.
  • Achten Sie darauf, dass sich die Ergebnistabelle am selben Speicherort wie die Quelltabelle befindet.
  • Wenn VPC-SC im Projekt konfiguriert ist, muss sich die Ergebnistabelle im selben VPC-SC-Perimeter wie die Quelltabelle befinden.
  • Wenn die Tabelle während der Scanausführungsphase geändert wird, wird der aktuell ausgeführte Job in die vorherige Ergebnistabelle exportiert und die Tabellenänderung wird ab dem nächsten Scanjob wirksam.
  • Ändern Sie das Tabellenschema nicht. Wenn Sie benutzerdefinierte Spalten benötigen, erstellen Sie eine Ansicht der Tabelle.
  • Legen Sie basierend auf Ihrem Anwendungsfall einen Ablauf für die Partition fest, um Kosten zu reduzieren. Weitere Informationen finden Sie unter Ablauf der Partition festlegen.

Datenqualitätsscan ausführen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenqualität auf. Rufen Sie Dataplex Data Quality auf.
  2. Klicken Sie auf den Datenqualitätsscan, um ihn auszuführen.
  3. Klicken Sie auf Jetzt ausführen.

gcloud

Verwenden Sie den Befehl gcloud dataplex datascans run, um einen Datenqualitätsscan auszuführen:

gcloud dataplex datascans run DATASCAN \
--location=LOCATION \

Ersetzen Sie die folgenden Variablen:

  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.
  • DATASCAN: Der Name des Datenqualitätsscans.

REST

Führen Sie mit APIs Explorer den Datenqualitätsscan aus.

Ergebnisse des Datenqualitätsscans ansehen

Console

Die von Ihnen erstellten Datenqualitätsscans werden auf der Seite Datenqualität angezeigt.

Um die detaillierten Ergebnisse eines Scans aufzurufen, klicken Sie auf den Namen des Scans.

  • Im Abschnitt Übersicht finden Sie Informationen zu den letzten sieben Ausführungen. Dazu gehören der Zeitpunkt, zu dem der Scan ausgeführt wurde, die Anzahl der in jedem Job gescannten Datensätze, ob alle Datenqualitätsprüfungen bestanden wurden, ob Fehler aufgetreten sind, wie viele Datenqualitätsprüfungen fehlgeschlagen sind und welche Dimensionen fehlgeschlagen sind.

  • Der Abschnitt Konfiguration des Datenqualitätsscans enthält Details zum Scan.

gcloud

Verwenden Sie den Befehl gcloud dataplex datascans jobs describe, um die Ergebnisse eines Datenqualitätsscanjobs anzusehen:

gcloud dataplex datascans jobs describe JOB \
--location=LOCATION \
--datascan=DATASCAN \
--view=FULL

Ersetzen Sie die folgenden Variablen:

  • JOB: Die Job-ID des Datenqualitätsscanjobs.
  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.
  • DATASCAN: Der Name des Datenqualitätsscans, zu dem der Job gehört.
  • --view=FULL: Geben Sie FULL an, um das Ergebnis des Scanjobs anzusehen.

REST

Sehen Sie sich mit APIs Explorer die Ergebnisse eines Datenqualitätsscans an.

Alle Datenqualitätsscanjobs ansehen

Dataplex speichert den Datenqualitätsscanverlauf der letzten 300 Jobs oder des vergangenen Jahres, je nachdem, was zuerst eintritt.

Console

Der Tab Jobverlauf enthält Informationen zu vergangenen Jobs. Es listet alle Jobs auf, die Anzahl der in jedem Job gescannten Datensätze, den Jobstatus, den Zeitpunkt der Jobausführung, ob die einzelnen Regeln bestanden wurden oder fehlgeschlagen sind, usw.

Klicken Sie in der Spalte Job-ID auf einen der Jobs, um detaillierte Informationen zu einem Job aufzurufen.

gcloud

Verwenden Sie den Befehl gcloud dataplex datascans jobs list, um alle Jobs eines Datenqualitätsscans anzusehen:

gcloud dataplex datascans jobs list \
--location=LOCATION \
--datascan=DATASCAN \

Ersetzen Sie die folgenden Variablen:

  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.
  • DATASCAN: Der Name des Datenqualitätsscans, für den alle Jobs angezeigt werden sollen.

REST

Rufen Sie alle Scanjobs mit dem APIs Explorer auf.

Veröffentlichte Ergebnisse teilen

Wenn Sie beim Erstellen eines Datenqualitätsscans die Scanergebnisse auf den Seiten „BigQuery“ und „Data Catalog“ in der Google Cloud Console veröffentlichen, sind die aktuellen Scanergebnisse auf dem Tab Datenqualität dieser Seiten verfügbar.

Sie können den Nutzern in Ihrer Organisation Zugriff auf die veröffentlichten Scanergebnisse gewähren. So gewähren Sie Zugriff auf die Scanergebnisse:

  1. Rufen Sie in der Google Cloud Console die Seite Profil auf.

    Zum Dataplex-Profil

  2. Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie freigeben möchten.

  3. Wechseln Sie zum Tab Berechtigungen.

  4. Klicken Sie auf Zugriff erlauben.

  5. Fügen Sie im Feld Neue Hauptkonten das Hauptkonto hinzu, auf das Sie Zugriff gewähren möchten.

  6. Wählen Sie im Feld Rolle auswählen die Option Dataplex DataScan DataViewer aus.

  7. Klicken Sie auf Speichern.

So entfernen Sie den Zugriff auf die veröffentlichten Scanergebnisse für ein Hauptkonto:

  1. Rufen Sie in der Google Cloud Console die Seite Profil auf.

    Zum Dataplex-Profil

  2. Klicken Sie auf den Datenqualitätsscan, dessen Ergebnisse Sie freigeben möchten.

  3. Wechseln Sie zum Tab Berechtigungen.

  4. Wählen Sie das Hauptkonto aus, für das Sie die Rolle Dataplex DataScan DataViewer entfernen möchten.

  5. Klicken Sie auf Zugriff entfernen.

  6. Klicken Sie auf Bestätigen.

Datenqualitätsscan aktualisieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.

    Zur Datenqualität

  2. Klicken Sie in der Zeile mit dem zu bearbeitenden Scan auf das Dreipunkt-Menü > Bearbeiten.

  3. Die Werte bearbeiten

  4. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl gcloud dataplex datascans update data-quality, um die Beschreibung eines Datenqualitätsscans zu aktualisieren:

gcloud dataplex datascans update data-quality DATASCAN \
--location=LOCATION \
--description=DESCRIPTION

Ersetzen Sie Folgendes:

  • DATASCAN: Der Name des Datenqualitätsscans, der aktualisiert werden soll.
  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.
  • DESCRIPTION: Die neue Beschreibung des Datenqualitätsscans.

REST

Verwenden Sie APIs Explorer, um den Datenqualitätsscan zu bearbeiten.

Datenqualitätsscan löschen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.

    Zur Datenqualität

  2. Klicken Sie auf den Scan, den Sie löschen möchten.

  3. Klicken Sie auf Löschen.

gcloud

Verwenden Sie den Befehl gcloud dataplex datascans delete, um einen Datenqualitätsscan zu löschen:

gcloud dataplex datascans delete DATASCAN \
--location=LOCATION \
--async

Ersetzen Sie die folgenden Variablen:

  • DATASCAN: Der Name des zu löschenden Datenqualitätsscans.
  • LOCATION: Die Google Cloud-Region, in der der Datenqualitätsscan erstellt wurde.

REST

Löschen Sie den Datenqualitätsscan mit APIs Explorer.

Benachrichtigungen in Cloud Logging festlegen

So richten Sie mithilfe der Logs in Cloud Logging Benachrichtigungen für Datenqualitätsfehler ein:

Console

  1. Rufen Sie in der Google Cloud Console den Log-Explorer von Cloud Logging auf.

    Zum Log-Explorer

  2. Geben Sie im Fenster Abfrage Ihre Abfrage ein. Beispielabfragen

  3. Klicken Sie auf Abfrage ausführen.

  4. Klicken Sie auf Benachrichtigung erstellen. Dadurch wird eine Seitenleiste geöffnet.

  5. Geben Sie den Namen der Benachrichtigungsrichtlinie ein und klicken Sie auf Weiter.

  6. Überprüfen Sie die Abfrage.

    1. Klicken Sie auf die Schaltfläche Protokollvorschau, um die Abfrage zu testen. Es werden Logs mit übereinstimmenden Bedingungen angezeigt.

    2. Klicken Sie auf Next (Weiter).

  7. Legen Sie die Zeitspanne zwischen Benachrichtigungen fest und klicken Sie auf Weiter.

  8. Legen Sie fest, wer über die Benachrichtigung benachrichtigt werden soll, und klicken Sie auf Speichern, um die Benachrichtigungsrichtlinie zu erstellen.

Alternativ können Sie Ihre Benachrichtigungen konfigurieren und bearbeiten. Rufen Sie dazu in der Google Cloud Console Monitoring > Benachrichtigungen auf.

gcloud

Nicht unterstützt.

REST

Mit APIs Explorer können Sie Warnungen in Cloud Logging festlegen.

Beispielabfragen zum Festlegen von Benachrichtigungen auf Job- oder Dimensionsebene

  • Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allgemeinen Datenqualitätsfehlern für einen Datenqualitätsscan:

    resource.type="dataplex.googleapis.com/DataScan"
    AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
    AND resource.labels.resource_container="projects/112233445566"
    AND resource.labels.datascan_id="a0-test-dec6-dq-3"
    AND NOT jsonPayload.dataQuality.passed=true
    
  • Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu Datenqualitätsfehlern für eine Dimension (z. B. Eindeutigkeit) eines bestimmten Datenqualitätsscans:

    resource.type="dataplex.googleapis.com/DataScan"
    AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
    AND resource.labels.resource_container="projects/112233445566"
    AND resource.labels.datascan_id="a0-test-dec6-dq-3"
    AND jsonPayload.dataQuality.dimensionPassed.UNIQUENESS=false
    
  • Eine Beispielabfrage zum Einrichten von Benachrichtigungen zu Datenqualitätsfehlern für eine Tabelle.

    • Legen Sie Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle fest, die nicht in einem Dataplex-Lake organisiert ist:

      resource.type="dataplex.googleapis.com/DataScan"
      AND jsonPayload.dataSource="//bigquery.googleapis.com/projects/test-project/datasets/testdataset/table/chicago_taxi_trips"
      AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
      AND resource.labels.resource_container="projects/112233445566"
      AND NOT jsonPayload.dataQuality.passed=true
      
    • Legen Sie Benachrichtigungen zu Datenqualitätsfehlern für eine BigQuery-Tabelle fest, die in einem Dataplex-Lake organisiert ist:

      resource.type="dataplex.googleapis.com/DataScan"
      AND jsonPayload.dataSource="projects/test-project/datasets/testdataset/table/chicago_taxi_trips"
      AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
      AND resource.labels.resource_container="projects/112233445566"
      AND NOT jsonPayload.dataQuality.passed=true
      

Beispielabfragen, die Benachrichtigungen pro Regel festgelegt werden können

  • Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln mit dem angegebenen benutzerdefinierten Regelnamen für einen Datenqualitätsscan:

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.ruleName="custom-name"
    AND jsonPayload.result="FAILED"
    
  • Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln eines bestimmten Bewertungstyps für einen Datenqualitätsscan:

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.evalutionType="PER_ROW"
    AND jsonPayload.result="FAILED"
    
  • Eine Beispielabfrage zum Festlegen von Benachrichtigungen zu allen fehlerhaften Datenqualitätsregeln für eine Spalte in der Tabelle, die für einen Datenqualitätsscan verwendet wird:

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.column="CInteger"
    AND jsonPayload.result="FAILED"
    

Probleme mit der Datenqualität beheben

Für jeden Job mit fehlgeschlagenen Regeln auf Zeilenebene stellt Dataplex eine Abfrage zum Abrufen der fehlgeschlagenen Einträge bereit. Führen Sie diese Abfrage aus, um die Einträge aufzurufen, die nicht Ihrer Regel entsprechen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenqualität auf.

    Zur Datenqualität

  2. Wählen Sie den Scan aus, für den Sie eine Fehlerbehebung durchführen möchten, indem Sie auf den Anzeigenamen klicken.

  3. Suchen Sie auf dem Tab Jobverlauf die fehlgeschlagene Scanausführung und klicken Sie auf den Fehlerlink.

  4. Suchen Sie im daraufhin geöffneten Jobfenster im Abschnitt Rules (Regeln) nach der Spalte Query to get failed Records (Fehlgeschlagene Einträge abrufen).

  5. Kopieren Sie die Abfrage, um sie in BigQuery auszuführen, und sehen Sie sich die Datensätze an, die zum Fehlschlagen des Jobs geführt haben.

gcloud

Nicht unterstützt.

REST

Rufen Sie mit APIs Explorer die Abfrage zum Abrufen fehlgeschlagener Datensätze für fehlgeschlagene Jobs auf.

Nächste Schritte