In diesem Leitfaden wird beschrieben, wie Sie Dataplex Discovery aktivieren und verwenden. Discovery scannt und extrahiert Metadaten aus Daten in einem Data Lake und registriert sie in Dataproc Metastore, BigQuery und Data Catalog für Analyse, Suche und explorative Datenanalyse.
Übersicht
Für jedes Dataplex-Asset, für das die Erkennung aktiviert ist, führt Dataplex Folgendes aus:
- Die mit dem Asset verknüpften Daten werden gescannt.
- Gruppiert strukturierte und halbstrukturierte Dateien in Tabellen.
- Hier werden technische Metadaten wie Tabellenname, Schema und Partitionsdefinition erfasst.
Bei unstrukturierten Daten wie Bildern und Videos erkennt Dataplex Discovery automatisch Dateigruppen mit demselben Medientyp und registriert sie als Dateisätze. Wenn gs://images/group1
beispielsweise GIF-Bilder und gs://images/group2
JPEG-Bilder enthält, erkennt und registriert Dataplex Discovery zwei Dateisätze. Bei strukturierten Daten wie Avro werden Dateien in Discovery nur erkannt, wenn sie sich in Ordnern mit demselben Datenformat und Schema befinden.
Die gefundenen Tabellen und Dateisätze werden im Data Catalog für die Suche und Entdeckung registriert. Die Tabellen werden in Dataproc Metastore als Hive-Tabellen und in BigQuery als externe Tabellen angezeigt, sodass Daten automatisch für die Analyse verfügbar gemacht werden.
Discovery unterstützt die folgenden Formate für strukturierte und semistrukturierte Daten:
- Parquet
- Avro
- ORC
- JSON (nur durch Zeilenumbruch getrennt)
- CSV (CSV-Dateien mit Kommentarzeilen werden nicht unterstützt)
Discovery unterstützt das folgende Komprimierungsformat für strukturierte und halbstrukturierte Daten:
Interne Komprimierung für diese 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
Erkennungskonfiguration
Die Erkennung 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 die Erkennungseinstellungen auf Zonenebene übernehmen oder auf Asset-Ebene überschreiben.
Die folgenden Konfigurationsoptionen für die Erkennung sind auf Zonen- und Asset-Ebene verfügbar:
Discovery aktiviert und deaktiviert
Discovery-Zeitplan: Diese Option kann auf einen vordefinierten Zeitplan (z. B. stündlich oder täglich) oder einen benutzerdefinierten Zeitplan im Cron-Format festgelegt werden. Neue Assets werden beim Hinzufügen gescannt. Weitere Informationen finden Sie unter Cron-Zeitpläne konfigurieren. Empfohlen: Planen Sie die Auslieferung von Discovery-Anzeigen alle Stunde oder seltener.
Muster für Ein- oder Ausschluss: Legen Sie mithilfe von Glob-Mustern im Pfad für Ein- oder Ausschluss fest, welche Dateien in Discovery-Scans ein- oder ausgeschlossen werden sollen. Wenn Sie beispielsweise
gs://test_bucket/foo/..
aus der Suche ausschließen möchten, geben Sie**/foo/*
als auszuschließenden Pfad ein. Anführungszeichen führen zu Fehlern. Geben Sie**/foo/*
anstelle von"**/foo/*"
ein.) 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: Sie können 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 Folgendes angeben:
Trennzeichen: Dieses Feld akzeptiert ein Zeichen, mit Ausnahme von
\r
und\n
. Wenn mehrere Zeichen angegeben werden, wird nur das erste Zeichen des Strings verwendet. Wenn Sie kein Trennzeichen angeben, verwendet Discovery ein Komma.Anzahl der Kopfzeilen:Dieses Feld akzeptiert den Wert
0
oder1
. Der Standardwert ist0
. Wenn der Wert0
ist, führt Discovery eine Header-Inferenz durch. Wenn ein Header erkannt wird, werden Spaltennamen aus dem Header extrahiert und der Wert auf1
zurückgesetzt.Encoding:Dieses Feld akzeptiert Namen für Stringcodierungen 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. Die Standardeinstellung ist
false
. Wenn Sie die Typinferenz für CSV-Daten deaktivieren, werden alle Spalten als Strings registriert.
Für JSON-Dateien können Sie Folgendes angeben:
Encoding:Dieses Feld akzeptiert Namen für Stringcodierungen wie
UTF-8
,US-ASCII
oderISO-8859-1
. Wenn nichts angegeben ist, wirdUTF-8
als Standard verwendet.Datentyp-Inferenz deaktivieren:Dieses Feld akzeptiert einen booleschen Wert. Die Standardeinstellung ist
false
. Wenn Sie die Typinferenz für JSON-Daten deaktivieren, werden alle Spalten als ihre primitiven Typen (String, Zahl oder Boolescher Wert) registriert.
Metadaten veröffentlichen
Wenn Sie eine Datenzone in Ihrem Data Lake erstellen, wird in Dataplex ein BigQuery-Dataset im Projekt erstellt, das den Data Lake enthält. Dataplex veröffentlicht Tabellen in diesem Dataset für Tabellen, die in den Cloud Storage-Buckets gefunden wurden, die der Datenzone als Assets hinzugefügt wurden. Der Datensatz wird als Metadaten-Veröffentlichungsdatensatz bezeichnet, der der Zone entspricht.
Jede Dataplex-Datenzone wird einem Datensatz in BigQuery oder einer Datenbank in Dataproc Metastore zugeordnet, in der Metadateninformationen automatisch verfügbar gemacht werden.
Sie können automatisch erkannte Metadaten wie den Tabellennamen oder das Schema mit der Dataplex-Metadaten-API bearbeiten.
Erkannte Tabellen und Dateisätze ansehen
In der Google Cloud Console können Sie in der Dataplex-Ansicht Suchen nach erkannten Tabellen und Dateisätzen suchen.
Verwenden Sie für genauere Suchergebnisse Dataplex-spezifische Filter, z. B. Namen von Data Lakes und Datenzonen. Die 50 wichtigsten Elemente pro Facette werden in der Filterliste angezeigt. Über das Suchfeld können Sie weitere Elemente finden.
Jeder Eintrag enthält detaillierte technische und betriebliche Metadaten.
Auf der Seite mit den Eintragsdetails können Sie die Tabelle in BigQuery abfragen und die entsprechenden Details zur Dataproc Metastore-Registrierung aufrufen.
Wenn eine Cloud Storage-Tabelle als externe Tabelle in BigQuery veröffentlicht werden kann, sehen Sie in der Detailansicht des Eintrags Folgendes:
- Verweise auf externe BigQuery-Tabellen
- Eine Schaltfläche In BigQuery öffnen, um mit der Analyse der Daten in BigQuery zu beginnen
Die Dataplex-Metadateneinträge sind direkt in Data Catalog sichtbar und abfragbar. Weitere Informationen finden Sie in der Referenz zur Suche in Data Catalog.
Alle gefundenen Einträge können über die Dataplex-Metadaten-API aufgerufen werden.
Discovery-Aktionen
Bei der Datenermittlung werden die folgenden Administratoraktionen ausgeführt, wenn bei Scans datenbezogene Probleme erkannt werden.
Ungültiges Datenformat
Zu den Aktionen gehören:
Inkonsistentes Datenformat in einer Tabelle. Beispielsweise gibt es Dateien mit unterschiedlichen Formaten mit demselben Tabellenpräfix.
Ungültiges Datenformat in kuratierten Zonen (Daten nicht im Avro-, Parquet- oder ORC-Format).
Inkompatibles Schema
Zu den Aktionen gehören:
Ein von Discovery erkanntes Schema ist nicht mit dem aktiven Tabellenschema in der Metadaten-API in Dataproc Metastore kompatibel. Schema A und Schema B sind in den folgenden Fällen nicht kompatibel:
A und B haben Felder mit demselben Namen, aber unterschiedlichen und inkompatiblen Datentypen. Beispiel: String und Ganzzahl.
A und B haben keine sich überschneidenden Felder.
A und B haben mindestens ein Feld, das nicht null sein darf und im anderen Schema nicht gefunden wird.
Schemaabweichungen von einem nutzerverwalteten Schema in der kuratierten 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
.Partitionsbenennung ohne Hive-Format in der Zone mit ausgewählten Daten 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 Zone mit kuratierten Daten sind die zugrunde liegenden Daten für eine registrierte Tabelle oder ein registriertes Dateiensatz nicht mehr vorhanden. Mit anderen Worten: Eine Zonentabelle oder ein Dateisatz wurde gefunden und registriert, aber die zugrunde liegenden Daten wurden später gelöscht. Sie können dieses Problem beheben, indem Sie entweder die Daten auffüllen oder den Metadateneintrag löschen.
Discovery-Aktionen beheben
Daten mit Aktionen werden bei nachfolgenden Discovery-Scans geprüft. Wenn das Problem behoben ist, das die Aktion ausgelöst hat, wird sie beim nächsten geplanten Discovery-Scan automatisch behoben.
Weitere Discovery-Aktionen
Zusätzlich zu den oben genannten Discovery-Aktionen gibt es drei weitere Arten von Aktionen im Zusammenhang mit der Übertragung von Ressourcenstatus und Sicherheitsrichtlinien in Dataplex.
Fehlende Ressource: Der zugrunde liegende Bucket oder Datensatz, der einem vorhandenen Asset entspricht, wurde nicht gefunden.
Nicht autorisierte Ressource: Dataplex hat nicht genügend Berechtigungen, um die Datenerkennung durchzuführen oder Sicherheitsrichtlinien auf den von Dataplex verwalteten Bucket oder Datensatz anzuwenden.
Probleme mit der Weitergabe von Sicherheitsrichtlinien: Die für einen bestimmten Data Lake, eine Zone oder ein Asset angegebenen Sicherheitsrichtlinien konnten nicht an die zugrunde liegenden Bucket oder Datensätze weitergegeben werden. Während alle anderen Aktionen auf Asset-Ebene erfolgen, kann diese Art von Aktion auf See-, Zonen- und Asset-Ebene ausgelöst werden.
Diese Arten von Aktionen werden automatisch behoben, wenn die zugrunde liegenden Probleme mit Ressourcen oder der Sicherheitskonfiguration behoben werden.
FAQ
Was kann ich tun, wenn das von Discovery abgeleitete Schema falsch ist?
Wenn sich das abgeleitete Schema von dem für eine bestimmte Tabelle erwarteten Schema unterscheidet, können Sie es überschreiben, indem Sie die Metadaten mit der Metadata API aktualisieren.
Legen Sie userManaged
auf true
fest, damit Ihre Änderung bei nachfolgenden Discovery-Scans nicht überschrieben wird.
Wie kann ich Dateien von einem Discovery-Scan ausschließen?
Standardmäßig werden bestimmte Dateitypen vom Scannen ausgeschlossen, darunter:
_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 und auf eine Zahl folgen - Verzeichnisse, die mit
.
beginnen
Sie können zusätzliche Ein- oder Ausschlussmuster mithilfe der Discovery-Konfiguration auf Zonen- oder Asset-Ebene oder mithilfe der Metadata API angeben.
Was kann ich tun, wenn die von Discovery erkannte Tabellengruppierung zu detailliert ist?
Wenn die von Discovery erkannten Tabellen im Vergleich zum Stammpfad der Tabelle detaillierter sind, z. B. wenn jede einzelne Partition als Tabelle registriert ist, kann das mehrere Gründe haben:
Es gibt Formatunterschiede, z. B. eine Mischung aus Avro- und Parquet-Dateien im erwarteten Stammpfad der Tabelle, die die Tabelle in kleinere Gruppierungen aufteilen.
Es gibt verschiedene Arten von Schemainkompatibilitäten im erwarteten Tabellenstammpfad, die die Tabelle in kleinere Gruppierungen aufteilen.
Sie haben zwei Möglichkeiten, dieses Problem zu beheben:
Beheben Sie Format- oder Schemaunterschiede, damit alle Dateien imselben Stammpfad der Tabelle dasselbe Format und dasselbe kompatible Schema haben.
Hetereogene Dateien können Sie mithilfe der Konfigurationseinstellung „Ausschließungsmuster“ als Teil der Zonen-/Asset-Konfiguration oder der Metadaten-API ausschließen.
Nachdem Sie einen der Korrekturschritte ausgeführt haben, geschieht beim nächsten Erkennungsscan Folgendes:
- Die vorhandenen Tabellen der unteren Ebene werden automatisch aus der Dataplex-Metadaten-API, BigQuery, Dataproc Metastore und Data Catalog entfernt.
- Stattdessen wird eine neue Tabelle auf oberer Ebene mit dem erwarteten Stammpfad der Tabelle erstellt.
Wie lege ich Tabellennamen fest?
Sie können Tabellennamen mithilfe der Metadaten API angeben.
Was passiert, wenn ich Tabellen manuell in Dataproc Metastore oder BigQuery erstelle?
Wenn die Erkennung für ein bestimmtes Asset aktiviert ist, müssen Sie Einträge nicht manuell in Dataproc Metastore oder BigQuery registrieren.
Sie können Tabellennamen, Schema- und Partitionsdefinitionen manuell definieren und 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 einzufügen.
- Halten Sie die Metadaten auf dem neuesten Stand.
Was kann ich tun, wenn meine Tabelle nicht in BigQuery angezeigt wird?
Alle Dataplex-Metadaten werden zwar zentral in der Metadaten-API registriert, aber nur Cloud Storage-Tabellen, die mit BigQuery kompatibel sind, werden als externe Tabellen in BigQuery veröffentlicht. In den Details zum Tabelleneintrag in der Metadata API finden Sie eine BigQuery-Kompatibilitätsmarkierung, die angibt, welche Entitäten in BigQuery veröffentlicht werden und warum.
Beschränkungen
- Externe Tabellen, einschließlich BigLake-externer Tabellen, werden von Discovery nicht unterstützt. Externe Tabellen werden jedoch automatisch in Dataplex Catalog aufgenommen und Sie können stattdessen in Dataplex Catalog danach suchen.