In dieser Anleitung werden die Dataplex Universal Catalog-Metadaten für Lakes, Zonen und Assets beschrieben und es wird erläutert, wie Sie sie mit Dataplex Universal Catalog-APIs verwalten können.
Übersicht
Dataplex Universal Catalog scannt Folgendes:
- Strukturierte und semistrukturierte Daten-Assets in Data Lakes, um Tabellenmetadaten in Tabellenentitäten zu extrahieren
- Unstrukturierte Daten wie Bilder und Texte, um Dateienmetadaten in Dateienentitäten zu extrahieren
Mit der Dataplex Universal Catalog Metadata API haben Sie folgende Möglichkeiten:
- Metadaten von Tabellen- und Fileset-Entitäten ansehen, bearbeiten und löschen
- Eigene Metadaten für Tabellen- oder Fileset-Entitäten erstellen
Sie können Dataplex Universal Catalog-Metadaten mit den folgenden Tools analysieren:
- Data Catalog (eingestellt) für die Suche und das Tagging
- Dataproc Metastore und BigQuery für das Abfragen von Tabellenmetadaten und die Analyse
Dataplex Universal Catalog-APIs
In diesem Abschnitt werden die Dataplex Universal Catalog APIs und die zugehörigen wichtigsten Ressourcen zusammengefasst.
API der Steuerungsebene
Mit der Dataplex Universal Catalog-Steuerungsebene-API können die Ressourcen „Lake“, „Zone“ und „Asset“ erstellt und verwaltet werden.
Lake: Eine Dataplex Universal Catalog-Dienstinstanz, mit der Speicherressourcen projektübergreifend in einer Organisation verwaltet werden können.
Zone: Eine logische Gruppierung von Assets in einem Lake. Verwenden Sie mehrere Zonen in einem Data Lake, um Daten nach Bereitschaft, Arbeitslast oder Organisationsstruktur zu organisieren.
Assets: Speicherressourcen mit Daten, die in Cloud Storage-Buckets oder BigQuery-Datasets gespeichert sind und an eine Zone in einem Lake angehängt werden.
Metadata API
Mit der Dataplex Universal Catalog Metadata API können Sie Metadaten in Tabellen- und Dateisatzentitäten sowie Partitionen erstellen und verwalten. Dataplex Universal Catalog scannt Daten-Assets, entweder in einem Lake oder von Ihnen bereitgestellt, um Entitäten und Partitionen zu erstellen. Entitäten und Partitionen enthalten Verweise auf zugehörige Assets und physische Speicherorte.
Wichtige Konzepte
- Tabellenentität:
Metadaten für strukturierte Daten mit klar definierten Schemas. Tabellenentitäten werden eindeutig durch die Entitäts-ID und den Datenspeicherort identifiziert. Metadaten von Tabellenentitäten können in BigQuery und Dataproc Metastore abgefragt werden:
- Cloud Storage-Objekte:Metadaten für Cloud Storage-Objekte, auf die über die Cloud Storage-APIs zugegriffen wird.
- BigQuery-Tabellen:Metadaten für BigQuery-Tabellen, auf die über die BigQuery APIs zugegriffen wird.
- Fileset-Entität:
Metadaten zu unstrukturierten, in der Regel schemalosen Daten. Dateigruppen werden eindeutig durch die Entitäts-ID und den Datenspeicherort identifiziert. Jedes Fileset hat ein Datenformat.
- Partitionen:
Metadaten für eine Teilmenge von Daten in einer Tabellen- oder Dateigruppenentität, die durch eine Reihe von Schlüssel/Wert-Paaren und einen Datenspeicherort identifiziert wird.
API testen
In der API-Referenzdokumentation für lakes.zones.entities und lakes.zones.partitions des Dataplex Universal Catalog finden Sie die Parameter und Felder, die den einzelnen APIs zugeordnet sind. Verwenden Sie den Bereich API testen, der zur Referenzdokumentation für jede API-Methode gehört, um API-Anfragen mit verschiedenen Parametern und Feldern zu stellen. Sie können Anfragen erstellen, ansehen und senden, ohne Anmeldedaten generieren zu müssen, und dann die vom Dienst zurückgegebenen Antworten ansehen.
In den folgenden Abschnitten finden Sie Informationen, die Ihnen helfen, die Dataplex Universal Catalog Metadata APIs zu verstehen und zu verwenden.
Entitäten
Entitäten auflisten
Wenn Sie die vom Dienst zurückgegebene Liste der Einheiten einschränken möchten, fügen Sie der Anfrage-URL list entities
die Suchparameter filter hinzu.
Entität abrufen
Standardmäßig enthält die Get Entity
-Antwort grundlegende Metadaten zu Entitäten. Wenn Sie zusätzliche Schemametadaten abrufen möchten, fügen Sie der Anfrage-URL den Abfrageparameter view hinzu.
Kompatibilitätsdetails:Während Metadaten des Dataplex Universal Catalog zentral in der Metadaten-API registriert werden, werden nur Metadaten von Entitätstabellen, die mit BigQuery und Apache Hive Metastore kompatibel sind, in BigQuery und Dataproc Metastore veröffentlicht.
Die Get Entity
API gibt eine CompatibilityStatus
-Nachricht zurück, die angibt, ob die Tabellenmetadaten mit BigQuery und Hive Metastore kompatibel sind. Wenn nicht, wird der Grund für die Inkompatibilität angegeben.
Entität aktualisieren
Mit dieser API können Sie Entitätsmetadaten bearbeiten, einschließlich der Frage, ob Sie oder Dataplex Universal Catalog die Entitätsmetadaten verwalten.
- Mit dieser API werden alle änderbaren Entity-Felder vollständig ersetzt. Die folgenden Entitätsfelder sind unveränderlich. Wenn Sie sie in einer Aktualisierungsanfrage angeben, werden sie ignoriert:
- Geben Sie einen Wert für alle veränderlichen Entitätsfelder an, einschließlich aller Schemafelder, auch wenn die Werte nicht geändert werden.
- Geben Sie das Feld etag an. Sie können das ETag abrufen, indem Sie zuerst eine entities.get-Anfrage senden, die das
etag
der Entität in der Antwort zurückgibt. - Schemafelder aktualisieren:Sie können das vom Dataplex Universal Catalog ermittelte Tabellenschema aktualisieren, um die Genauigkeit zu verbessern:
- Wenn das Schema ein Fileset ist, lassen Sie alle Schemafelder leer.
- Wenn Sie ein wiederkehrendes Feld definieren möchten, legen Sie den Modus auf
REPEATED
fest. Um ein Strukturfeld zu definieren, setzen Sie den Typ aufRECORD
. - Sie können das Feld
userManaged
des Schemas festlegen, um anzugeben, ob Sie oder Dataplex Universal Catalog die Tabellenmetadaten verwalten. Die Standardeinstellung ist „Dataplex Universal Catalog“ verwaltet. WennuserManaged
auf „true“ gesetzt ist, wird diese Einstellung in den Informationen berücksichtigt, die bei einerentities.get
-Anfrage zurückgegeben werden, wenn EntityView aufSCHEMA
oderFULL
gesetzt ist.
- Partitionsfelder aktualisieren:
- Bei nicht im Hive-Stil partitionierten Daten werden Partitionsschlüssel automatisch von Dataplex Universal Catalog generiert. Für den Datenpfad
gs://root/2020/12/31
werden beispielsweise die Partitionsschlüsselp0
,p1
undp2
generiert. Um die Abfrage intuitiver zu gestalten, können Siep0
,p1
undp2
inyear
,month
undday
ändern. - Wenn Sie den Partitionsstil auf HIVE style aktualisieren, ist das Partitionsfeld unveränderlich.
- Bei nicht im Hive-Stil partitionierten Daten werden Partitionsschlüssel automatisch von Dataplex Universal Catalog generiert. Für den Datenpfad
- Andere Metadatenfelder aktualisieren:Sie können die automatisch generierten Felder mimeType, CompressionFormat, CsvOptions und JsonOptions aktualisieren, um die Erkennung im Dataplex Universal Catalog zu erleichtern. Beim nächsten Ausführen von Dataplex Universal Catalog Discovery werden neue Werte verwendet.
Entität erstellen
Mit der entities.create
API können Sie Metadatenentitäten für Tabellen oder Dateisätze erstellen.
Füllen Sie die erforderlichen und relevanten optionalen Felder aus oder lassen Sie die optionalen Felder vom Dataplex Universal Catalog-Erkennungsdienst ausfüllen.
Entität löschen
- Geben Sie das Feld etag an. Sie können das ETag abrufen, indem Sie zuerst eine entities.get-Anfrage senden, die das
etag
der Entität in der Antwort zurückgibt.
Wenn zugrunde liegende Daten für eine Tabelle oder einen Fileset in einer Rohdaten-Zone gelöscht werden, werden die Metadaten der Tabelle oder des Filesets beim nächsten Discovery-Scan automatisch gelöscht. Wenn zugrunde liegende Daten für eine Tabelle in einer kuratierten Zone gelöscht werden, werden die Tabellenmetadaten nicht entsprechend gelöscht, sondern es wird eine Aktion für fehlende Daten gemeldet. Löschen Sie die Tabellenmetadatenentität explizit über die Metadaten-API, um dieses Problem zu beheben.
Partitionen
Partitionen auflisten
Wenn Sie die vom Dienst zurückgegebene Liste der Partitionen einschränken möchten, fügen Sie der Anfrage-URL list partitions
die Abfrageparameter filter hinzu.
Beispiele:
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Partition abrufen
Um eine Partition zu erhalten, müssen Sie die Anfrage-URL vervollständigen, indem Sie die Partitionsschlüsselwerte an das Ende der URL anhängen. Die Formatierung muss partitions/value1/value2/…./value10
lauten.
Beispiel: Wenn eine Partition die Werte {Country=US, State=CA, City=Sunnyvale}
hat, sollte die URL der GET-Anfrage mit /partitions/US/CA/Sunnyvale
enden.
Wichtig:Die angehängten URL-Werte müssen doppelt codiert sein. Mit url_encode(url_encode(value))
kann beispielsweise „US:CA/CA#Sunnyvale“ codiert werden, sodass die Anfrage-URL mit /partitions/US%253ACA/CA%2523Sunnyvale
endet. Das Feld „name“ in der Antwort behält das codierte Format bei.
Partition erstellen
Wenn Sie eine benutzerdefinierte Partition für Ihre Datenquelle erstellen möchten, verwenden Sie die partitions.create
API. Geben Sie das erforderliche Feld location mit einem Cloud Storage-Pfad an.
Partition löschen
Fügen Sie der Anfrage-URL die Werte für den Partitionsschlüssel hinzu, sodass sie als partitions/value1/value2/…./value10
formatiert ist.
Beispiel: Wenn eine Partition die Werte {Country=US, State=CA, City=Sunnyvale}
hat, sollte die Anfrage-URL mit /partitions/US/CA/Sunnyvale
enden.
Wichtig:Die angehängten URL-Werte müssen RFC-1034 entsprechen oder doppelt codiert sein, z. B. US:/CA#/Sunnyvale
als US%3A/CA%3A/Sunnyvale
.