In diesem Leitfaden wird erläutert, wie Sie Dataplex Discovery aktivieren und verwenden. Mit Discovery werden Metadaten in einem Data Lake gescannt und extrahiert und in Dataproc Metastore, BigQuery und Data Catalog für die Analyse, die Suche und die explorative Datenanalyse registriert.
Überblick
Für jedes Dataplex-Asset mit aktivierter Discovery-Funktion wird in Dataplex Folgendes ausgeführt:
- Durchsucht die mit dem Asset verknüpften Daten.
- Strukturierte und semistrukturierte Dateien werden in Tabellen gruppiert.
- Sammelt technische Metadaten wie Tabellennamen, Schemas und die Partitionsdefinition.
Bei unstrukturierten Daten wie Bildern und Videos erkennt Dataplex Discovery automatisch Gruppen von Dateien, die einen Medientyp teilen, und registriert sie als Dateisets. Wenn gs://images/group1
beispielsweise GIF-Bilder und gs://images/group2
Bilder im JPEG-Format enthält, erkennt und registriert Dataplex Discovery zwei Dateisätze. Bei strukturierten Daten wie Avro erkennt Discovery Dateien nur dann, wenn sie sich in Ordnern befinden, die dasselbe Datenformat und Schema haben.
Die erkannten Tabellen und Dateisätze werden in Data Catalog für die Suche und Erkennung registriert. Die Tabellen werden in Dataproc Metastore als Tabellen im Hive-Stil und in BigQuery als externe Tabellen angezeigt, sodass Daten automatisch für die Analyse zur Verfügung gestellt werden.
Discovery unterstützt die folgenden strukturierten und semistrukturierten Datenformate:
- Parquet
- Avro
- ORC
- JSON (nur das Newline-Format)
- CSV (CSV-Dateien mit Kommentarzeilen werden nicht unterstützt.)
Discovery unterstützt das folgende Komprimierungsformat für strukturierte und semistrukturierte Daten:
Interne Komprimierung für diese Formate:
Komprimierung Beispiel für Dateierweiterung 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
Erkennungskonfiguration
Discovery ist standardmäßig aktiviert, wenn Sie eine neue Zone oder ein neues Asset erstellen. Sie können Discovery auf Zonen- oder Asset-Ebene deaktivieren.
Wenn Sie eine Zone oder ein Asset erstellen, können Sie Discovery-Einstellungen auf Zonenebene übernehmen oder die Discovery-Einstellungen auf Asset-Ebene überschreiben.
Die folgenden Konfigurationsoptionen für Discovery-Kampagnen sind auf Zonen- und Assetebene verfügbar:
Erkennung aktiviert und deaktiviert.
Discovery-Zeitplan: Diese Option kann auf einen vordefinierten Zeitplan festgelegt werden, z. B. stündlich oder täglich, oder einen benutzerdefinierten Zeitplan, der im Cron-Format definiert ist. Neue Assets werden beim Hinzufügen gescannt. Weitere Informationen finden Sie unter Cron-Zeitpläne konfigurieren. Empfohlen: Planen Sie die Erkennung so, dass sie mindestens einmal pro Stunde ausgeführt wird.
Muster einschließen oder ausschließen: Legen Sie mithilfe von Glob-Mustern im Ein- oder Ausschlusspfad fest, welche Dateien in Discovery-Scans einbezogen bzw. von diesen ausgeschlossen werden sollen. Wenn Sie beispielsweise
gs://test_bucket/foo/..
aus der Erkennung ausschließen möchten, geben Sie**/foo/*
als Ausschlusspfad ein. Anführungszeichen verursachen Fehler. Achten Sie darauf,**/foo/*
anstelle von"**/foo/*"
einzugeben.) Diese Funktion ist nur für Cloud Storage-Assets verfügbar. Wenn gleichzeitig einbeziehende und ausschließende Muster vorhanden sind, werden Ausschlussmuster zuerst angewendet.JSON- oder CSV-Spezifikationen: Mit dieser Option können Sie zusätzliche Informationen zu semistrukturierten Daten wie CSV und JSON angeben, um die Genauigkeit der Discovery-Ergebnisse zu verbessern.
Für CSV-Dateien können Sie folgende Angaben machen:
Trennzeichen: In dieses Feld kann ein Zeichen eingegeben werden, mit Ausnahme von
\r
und\n
. Wenn mehr als ein Zeichen angegeben ist, wird nur das erste Zeichen des Strings verwendet. Falls nicht angegeben, verwendet Discovery ein Trennzeichen als Trennzeichen.Anzahl der Kopfzeilen:In dieses Feld kann der Wert
0
oder1
eingegeben werden. Der Standardwert ist0
. Wenn der Wert auf0
gesetzt ist, führt Discovery eine Header-Inferenz durch. Wenn ein Header erkannt wird, extrahiert Discovery die Spaltennamen aus dem Header und setzt den Wert auf1
zurück.Codierung:Dieses Feld akzeptiert Stringcodierungsnamen wie
UTF-8
,US-ASCII
oderISO-8859-1
. Wenn nichts angegeben ist, wirdUTF-8
als Standard verwendet.Typinferenz deaktivieren:Dieses Feld akzeptiert einen booleschen Wert. Standardmäßig ist
false
festgelegt. Wenn Sie bei CSV-Daten die Typinferenz deaktivieren, werden alle Spalten als Strings registriert.
Für JSON-Dateien können Sie folgende Angaben machen:
Codierung:Dieses Feld akzeptiert Stringcodierungsnamen wie
UTF-8
,US-ASCII
oderISO-8859-1
. Wenn nichts angegeben ist, wird standardmäßigUTF-8
verwendet.Datentypinferenz deaktivieren:Dieses Feld akzeptiert einen booleschen Wert. Standardmäßig ist
false
festgelegt. Wenn Sie für JSON-Daten die Typinferenz deaktivieren, werden alle Spalten als einfache Typen (String, Zahl oder boolescher Wert) registriert.
Metadaten veröffentlichen
Wenn Sie eine Data Zone in Ihrem Dataplex-Lake erstellen, erstellt Dataplex ein BigQuery-Dataset in dem Projekt, das den Lake enthält. Dataplex veröffentlicht Tabellen in diesem Dataset für Tabellen, die in den Cloud Storage-Buckets gefunden wurden und der Datenzone als Assets hinzugefügt wurden. Das Dataset wird als Veröffentlichen des Datasets für die Zone bezeichnet.
Jede Dataplex-Datenzone ist einem Dataset in BigQuery oder einer Datenbank in Dataproc Metastore zugeordnet, in dem Metadateninformationen automatisch verfügbar gemacht werden.
Mit der Dataplex Metadata API können Sie automatisch erkannte Metadaten bearbeiten, z. B. den Tabellennamen oder das Schema.
Erkannte Tabellen und Dateisätze ansehen
Sie können in der Dataplex-Ansicht Search in der Google Cloud Console nach erkannten Tabellen und Dateisätzen suchen.
Für präzisere Suchergebnisse sollten Sie Dataplex-spezifische Filter wie Lake- und Datenzonennamen verwenden. Die 50 wichtigsten Elemente pro Attribut werden in der Filterliste angezeigt. Über das Suchfeld können Sie nach zusätzlichen Elementen suchen.
Jeder Eintrag enthält detaillierte technische und operative Metadaten.
Auf der Seite mit den Eintragsdetails können Sie die Tabelle in BigQuery abfragen und die entsprechenden Registrierungsdetails für Dataproc Metastore anzeigen.
Wenn eine Cloud Storage-Tabelle als externe Tabelle in BigQuery veröffentlicht werden kann, sehen Sie in der Detailansicht des Eintrags Folgendes:
- Externe BigQuery-Tabellenverweise
- Eine Schaltfläche zum Öffnen in BigQuery zum Starten der Datenanalyse in BigQuery
Die Dataplex-Metadateneinträge sind direkt in Data Catalog sichtbar und suchbar. Weitere Informationen finden Sie in der Data Catalog-Referenz von Data Catalog.
Alle erkannten Einträge können über die Dataplex Metadata API aufgerufen werden.
Erkennungsaktionen
Bei Erkennung werden die folgenden Administratoraktionen immer dann ausgelöst, wenn bei Scans datenbezogene Probleme festgestellt werden.
Ungültiges Datenformat
Zu den Aktionen gehören:
In einer Tabelle inkonsistentes Datenformat. Beispielsweise gibt es Dateien mit verschiedenen Formaten und demselben Tabellenpräfix.
Ungültiges Datenformat in ausgewählten Zonen (Daten nicht in Avro-, Parquet- oder ORC-Formaten).
Inkompatibles Schema
Zu den Aktionen gehören:
Ein von Discovery erkanntes Schema ist nicht mit dem aktiven Tabellenschema in der Metadata API in Dataproc Metastore kompatibel. Schema A und Schema B sind in folgenden Fällen nicht kompatibel:
A und B haben Felder mit demselben Namen, aber unterschiedlichen und inkompatiblen Datentypen. Zum Beispiel String und Ganzzahl.
Die Felder A und B dürfen sich nicht überschneiden.
A und B haben mindestens ein Feld, das nicht null ist und im anderen Schema nicht gefunden wurde.
Schemaabweichungen von einem nutzerverwalteten Schema in der ausgewählten Zone.
Ungültige Partitionsdefinition
Zu den Aktionen gehören:
Inkonsistente Partitionsbenennung Beispiel:
gs://sales_data/year=2020/month=10/day=01
undgs://sales_data/year=2020/region=us
.Keine Benennung von Hive-Stilen in der ausgewählten Datenzone. Beispiel:
gs://sales_data/2020/10/01
anstelle vongs://sales_data/year=2020/month=10/day=01
.
Fehlende Daten
Zu den Aktionen gehören:
- In der ausgewählten Datenzone sind die zugrunde liegenden Daten für eine registrierte Tabelle oder ein Dateisatz nicht mehr vorhanden. Mit anderen Worten: Eine Tabelle oder ein Dateisatz einer ausgewählten Zone wurde erkannt und registriert, später wurden jedoch die zugrunde liegenden Daten gelöscht. Sie können dieses Problem beheben, indem Sie die Daten neu laden oder den Metadateneintrag löschen.
Problem mit Discovery-Aktionen beheben
Daten mit Aktionen werden durch nachfolgende Discovery-Scans geprüft. Wenn das Problem behoben ist, das die Aktion auslöst, wird sie durch den nächsten geplanten Discovery-Scan automatisch behoben.
Weitere Aktionen
Zusätzlich zu den vorherigen Discovery-Aktionen gibt es drei weitere Arten von Aktionen, die sich auf die Weitergabe von Ressourcenstatus und Sicherheitsrichtlinien in Dataplex beziehen.
Fehlende Ressource: Der zugrunde liegende Bucket oder das Dataset wurde nicht zu einem vorhandenen Asset gefunden.
Nicht autorisierte Ressource: Dataplex ist nicht berechtigt, Discovery auszuführen oder Sicherheitsrichtlinien auf den von Dataplex verwalteten Bucket oder das Dataset anzuwenden
Probleme bei der Weitergabe von Sicherheitsrichtlinien: Die für einen bestimmten Lake, eine Zone oder ein Asset angegebenen Sicherheitsrichtlinien konnten nicht an die zugrunde liegenden Buckets oder Datasets weitergegeben werden. Während alle anderen Aktionen auf Asset-Ebene erfolgen, kann diese Art von Aktion auf Lake-, Zonen- und Asset-Ebene ausgelöst werden.
Diese Arten von Aktionen werden automatisch behoben, wenn die zugrunde liegenden Ressourcen- oder Sicherheitskonfigurationsprobleme behoben werden.
FAQs
Was soll ich tun, wenn das von Discovery abgeleitete Schema falsch ist?
Wenn das abgeleitete Schema von dem in einer bestimmten Tabelle erwarteten abweicht, können Sie das abgeleitete Schema durch Aktualisieren der Metadaten mithilfe der Metadata API überschreiben.
Legen Sie userManaged
auf true
fest, damit die Änderung in nachfolgenden Discovery-Scans nicht überschrieben wird.
Wie schließe ich Dateien von einem Discovery-Scan aus?
In Discovery werden bestimmte Dateitypen standardmäßig nicht gescannt. Dazu zählen:
_SUCCESS
_started
_committed
_metadata
,_METADATA
,_Metadata
_common_metadata
,_COMMON_METADATA
- Dateien, die mit
README
oderreadme
beginnen - Verzeichnisse, die mit
base_
,delta_
,delete_delta_
,bucket_
beginnen, gefolgt von einer Zahl - Verzeichnisse beginnen mit
.
Sie können zusätzliche Ein- oder Ausschlussmuster angeben, indem Sie die Discovery-Konfiguration auf Zonen- oder Asset-Ebene oder die Metadata API verwenden.
Was kann ich tun, wenn die von Discovery erkannte Tabellengruppierung zu detailliert ist?
Wenn sich die von Discovery erkannten Tabellen im Vergleich zum Stammpfad auf einer höheren Ebene befinden – beispielsweise wird jede einzelne Partition als Tabelle registriert – kann es dafür mehrere Gründe geben:
Im erwarteten Tabellenstammpfad gibt es Formatunterschiede, wie eine Mischung aus Avro- und Parquet-Dateien, die die Tabelle in kleinere Gruppierungen aufteilen.
Im erwarteten Stammpfad gibt es verschiedene Arten von Schemainkompatibilitäten, die die Tabelle in kleinere Gruppierungen aufteilen.
Sie können das Problem so beheben:
Format- oder Schemaunterschiede müssen behoben werden, damit alle Dateien im selben Stammpfad ein konsistentes Format und kompatibles Schema haben.
Sie können heterogene Dateien ausschließen, indem Sie die Konfiguration des Ausschlussmusters als Teil der Zonen-/Asset-Konfiguration oder der Metadata API verwenden.
Wenn Sie einen der Korrekturschritte ausgeführt haben, geschieht im nächsten Discovery-Scan Folgendes:
- Die vorhandenen untergeordneten Tabellen werden automatisch aus der Dataplex-Metadaten-API, BigQuery, Dataproc Metastore und Data Catalog entfernt.
- Stattdessen wird eine neue übergeordnete Tabelle mit dem erwarteten Stammpfad erstellt.
Wie gebe ich Tabellennamen an?
Sie können Tabellennamen mit der Metadata API angeben.
Was passiert, wenn ich Tabellen manuell in Dataproc Metastore oder BigQuery erstelle?
Wenn Discovery für ein bestimmtes Asset aktiviert ist, müssen Sie Einträge in Dataproc Metastore oder BigQuery nicht manuell registrieren.
Sie können Tabellennamen, Schemas und Partitionsdefinitionen manuell definieren, während Sie Dataplex Discovery deaktivieren. Alternativ können Sie so vorgehen:
- Erstellen Sie eine Tabelle, indem Sie nur die erforderlichen Informationen angeben, z. B. den Stammpfad der Tabelle.
- Verwenden Sie Dataplex Discovery, um die restlichen Metadaten wie Schema- und Partitionsdefinitionen auszufüllen.
- Halte die Metadaten auf dem neuesten Stand.
Was kann ich tun, wenn meine Tabelle nicht in BigQuery angezeigt wird?
Während Dataplex-Metadaten alle zentral in der Metadata API registriert sind, werden nur mit BigQuery kompatible Cloud Storage-Tabellen als externe Tabellen in BigQuery veröffentlicht. Als Teil der Tabelleneintragsdetails in der Metadata API finden Sie eine BigQuery-Kompatibilitätsmarkierung, die angibt, welche Entitäten in BigQuery veröffentlicht wurden und warum.