In dieser Anleitung werden die Metadaten des Knowledge Catalog (ehemals Dataplex Universal Catalog) für Lakes, Zonen und Assets beschrieben und Sie erfahren, wie Sie sie mit der Dataplex API verwalten können.
Übersicht
Knowledge Catalog scannt Folgendes:
- Strukturierte und halbstrukturierte Daten-Assets in Data Lakes, um Tabellenmetadaten in Tabellenentitäten zu extrahieren
- Unstrukturierte Daten wie Bilder und Texte, um Metadaten von Dateigruppen in Dateigruppenentitäten zu extrahieren
Mit der Dataplex Metadata API haben Sie folgende Möglichkeiten:
- Metadaten von Tabellen- und Dateigruppenentitäten ansehen, bearbeiten und löschen
- Eigene Metadaten für Tabellen- oder Dateigruppenentitäten erstellen
Sie können Knowledge Catalog-Metadaten mit den folgenden Tools analysieren:
- Data Catalog (verworfen) zum Suchen und Taggen
- Dataproc Metastore und BigQuery für Abfragen von Tabellenmetadaten und Analysen
Dataplex-API
In diesem Abschnitt werden die Lake-, Zonen- und Asset-Ressourcen in der Dataplex API und die wichtigsten zugehörigen Ressourcen zusammengefasst.
API der Steuerungsebene
Mit der Dataplex API der Steuerungsebene können Sie die Lake-, Zonen- und Asset-Ressourcen erstellen und verwalten.
Lake: Eine Knowledge Catalog-Dienstinstanz, mit der Sie Speicherressourcen in verschiedenen Projekten innerhalb einer Organisation verwalten können.
Zone: Eine logische Gruppierung von Assets in einem Lake. Verwenden Sie mehrere Zonen in einem 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 sind.
Metadata API
Mit der Dataplex Metadata API können Sie Metadaten in Tabellen- und Dateigruppenentitäten und Partitionen erstellen und verwalten. Knowledge 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.
- Dateigruppenentität :
Metadaten zu unstrukturierten Daten, die in der Regel kein Schema haben. Dateigruppen werden eindeutig durch die Entitäts-ID und den Datenspeicherort identifiziert. Jede Dateigruppe 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 werden.
API testen
Auf den Referenzdokumentationsseiten für die Knowledge Catalog APIs lakes.zones.entities und lakes.zones.partitions finden Sie die Parameter und Felder, die mit den einzelnen APIs verknüpft 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 Ihre 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 Knowledge Catalog Metadata APIs zu verstehen und zu verwenden.
Entitäten
Entitäten auflisten
Wenn Sie die Liste der vom Dienst zurückgegebenen Entitäten einschränken möchten, fügen Sie der list entities Anfrage-URL
Filter
abfrageparameter hinzu.
Entität abrufen
Standardmäßig enthält die Get Entity Antwort grundlegende Entitäts
Metadaten. Wenn Sie zusätzliche Schemametadaten abrufen möchten, fügen Sie der Anfrage-URL den
view
Abfrageparameter hinzu.
Details zur Kompatibilität:Während Knowledge Catalog-Metadaten zentral in der Metadata API registriert werden, werden nur Entitätstabellenmetadaten, 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 Tabellenmetadaten mit BigQuery und Hive Metastore kompatibel sind,
und wenn nicht, den Grund für die Inkompatibilität.
Entität aktualisieren
Mit dieser API können Sie Entitätsmetadaten bearbeiten, einschließlich der Frage, ob Sie oder Knowledge Catalog die Entitätsmetadaten verwalten.
- Diese API ersetzt alle änderbaren Entitätsfelder vollständig. Die folgenden Entitätsfelder sind unveränderlich. Wenn Sie sie in einer Aktualisierungsanfrage angeben, werden sie ignoriert:
- Geben Sie für alle änderbaren Entitätsfelder einen Wert an, einschließlich aller Schema-Felder, 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
etagder Entität in der Antwort zurückgibt. - Schemafelder aktualisieren: Sie können das von
Knowledge Catalog ermittelte Tabellenschema aktualisieren, um die Genauigkeit zu verbessern.
- Wenn das Schema eine Dateigruppe ist, lassen Sie alle Schemafelder leer.
- Wenn Sie ein wiederholtes Feld definieren möchten, setzen Sie den
Modus
auf
REPEATED. Wenn Sie ein Strukturfeld definieren möchten, setzen Sie den Typ aufRECORD. - Sie können das
userManagedFeld des Schemas festlegen, um anzugeben, ob Sie oder Knowledge Catalog Tabellenmetadaten verwalten. Die Standardeinstellung ist „Von Knowledge Catalog verwaltet“. WennuserManagedauf „true“ gesetzt ist, ist diese Einstellung in den Informationen enthalten, die von einerentities.getAnfrage zurückgegeben werden, wenn EntityView aufSCHEMAoderFULLgesetzt ist.
- Partitionsfelder aktualisieren:
- Für nicht im Hive-Stil partitionierte Daten generiert die Knowledge Catalog-Erkennung
automatisch Partitionsschlüssel. Für den Datenpfad
gs://root/2020/12/31werden beispielsweise die Partitionsschlüsselp0,p1undp2generiert. Um Abfragen intuitiver zu gestalten, können Siep0,p1undp2inyear,monthunddayaktualisieren. - Wenn Sie den Partitionsstil in „HIVE“ ändern, ist das Partitionsfeld unveränderlich.
- Für nicht im Hive-Stil partitionierte Daten generiert die Knowledge Catalog-Erkennung
automatisch Partitionsschlüssel. Für den Datenpfad
- Andere Metadatenfelder aktualisieren:Sie können automatisch generierte Felder wie mimeType, CompressionFormat, CsvOptions und JsonOptions aktualisieren, um die Knowledge Catalog-Erkennung zu unterstützen. Bei der nächsten Ausführung der Knowledge Catalog Erkennung werden die neuen Werte verwendet.
Entität erstellen
Verwenden Sie die API entities.create, um Metadatenentitäten für Tabellen oder Dateigruppen zu erstellen.
Füllen Sie die erforderlichen und relevanten optionalen Felder aus oder lassen Sie die optionalen Felder vom Knowledge 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
etagder Entität in der Antwort zurückgibt.
Wenn die zugrunde liegenden Daten für eine Tabelle oder Dateigruppe in einer Rohzone gelöscht werden, werden die Metadaten der Tabelle oder Dateigruppe beim nächsten Erkennungsscan 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, sondern es wird eine Aktion für fehlende Daten gemeldet. Um dieses Problem zu beheben, löschen Sie die Metadatenentität der Tabelle explizit über die Metadata API.
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
Filter
abfrageparameter 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 am Ende der URL anhängen. Sie muss das Format partitions/value1/value2/…./value10 haben.
Beispiel: Wenn eine Partition die Werte {Country=US, State=CA, City=Sunnyvale} hat, sollte die URL der Abrufanfrage 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
Verwenden Sie die API partitions.create, um eine benutzerdefinierte Partition für Ihre Datenquelle zu erstellen. Geben Sie das erforderliche
Feld „location“
mit einem Cloud Storage-Pfad an.
Partition löschen
Vervollständigen Sie die Anfrage-URL, indem Sie die Partitionsschlüsselwerte am Ende von
der Anfrage-URL anhängen. Sie muss das Format partitions/value1/value2/…./value10 haben.
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.
Nächste Schritte
- Weitere Informationen zum Zugriff auf Metadaten in Apache Spark.