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:
- Parquet
- Avro
- ORC
- JSON (nur durch Zeilenumbruch getrennt)
- CSV (aber keine CSV-Dateien mit Kommentarzeilen)
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:
-
BigQuery-Nutzer (
roles/bigquery.user
) für das Datenquellenprojekt -
Storage-Objekt-Betrachter (
roles/storage.objectViewer
) für den Datenquellen-Bucket -
Verbindung angeben:
BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin
)
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:
-
Vollständiger Zugriff auf DataScan-Ressourcen:
Dataplex DataScan-Administrator (
roles/dataplex.dataScanAdmin
) für Ihr Projekt -
Schreibzugriff auf DataScan-Ressourcen:
Dataplex DataScan-Bearbeiter (
roles/dataplex.dataScanEditor
) für Ihr Projekt -
Lesezugriff auf DataScan-Ressourcen, mit Ausnahme der Ergebnisse:
Dataplex DataScan-Betrachter (
roles/dataplex.dataScanViewer
) für Ihr Projekt -
Lesezugriff auf DataScan-Ressourcen, einschließlich der Ergebnisse:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer
) für Ihr Projekt
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
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie im Explorer auf
Hinzufügen.Klicken Sie im Bereich Beliebte Quellen im Bereich Hinzufügen auf Externe und BigLake-Tabellen automatisch aus GCS erstellen.
Konfigurieren Sie im Bereich Quelle des Bereichs Tabelle erstellen die folgenden Details zu den zu scannenden Daten:
- Geben Sie einen Namen für den Scan ein.
- 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.
- Optional: Geben Sie eine Beschreibung des Scans ein.
- 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.
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.
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.
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.
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.
- 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.
- 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
oder1
. Wenn Sie den Wert0
angeben, werden beim explorativen Scan Überschriften abgeleitet und die Spaltennamen aus der Datei extrahiert. Der Standardwert ist0
. - 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
oderISO-8859-1
. Wenn Sie keinen Wert angeben, wird UTF-8 als Standard verwendet.
- Wenn Sie JSON-Optionen konfigurieren möchten, wählen Sie JSON-Parsing-Optionen aktivieren aus.
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
Rufen Sie in der Google Cloud Console die Seite Logs-Explorer auf.
Suchen Sie in der Ansicht Log-Explorer den Tab Abfrage.
Klicken Sie auf das Menü Ressource.
Wählen Sie Cloud Dataplex-DataScan aus. Klicken Sie auf Anwenden.
Klicken Sie auf das Menü Logname.
Geben Sie im Feld Lognamen durchsuchen
dataplex.googleapis.com%2Fdata_scan
ein. Wählen Sie data_scan aus und klicken Sie auf Übernehmen.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-IDDATA_SCAN_ID
: die DataScan-ID
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:
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 habenPROJECT_ID
: ID des Projekts mit BigLake-TabelleTABLE_NAME
: Name der BigLake-TabelleTABLE_ID
: ID der BigLake-Tabelle
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:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset und wählen Sie dann die Tabelle aus.
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:Klicken Sie auf
Details bearbeiten.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:
Löschen Sie die Datendateien für die Tabelle im Cloud Storage-Bucket.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset und wählen Sie dann die Tabelle aus.
Prüfen Sie im Bereich Details unter Labels, ob das Label metadata-managed-mode nicht auf
user_managed
festgelegt ist. Wenn die Einstellung aufuser_managed
festgelegt ist, gehen Sie so vor:Klicken Sie auf Details bearbeiten
.Geben Sie neben dem Schlüssel metadata-managed-mode im Feld value einen Wert ein, der nicht
user_managed
ist.
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.