Cloud Storage-Daten finden und katalogisieren

In diesem Dokument wird beschrieben, wie Sie die automatische Erkennung von Cloud Storage-Daten verwenden.

Die automatische Datenermittlung von Dataplex ist eine Funktion in BigQuery, mit der Sie Daten in Cloud Storage-Buckets scannen können, um Metadaten zu extrahieren und zu katalogisieren. Im Rahmen des Scans werden BigLake- oder externe Tabellen für strukturierte Daten und Objekttabellen für unstrukturierte Daten erstellt, die Sie dann für Analysen und KI verwenden können. Die Tabellen werden automatisch im Dataplex Catalog katalogisiert, in dem Sie danach suchen oder darin stöbern können.

Wenn Sie die automatische Erkennung von Cloud Storage-Daten verwenden möchten, erstellen und führen Sie einen Erkennungsscan aus.

Übersicht

Ein Erkennungsscan führt zu folgenden Ergebnissen:

  • Die Daten im Cloud Storage-Bucket oder -Pfad werden gescannt.
  • Gruppiert strukturierte und halbstrukturierte Dateien in Tabellen.
  • Es werden Metadaten wie der Tabellenname, das Schema und die Partitionsdefinition erfasst.
  • Erstellt und aktualisiert BigLake-, externe oder Objekttabellen in BigQuery anhand der Schema- und Partitionsdefinition.

Bei unstrukturierten Daten wie Bildern und Videos werden beim Discovery-Scan Dateigruppen erkannt und registriert, die denselben Medientyp wie BigLake-Objekttabellen haben. Wenn gs://images/group1 beispielsweise GIF-Bilder und gs://images/group2 JPEG-Bilder enthält, werden beim Discovery-Scan zwei Dateisätze erkannt und registriert.

Bei strukturierten Daten wie Avro werden beim Discovery-Scan Dateigruppen als externe BigLake-Tabellen registriert und Dateien nur erkannt, wenn sie sich in Ordnern mit demselben Datenformat und kompatiblem Schema befinden.

Der Discovery-Scan unterstützt die folgenden Formate für strukturierte und semistrukturierte Daten:

Der Discovery-Scan unterstützt die folgenden Komprimierungsformate für strukturierte und semistrukturierte Daten:

  • Interne Komprimierung für die folgenden Formate:

    Komprimierung Beispiel für eine Dateiendung Unterstütztes Format
    GZIP .gz.parquet Parquet
    LZ4 .lz4.parquet Parquet
    Snappy .snappy.parquet Parquet, ORC, Avro
    lzo .lzo.parquet Parquet, ORC
  • Externe Komprimierung für JSON- und CSV-Dateien:

    • GZIP
    • bzip2

Die gefundenen Tabellen werden in BigQuery als BigLake-externe Tabellen, BigLake-Objekttabellen oder externe Tabellen registriert. So stehen die Daten zur Analyse in BigQuery zur Verfügung. Außerdem ist das Metadaten-Caching für BigLake-Tabellen und Objekttabellen aktiviert. Alle BigLake-Tabellen werden automatisch in Dataplex Catalog für die Suche und Datenermittlung aufgenommen.

Hinweise

Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen (Identity and Access Management) haben, um die Aufgaben in diesem Dokument ausführen zu können.

Erforderliche Rollen für das Dienstkonto

Weisen Sie vor Beginn die IAM-Berechtigungen dem Dataplex-Dienstkonto in Ihrem Projekt zu:

  service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
  

Ersetzen Sie PROJECT_NUMBER durch das Projekt, in dem die Dataplex API aktiviert ist.

Damit das Dataplex-Dienstkonto die erforderlichen Berechtigungen zum Ausführen einer explorativen Suche hat, bitten Sie Ihren Administrator, dem Dataplex-Dienstkonto die folgenden IAM-Rollen zu gewähren:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen eines Discovery-Scans erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Ausführen einer Suche erforderlich:

  • bigquery.datasets.create für das Datenquellenprojekt
  • storage.buckets.get für den Datenquellen-Bucket
  • storage.objects.get für den Datenquellen-Bucket
  • storage.objects.list für den Datenquellen-Bucket
  • bigquery.datasets.get für das Datenquellenprojekt
  • Stellen Sie eine Verbindung her:
    • bigquery.connections.delegate
    • bigquery.connections.use

Ihr Administrator kann dem Dataplex-Dienstkonto möglicherweise auch diese Berechtigungen mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.

Erforderliche Rollen für Endnutzer

Damit Sie die erforderlichen Berechtigungen zur Verwendung der DataScan API haben, bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die für die Verwendung der DataScan API erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für die Verwendung der DataScan API erforderlich:

  • So erstellen Sie einen DataScan: dataplex.datascans.create für Ihr Projekt
  • So löschen Sie einen DataScan: dataplex.datascans.delete für Ihr Projekt oder eine DataScan-Ressource
  • DataScan-Details ohne Ergebnisse aufrufen: dataplex.datascans.get auf dem Projektor eine DataScan-Ressource
  • DataScan-Details einschließlich Ergebnissen aufrufen: dataplex.datascans.getData in Ihrem Projekt oder in einer DataScan-Ressource
  • DataScans auflisten: dataplex.datascans.list für Ihr Projekt oder eine DataScan-Ressource
  • DataScan ausführen: dataplex.datascans.run für Ihr Projekt oder eine DataScan-Ressource
  • Beschreibung eines DataScans aktualisieren: dataplex.datascans.update auf dem Projektor eine DataScan-Ressource
  • IAM-Berechtigungen für DataScan aufrufen: dataplex.datascans.getIamPolicy für Ihr Projekt oder eine DataScan-Ressource
  • Legen Sie die IAM-Berechtigungen für DataScan fest: dataplex.datascans.setIamPolicy für Ihr Projekt oder eine DataScan-Ressource

Ihr Administrator kann Ihnen diese Berechtigungen möglicherweise auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.

Discovery-Scan erstellen

Wenn Sie Daten ermitteln möchten, müssen Sie einen Discovery-Scan erstellen und ausführen. Sie können einen Zeitplan für den Scan festlegen oder ihn bei Bedarf ausführen. Zum Erstellen und Ausführen eines Suchlaufs benötigen Sie die Berechtigung dataplex.datascans.create.

Wenn der Discovery-Scan ausgeführt wird, wird in BigQuery ein neues Dataset erstellt, das dem gescannten Cloud Storage-Bucket entspricht. Der Name des BigQuery-Datasets muss mit dem Namen des Cloud Storage-Bucket übereinstimmen. Ungültige Zeichen im Bucket-Namen werden durch einen Unterstrich ersetzt. Wenn der Name des Datensatzes nicht verfügbar ist, wird ein Suffix angehängt (z. B. _discovered_001). Der Datensatz enthält die externen BigLake- oder externen Tabellen ohne BigLake, die durch den explorativen Scan für die weitere Analyse erstellt wurden.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie im Explorer auf Hinzufügen.

  3. Klicken Sie im Bereich Beliebte Quellen im Bereich Hinzufügen auf Externe und BigLake-Tabellen automatisch aus GCS erstellen.

  4. Konfigurieren Sie im Bereich Quelle des Bereichs Tabelle erstellen die folgenden Details zu den zu scannenden Daten:

    1. Geben Sie einen Namen für den Scan ein.
    2. Geben Sie im Feld Scan-ID eine eindeutige ID ein, die der Nomenklatur für Ressourcennamen entspricht. Wenn Sie keine ID angeben, wird die Scan-ID vom Discovery-Scan generiert.
    3. Optional: Geben Sie eine Beschreibung des Scans ein.
    4. Wenn Sie den Cloud Storage-Bucket angeben möchten, der die zu scannenden Dateien enthält, suchen Sie im Feld Bucket nach dem Bucket und wählen Sie ihn aus.
    5. Optional: Sie können die Daten, die in den Discovery-Scan ein- oder ausgeschlossen werden sollen, mithilfe einer Liste von Glob-Mustern definieren.

      • Include (Einschließen): Wenn nur ein Teil der Daten gescannt werden soll, geben Sie eine Liste von Glob-Mustern an, die mit den einzuschließenden Objekten übereinstimmen.
      • Ausschließen: Geben Sie eine Liste von Glob-Mustern an, die mit den Objekten übereinstimmen, die ausgeschlossen werden sollen.

      Wenn Sie beispielsweise gs://test_bucket/foo/.. aus dem Discovery-Scan ausschließen möchten, geben Sie **/foo/* als auszuschließenden Pfad ein. Anführungszeichen verursachen Fehler. Geben Sie **/foo/* anstelle von "**/foo/*" ein.

      Wenn Sie sowohl einschließende als auch ausschließende Muster angeben, werden zuerst die ausschließenden Muster angewendet.

    6. Wenn Sie BigLake-Tabellen aus den gescannten Daten erstellen möchten, geben Sie im Feld Verbindungs-ID die Verbindungs-ID Ihrer Google Cloud-Ressource an. Weitere Informationen finden Sie unter Google Cloud-Ressourcenverbindungen.

      Wenn Sie keine Ressourcenverbindungs-ID angeben, werden beim Entdeckungsscan externe Tabellen erstellt, die nicht zu BigLake gehören.

  5. Legen Sie im Abschnitt Erkennungshäufigkeit fest, wann der Erkennungsscan ausgeführt werden soll:

    • Wiederholen: Der Scan wird nach einem vordefinierten Zeitplan ausgeführt. Geben Sie die Startzeit, die Tage, an denen der Scan ausgeführt werden soll, und die Häufigkeit an, z. B. stündlich.

    • On-Demand: Der Scan wird auf Abruf ausgeführt.

  6. Optional: Geben Sie im Abschnitt JSON- oder CSV-Spezifikationen an, wie JSON- und CSV-Dateien beim Scan verarbeitet werden sollen. Klicken Sie auf JSON- oder CSV-Spezifikationen.

    1. Wenn Sie JSON-Optionen konfigurieren möchten, wählen Sie JSON-Parsing-Optionen aktivieren aus.
      • Typinferenz deaktivieren: Gibt an, ob beim Entdeckungsscan Datentypen abgeleitet werden sollen. Wenn Sie die Typinferenz für JSON-Daten deaktivieren, werden alle Spalten als ihre primitiven Typen registriert, z. B. String, Zahl oder Boolescher Wert.
      • Codierungsformat: die Zeichencodierung der Daten, z. B. UTF-8, US-ASCII oder ISO-8859-1. Wenn Sie keinen Wert angeben, wird UTF-8 als Standard verwendet.
    2. Wenn Sie CSV-Optionen konfigurieren möchten, setzen Sie ein Häkchen bei CSV-Parsing-Optionen aktivieren.
      • Typinferenz deaktivieren: Gibt an, ob beim Entdeckungsscan Datentypen abgeleitet werden sollen. Wenn Sie die Typinferenz für CSV-Daten deaktivieren, werden alle Spalten als Strings registriert.
      • Überschriftenzeilen: Die Anzahl der Überschriftenzeilen, entweder 0 oder 1. Wenn Sie den Wert 0 angeben, werden beim explorativen Scan Überschriften abgeleitet und die Spaltennamen aus der Datei extrahiert. Der Standardwert ist 0.
      • Spaltentrennzeichen: Das Zeichen, mit dem Werte getrennt werden. Geben Sie ein einzelnes Zeichen, \r (Zeilenumbruch) oder \n (Zeilenumbruch) an. Der Standardwert ist ein Komma (,).
      • Codierungsformat: die Zeichencodierung der Daten, z. B. UTF-8, US-ASCII oder ISO-8859-1. Wenn Sie keinen Wert angeben, wird UTF-8 als Standard verwendet.
  7. Wenn Sie mit der Konfiguration des Datenermittlungsscans fertig sind, klicken Sie auf Erstellen (für einen geplanten Scan) oder Jetzt ausführen (für einen On-Demand-Scan).

    Ein geplanter Scan wird gemäß dem von Ihnen festgelegten Zeitplan ausgeführt.

    Ein On-Demand-Scan wird beim Erstellen einmal ausgeführt. Sie können ihn aber jederzeit wiederholen. Es kann einige Minuten dauern, bis der Scan abgeschlossen ist.

REST

Verwenden Sie zum Erstellen einer Suche die Methode dataScans.create.

Suche überwachen

Wenn Sie die Ergebnisse eines Suchlaufs im Blick behalten möchten, können Sie die Protokolle abfragen, die bei einem Scan erstellt wurden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Logs-Explorer auf.

    Zum Log-Explorer

  2. Suchen Sie in der Ansicht Log-Explorer den Tab Abfrage.

  3. Klicken Sie auf das Menü Ressource.

  4. Wählen Sie Cloud Dataplex-DataScan aus. Klicken Sie auf Anwenden.

  5. Klicken Sie auf das Menü Logname.

  6. Geben Sie im Feld Lognamen durchsuchen dataplex.googleapis.com%2Fdata_scan ein. Wählen Sie data_scan aus und klicken Sie auf Übernehmen.

  7. Optional: Sie können die Protokolle nach einer bestimmten Datenscan-ID oder einem bestimmten Speicherort filtern, indem Sie die folgenden Filter in die Protokollabfrage einfügen:

    resource.type="dataplex.googleapis.com/DataScan"
    AND resource.labels.resource_container="projects/PROJECT_ID"
    AND resource.labels.datascan_id="DATA_SCAN_ID"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Google Cloud-Projekt-ID
    • DATA_SCAN_ID: die DataScan-ID
  8. Klicken Sie auf Abfrage ausführen.

REST

Verwenden Sie die Methode dataScans.get, um einen Discovery-Scan zu überwachen.

Veröffentlichte BigLake-Tabellen abfragen

Nach dem Durchführen der explorativen Suche werden BigLake-Tabellen in einem neuen Dataset in BigQuery veröffentlicht und können in BigQuery mit SQL oder in Dataproc mit Apache Spark oder Dataproc oder HiveQL analysiert werden.

Abfrage mit SQL

Sie können Tabellen in BigQuery aufrufen oder abfragen. Weitere Informationen zum Ausführen von Abfragen in BigQuery finden Sie unter Abfrage ausführen.

Abfrage mit Apache Spark

So führen Sie eine Abfrage für BigLake-Tabellen mit Spark SQL in einem serverlosen Dataproc-Job aus:

  1. Erstellen Sie ein PySpark-Script, das dem folgenden Beispielskript ähnelt:

      from pyspark.sql import SparkSession
      session = (
        SparkSession.builder.appName("testing")
          .config("viewsEnabled","true")
          .config("materializationDataset", "DATASET_ID")
          .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID")
          .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory")
          .enableHiveSupport()
          .getOrCreate()
      )
    
      session.sql("show databases").show()
      session.sql("use TABLE_NAME").show()
      session.sql("show tables").show()
    
      sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10"
      df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql)
      df.show()

    Ersetzen Sie Folgendes:

    • DATASET_ID: ID des Datensatzes, für den Nutzer die Erstellungsberechtigung haben
    • PROJECT_ID: ID des Projekts mit BigLake-Tabelle
    • TABLE_NAME: Name der BigLake-Tabelle
    • TABLE_ID: ID der BigLake-Tabelle
  2. Senden Sie den Batchjob.

Veröffentlichte BigLake-Tabellen verwalten

Veröffentlichte BigLake-Tabellen werden durch den Discovery-Scan in BigQuery erstellt. Sofern das Label metadata-managed-mode nicht auf user_managed festgelegt ist, werden die veröffentlichten BigLake-Tabellen vom Discovery-Scan verwaltet. Bei jedem geplanten oder On-Demand-Datenscan wird mit dem Discovery-Scan die Erkennung neuer Daten, die Schemainferenz und die Schemaentwicklung durchgeführt.

Veröffentlichte BigLake-Tabellen aktualisieren

Bei BigLake-Tabellen, die mit den Discovery-Scan-Jobs mit der Standardkonfiguration veröffentlicht werden, werden das Schema und andere Metadaten bei jedem Datenscan-Job, der mit der geplanten Häufigkeit ausgeführt wird, automatisch aktualisiert.

So aktualisieren Sie eine veröffentlichte BigLake-Tabelle:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Aktualisieren Sie ein oder mehrere Tabellenattribute.

  3. Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset und wählen Sie dann die Tabelle aus.

  4. Prüfen Sie im Bereich Details unter Labels, ob der metadata-managed-mode auf user_managed festgelegt ist. Wenn er auf einen anderen Wert festgelegt ist, gehen Sie so vor:

    1. Klicken Sie auf  Details bearbeiten.

    2. Geben Sie neben dem Schlüssel metadata-managed-mode im Feld value den Wert user_managed ein.

Eine Tabelle mit einem aktualisierten Schema wird für SQL- und Spark-Abfragen verfügbar. Wenn die nächsten Suchläufe ausgeführt werden, bleiben die Tabellenmetadaten unverändert.

Veröffentlichte BigLake-Tabellen löschen

So löschen Sie eine veröffentlichte BigLake-Tabelle:

  1. Löschen Sie die Datendateien für die Tabelle im Cloud Storage-Bucket.

  2. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  3. Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset und wählen Sie dann die Tabelle aus.

  4. Prüfen Sie im Bereich Details unter Labels, ob das Label metadata-managed-mode nicht auf user_managed festgelegt ist. Wenn die Einstellung auf user_managed festgelegt ist, gehen Sie so vor:

    1. Klicken Sie auf Details bearbeiten .

    2. Geben Sie neben dem Schlüssel metadata-managed-mode im Feld value einen Wert ein, der nicht user_managed ist.

  5. Klicken Sie auf Ausführen. Der Discovery-Scan wird auf Abruf ausgeführt.

Nach dem Durchlaufen des Discovery-Scans wird die BigLake-Tabelle in BigQuery gelöscht und kann nicht mehr über Spark aufgelistet oder abgefragt werden.

On-Demand-Discovery-Scan ausführen

Wenn Sie einen Discovery-Scan auf Anfrage ausführen möchten, verwenden Sie die Methode dataScans.run in der Dataplex API.

Discovery-Scans auflisten

Wenn Sie die Liste der Scans in Ihrem Projekt abrufen möchten, verwenden Sie die Methode dataScans.list in der Dataplex API.

Suchlauf aktualisieren

Wenn Sie den Zeitplan eines Scans ändern möchten, z. B. von „auf Anfrage“ zu „wiederkehrend“, müssen Sie den DataScan aktualisieren.

Verwenden Sie die Methode dataScans.patch in der Dataplex API, um einen Discovery-Scan zu aktualisieren.

Discovery-Scan löschen

Verwenden Sie die Methode dataScans.delete in der Dataplex API, um einen Discovery-Scan zu löschen.