In diesem Leitfaden werden Dataplex-Metadaten und die Verwaltung mit Dataplex APIs beschrieben.
Übersicht
Dataplex scannt Folgendes:
- Strukturierte und semistrukturierte Daten-Assets in Data Lakes, um Tabellenmetadaten in Tabellenentitäten zu extrahieren
- Unstrukturierte Daten wie Bilder und Texte, um Dateisatzmetadaten in Dateisatzentitäten zu extrahieren
Mit der Dataplex Metadata API haben Sie folgende Möglichkeiten:
- Tabellen- und Dateisatzmetadaten aufrufen, bearbeiten und löschen
- Eigene Metadaten für Tabellen oder Dateisätze erstellen
Sie können Dataplex-Metadaten mit den folgenden Tools analysieren:
- Data Catalog für die Suche und das Tagging
- Dataproc Metastore und BigQuery für Abfragen und Analysen von Tabellenmetadaten
Dataplex APIs
In diesem Abschnitt werden die Dataplex APIs und die wichtigsten zugehörigen Ressourcen zusammengefasst.
Control Plane API
Mit der Dataplex Control Plane API können Lake-, Zone- und Asset-Ressourcen erstellt und verwaltet werden.
Lake: Eine Dataplex-Dienstinstanz, mit der Speicherressourcen für Projekte innerhalb einer Organisation verwaltet werden können.
Zone: Eine logische Gruppierung von Assets in einem Lake. Verwenden Sie mehrere Zonen innerhalb eines Data Lake, um Daten basierend auf Bereitschaft, Arbeitslast oder Organisationsstruktur zu organisieren.
Assets: Speicherressourcen mit Daten, die in Cloud Storage-Buckets oder BigQuery-Datasets gespeichert sind und einer Zone in einem Data Lake zugeordnet 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, die sich entweder in einem Data Lake befinden oder von Ihnen bereitgestellt werden, 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 Speicherort der Daten identifiziert. In BigQuery und Dataproc Metastore können Sie Abfragen zu Metadaten von Tabellenentitäten stellen:
- 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.
- Datensatzentität:
Metadaten zu unstrukturierten, in der Regel schemalosen Daten. Dateisätze werden eindeutig durch die Entitäts-ID und den Speicherort der Daten identifiziert. Jedes Dateiensatz hat ein Datenformat.
- Partitionen:
Metadaten für einen Teil der Daten in einer Tabelle oder Dateiengruppe, die durch eine Reihe von Schlüssel/Wert-Paaren und einem Speicherort identifiziert werden.
API testen
Auf den Seiten der API-Referenzdokumentation für die Dataplex-APIs lakes.zones.entities und lakes.zones.partitions finden Sie die Parameter und Felder, die mit den einzelnen APIs verknüpft sind. Verwenden Sie das Steuerfeld API testen, das in der Referenzdokumentation für jede API-Methode enthalten ist, um API-Anfragen mit verschiedenen Parametern und Feldern zu senden. Sie können Anfragen erstellen, ansehen und senden, ohne Anmeldedaten generieren zu müssen, und sich dann die vom Dienst zurückgegebenen Antworten ansehen.
In den folgenden Abschnitten finden Sie Informationen zum Verständnis und zur Verwendung der Dataplex-Metadaten-APIs.
Entitäten
Entitäten auflisten
Wenn Sie die Liste der vom Dienst zurückgegebenen Entitäten eingrenzen möchten, fügen Sie der list entities
-Anfrage-URL Suchparameter vom Typ filter hinzu.
Entität abrufen
Die Get Entity
-Antwort enthält standardmäßig grundlegende Entitätsmetadaten. Wenn Sie zusätzliche Schemametadaten abrufen möchten, fügen Sie der Anfrage-URL den Abfrageparameter view hinzu.
Kompatibilitätsdetails:Dataplex-Metadaten werden zwar zentral in der Metadaten-API registriert, aber nur Metadaten für Entitätstabellen, die mit BigQuery und Apache Hive Metastore kompatibel sind, werden in BigQuery und Dataproc Metastore veröffentlicht.
Die Get Entity
API gibt eine CompatibilityStatus
-Nachricht zurück, aus der hervorgeht, ob die Tabellenmetadaten mit BigQuery und Hive Metastore kompatibel sind. Andernfalls wird der Grund für die Inkompatibilität angegeben.
Entität aktualisieren
Mit dieser API können Sie Entitätsmetadaten bearbeiten, z. B. festlegen, ob Sie oder Dataplex die Entitätsmetadaten verwalten.
- Mit dieser API werden alle änderbaren Felder der Entität 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 sich die Werte nicht ändern.
- Geben Sie das Feld etag an. Sie können den Etag abrufen, indem Sie zuerst eine entities.get-Anfrage senden, die die
etag
der Entität in der Antwort zurückgibt. - Schemafelder aktualisieren:Sie können das von Dataplex ermittelte Tabellenschema aktualisieren, um die Genauigkeit zu verbessern:
- Wenn das Schema ein Dateisatz ist, lassen Sie alle Schemafelder leer.
- Wenn Sie ein wiederkehrendes Feld definieren möchten, legen Sie den Modus auf
REPEATED
fest. Wenn Sie ein Strukturfeld definieren möchten, setzen Sie den Typ aufRECORD
. - Sie können das Feld
userManaged
des Schemas festlegen, um anzugeben, ob Sie oder Dataplex die Tabellenmetadaten verwalten. Die Standardeinstellung ist „Von Dataplex verwaltet“. WennuserManaged
auf „wahr“ gesetzt ist, wird diese Einstellung in den Informationen enthalten sein, die von einerentities.get
-Anfrage zurückgegeben werden, wenn EntityView aufSCHEMA
oderFULL
festgelegt ist.
- Partitionsfelder aktualisieren:
- Für nicht im Hive-Format partitionierte Daten werden von Dataplex Discovery automatisch Partitionsschlüssel 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-Stil aktualisieren, ist das Partitionsfeld unveränderlich.
- Für nicht im Hive-Format partitionierte Daten werden von Dataplex Discovery automatisch Partitionsschlüssel generiert. Für den Datenpfad
- Andere Metadatenfelder aktualisieren:Sie können die automatisch generierten Felder mimeType, CompressionFormat, CsvOptions und JsonOptions aktualisieren, um die Datensuche in Dataplex zu unterstützen. Bei der nächsten Ausführung von Dataplex Discovery werden die neuen Werte verwendet.
Entität erstellen
Verwenden Sie die entities.create
API, um Metadatenentitäten für Tabellen oder Dateisätze zu erstellen.
Füllen Sie die Pflichtfelder und die relevanten optionalen Felder aus oder lassen Sie die optionalen Felder vom Dataplex-Discovery-Dienst ausfüllen.
Entität löschen
- Geben Sie das Feld etag an. Sie können den Etag abrufen, indem Sie zuerst eine entities.get-Anfrage senden, die die
etag
der Entität in der Antwort zurückgibt.
Wenn zugrunde liegende Daten für eine Tabelle oder ein Dateisystem in einer Raw-Zone gelöscht werden, werden die Metadaten der Tabelle oder des Dateisystems beim nächsten Discovery-Scan automatisch gelöscht. Wenn die zugrunde liegenden Daten für eine Tabelle in einer kuratierten Zone gelöscht werden, werden die Tabellenmetadaten nicht entsprechend gelöscht. Stattdessen wird eine Aktion für fehlende Daten gemeldet. Löschen Sie das Metadatenentitätsobjekt der Tabelle über die Metadaten-API, um dieses Problem zu beheben.
Partitionen
Partitionen auflisten
Wenn Sie die Liste der vom Dienst zurückgegebenen Partitionen einschränken möchten, fügen Sie der list partitions
-Anfrage-URL Suchparameter vom Typ filter hinzu.
Beispiele:
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Partition abrufen
Wenn Sie eine Partition abrufen möchten, müssen Sie die Anfrage-URL vervollständigen, indem Sie die Partitionsschlüsselwerte an das Ende der URL anhängen. Die URL muss so formatiert sein, dass sie mit partitions/value1/value2/…./value10
beginnt.
Beispiel: Wenn eine Partition Werte hat, {Country=US, State=CA, City=Sunnyvale}
, sollte die URL der Get-Anfrage mit /partitions/US/CA/Sunnyvale
enden.
Wichtig:Die angehängten URL-Werte müssen doppelt codiert sein. So kann beispielsweise url_encode(url_encode(value))
verwendet werden, um „US:CA/CA#Sunnyvale“ so zu codieren, dass die Anfrage-URL auf /partitions/US%253ACA/CA%2523Sunnyvale
endet. Das Feld „Name“ 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 für das erforderliche Feld Speicherort einen Cloud Storage-Pfad an.
Partition löschen
Schließen Sie die Anfrage-URL ab, indem Sie Partitionsschlüsselwerte an das Ende der Anfrage-URL anhängen, die so formatiert sind, dass sie als partitions/value1/value2/…./value10
gelesen werden.
Beispiel: Wenn eine Partition Werte hat, {Country=US, State=CA, City=Sunnyvale}
, sollte die Anfrage-URL auf /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
.