In diesem Leitfaden werden Dataplex-Metadaten und wie Sie diese mit Dataplex APIs verwalten können.
Überblick
Dataplex scannt Folgendes:
- Strukturierte und semistrukturierte Datenassets in Data Lakes, um Tabellenmetadaten in Tabellenentitäten zu extrahieren.
- Unstrukturierte Daten wie Bilder und Texte zum Extrahieren von Dateisatzmetadaten in Dateisatzentitäten
Mit der Dataplex Metadata API können Sie eine der folgenden Aktionen ausführen:
- Metadaten von Tabellen- und Dateisatzentitäten ansehen, bearbeiten und löschen
- Eigene Tabellen- oder Dateisatz-Entitätsmetadaten erstellen
Sie können Dataplex-Metadaten auch mit einer der folgenden Methoden analysieren:
- Data Catalog zum Suchen und Taggen
- Dataproc Metastore und BigQuery für die Abfrage von Tabellenmetadaten und die Analyseverarbeitung
Dataplex-APIs
In diesem Abschnitt werden die Dataplex APIs und die zugehörigen Schlüsselressourcen zusammengefasst.
API der Steuerungsebene
Mit der Dataplex-Steuerungsebenen-API können die Lake-, Zonen- und Asset-Ressourcen erstellt und verwaltet werden.
Lake: Eine Dataplex-Dienstinstanz, mit der Speicherressourcen projektübergreifend innerhalb einer Organisation verwaltet werden können.
Zone: Eine logische Gruppierung von Assets in einem Lake. Verwenden Sie mehrere Zonen in einem Lake, um Daten nach Verfügbarkeit, 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 sind.
Metadata API
Mit der Dataplex Metadata API können Sie Metadaten in Tabellen- und Dateisatzentitäten und -partitionen erstellen und verwalten. Dataplex scannt Daten-Assets, entweder in einem Lake oder von Ihnen bereitgestellt, um Entitäten und Partitionen zu erstellen. Entitäten und Partitionen behalten Verweise auf verknüpfte Assets und physische Speicherorte bei.
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. Dateisätze werden eindeutig durch die Entitäts-ID und den Datenspeicherort identifiziert. Jeder Dateisatz hat ein Datenformat.
- Partitionen:
Metadaten für eine Teilmenge von Daten in einer Tabellen- oder Dateisatzentität, die durch einen Satz von Schlüssel/Wert-Paaren und einen Datenspeicherort identifiziert wird.
API testen
Auf den Referenzdokumentationsseiten der Dataplex API lakes.zones.entities und lakes.zones.partitions können Sie die mit den einzelnen APIs verknüpften Parameter und Felder ansehen. Im Bereich API testen finden Sie die Referenzdokumentation für jede API-Methode. Hier erfahren Sie, wie Sie API-Anfragen mit unterschiedlichen Parametern und Feldern senden. Sie können Anfragen erstellen, anzeigen und senden, ohne Anmeldedaten generieren zu müssen. Anschließend können Sie die vom Dienst zurückgegebenen Antworten aufrufen.
Die folgenden Abschnitte enthalten Informationen zum Verständnis und zur Verwendung der Dataplex Metadata APIs.
Entitäten
Entitäten auflisten
Wenn Sie die Liste der vom Dienst zurückgegebenen Entitäten beschränken möchten, fügen Sie der list entities
-Anfrage-URL filter-Abfrageparameter hinzu.
Entität abrufen
Standardmäßig enthält die Antwort Get Entity
grundlegende Entitätsmetadaten. Fügen Sie der Anfrage-URL den Abfrageparameter view hinzu, um zusätzliche Schemametadaten abzurufen.
Kompatibilitätsdetails: Während Dataplex-Metadaten zentral in der Metadaten API registriert sind, werden in BigQuery und Dataproc Metastore nur Metadaten von Entitätstabellen veröffentlicht, die mit BigQuery und Apache Hive Metastore kompatibel sind.
Die Get Entity
API gibt eine CompatibilityStatus
-Nachricht zurück, die angibt, ob die Tabellenmetadaten mit BigQuery und Hive Metastore kompatibel sind, und falls nicht, den Grund für die Inkompatibilität.
Entität aktualisieren
Verwenden Sie diese API, um Entitätsmetadaten zu bearbeiten, einschließlich ob Sie oder Dataplex Entitätsmetadaten verwalten werden.
- Diese API führt eine vollständige Ersetzung aller änderbaren Entity-Felder durch. Die folgenden Entitätsfelder sind unveränderlich. Wenn Sie sie in einer Aktualisierungsanfrage angeben, werden sie ignoriert:
- Geben Sie einen Wert für alle änderbaren 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 den
etag
der Entität in der Antwort zurückgibt. - Schemafelder aktualisieren:Sie können das von Dataplex erkannte Tabellenschema aktualisieren, um seine Genauigkeit zu verbessern:
- Wenn das Schema ein Dateisatz ist, lassen Sie alle Schemafelder leer.
- Wenn Sie ein wiederkehrendes Feld definieren möchten, legen Sie für mode den Wert
REPEATED
fest. Legen Sie für type den WertRECORD
fest, um ein Strukturfeld zu definieren. - Sie können das Feld
userManaged
des Schemas festlegen, um anzugeben, ob Tabellenmetadaten von Ihnen oder Dataplex verwaltet werden. Die Standardeinstellung ist Dataplex verwaltet. WennuserManaged
auf „true“ gesetzt ist, ist diese Einstellung in den Informationen enthalten, die von einerentities.get
-Anfrage zurückgegeben werden, wenn EntityView aufSCHEMA
oderFULL
festgelegt ist.
- Partitionsfelder aktualisieren:
- Für nicht im Hive-Stil partitionierte Daten werden von der Dataplex-Erkennung automatisch Partitionsschlüssel generiert. Für den Datenpfad
gs://root/2020/12/31
werden beispielsweise die Partitionsschlüsselp0
,p1
undp2
generiert. Für eine intuitivere Abfrage können Siep0
,p1
undp2
aufyear
,month
bzw.day
aktualisieren. - Wenn Sie den Partitionsstil auf HIVE-Stil aktualisieren, ist das Partitionsfeld unveränderlich.
- Für nicht im Hive-Stil partitionierte Daten werden von der Dataplex-Erkennung automatisch Partitionsschlüssel generiert. Für den Datenpfad
- Andere Metadatenfelder aktualisieren:Sie können automatisch generierte mimeType-, CompressionFormat-, <a\ l10n-encrypted-href="4j47fNIJx6fHidLzUB36HWsP3kvJXL0i3UcbX/IwKQtqc4criDhrFJJZ9vTqd2dJsonOptions Die Dataplex-Erkennung verwendet bei der nächsten Ausführung neue Werte. </a\>
Entität erstellen
Verwenden Sie die entities.create
API, um Tabellen- oder Dateisatz-Metadatenentitäten zu erstellen.
Füllen Sie die erforderlichen und relevanten optionalen Felder aus oder lassen Sie den Dataplex-Erkennungsdienst die optionalen Felder 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 den
etag
der Entität in der Antwort zurückgibt.
Wenn zugrunde liegende Daten für eine Tabelle oder einen Dateisatz in einer Rohzone gelöscht werden, werden die Tabellen- oder Dateisatzmetadaten beim nächsten Discovery-Scan automatisch gelöscht. Wenn zugrunde liegende Daten für eine Tabelle in einer ausgewählten Zone gelöscht werden, werden nicht auch die Metadaten der Tabelle gelöscht. Stattdessen wird eine Aktion für fehlende Daten gemeldet. Löschen Sie die Metadatenentität der Tabelle explizit über die Metadata API, um dieses Problem zu beheben.
Partitionen
Partitionen auflisten
Wenn Sie die Liste der vom Dienst zurückgegebenen Partitionen begrenzen möchten, fügen Sie der Anfrage-URL list partitions
filter-Abfrageparameter hinzu.
Beispiele:
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Partition abrufen
Zum Abrufen einer Partition müssen Sie die Anfrage-URL vervollständigen. Dazu hängen Sie die Partitionsschlüsselwerte an das Ende der URL im Format partitions/value1/value2/…./value10
an.
Beispiel: Wenn eine Partition die Werte {Country=US, State=CA, City=Sunnyvale}
enthält, sollte die get-Anfrage-URL mit /partitions/US/CA/Sunnyvale
enden.
Wichtig:Die angehängten URL-Werte müssen doppelt codiert sein. Beispielsweise kann url_encode(url_encode(value))
verwendet werden, um „US:CA/CA#Sunnyvale“ so zu codieren, dass die Anfrage-URL mit /partitions/US%253ACA/CA%2523Sunnyvale
endet. Das Namensfeld in der Antwort behält das codierte Format bei.
Partition erstellen
Verwenden Sie die partitions.create
API, um eine benutzerdefinierte Partition für Ihre Datenquelle zu erstellen. Geben Sie im erforderlichen Feld location einen Cloud Storage-Pfad an.
Partition löschen
Vervollständigen Sie die Anfrage-URL, indem Sie Partitionierungsschlüsselwerte an das Ende der Anfrage-URL im Format partitions/value1/value2/…./value10
anhängen.
Beispiel: Wenn eine Partition die Werte {Country=US, State=CA, City=Sunnyvale}
enthält, 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
.