Die Metadatenfederation ist ein Dienst, mit dem Sie über einen einzigen Endpunkt auf mehrere Metadatenquellen zugreifen können.
Zum Einrichten der Föderation erstellen Sie einen Föderationsservice und konfigurieren dann Ihre Metadatenquellen. Anschließend stellt der Dienst einen einzelnen gRPC-Endpunkt bereit, über den Sie auf alle Ihre Metadaten zugreifen können.
Mithilfe der Verknüpfung können Sie beispielsweise einen Dataproc-Cluster erstellen, der mehrere Dataproc Metastore-Dienste über einen einzigen Endpunkt bereitstellt. Anschließend können Sie Big-Data-Jobs über Open-Source-Software (OSS)-Engines wie Spark oder Hive ausführen, um über mehrere Metastores auf Ihre Metadaten zuzugreifen.
So funktioniert die Verknüpfung
Open-Source-Big-Data-Arbeitslasten, die auf Spark oder Hive ausgeführt werden, senden Anfragen an die Hive Metastore API, um Metadaten zur Laufzeit abzurufen.
- Die Hive-Metastore-Schnittstelle unterstützt sowohl Lese- als auch Schreibmethoden. Der Federation-Dienst stellt eine gRPC-Version der Hive Metastore-Schnittstelle bereit.
- Wenn der Verbandsdienst während der Laufzeit eine Anfrage erhält, prüft er die Quellreihenfolge, um die entsprechenden Metadaten abzurufen.
Metadatenquellen
Wenn Sie einen Dienst zur Datenabfrage erstellen, müssen Sie eine Metadatenquelle hinzufügen. Sie können die folgenden Quellen als Backend-Metaspeicher verwenden:
- Eine Dataproc Metastore-Instanz.
- Ein Projekt mit einem oder mehreren BigQuery-Datasets.
- Dataplex-Lake (Vorabversion)
Quelleneinschränkungen
Im folgenden Abschnitt werden die Einschränkungen aufgeführt, die Sie bei der Verwendung verschiedener Metadatenquellen beachten müssen.
Alle Quellen
Für alle Metadatenquellen gelten die folgenden Einschränkungen:
- Ein Verbandsdienst enthält keine eigenen Daten. Stattdessen stellt der Dienst nur Metadaten aus einer seiner Metadatenquellen bereit.
- Ein Föderationsdienst kann nicht die Quelle von Metadaten in einem anderen Föderationsdienst sein.
Dataproc Metastore
Wenn Sie einen Dataproc Metastore als Quelle verwenden, gelten die folgenden Einschränkungen:
- Federation-Dienste sind nur über gRPC-Endpunkte verfügbar. Wenn Sie einen Dataproc Metastore mit einer Federation verwenden möchten, erstellen Sie Ihren Metastore mit einem gRPC-Endpunkt.
- Federation-Dienste können an Dataproc Metastore-Dienste einer einzelnen Region angehängt werden. Federation-Dienste unterstützen keine Dataproc Metastore-Dienste mit mehreren Regionen.
BigQuery
Wenn Sie ein Projekt mit BigQuery-Datasets als Quelle verwenden, müssen folgende Bedingungen erfüllt sein:
- Gewähren Sie die richtigen IAM-Rollen für den Zugriff auf das Projekt, das die BigQuery-Datasets enthält.
- Fügen Sie mindestens einen Dataproc Metastore-Dienst als Quelle sowie Ihre BigQuery-Datasets hinzu.
Dataplex-Lakes
- Gewähren Sie eine IAM-Rolle mit der Berechtigung
dataplex.lakes.get
. - Fügen Sie mindestens einen Dataproc Metastore-Dienst als Quelle sowie Ihren Dataplex-Lake hinzu.
Quellensortierung
Ihr Verbandsdienst verarbeitet Metadatenanfragen in einer Prioritätsreihenfolge. Dieses Konzept wird als Quellensortierung bezeichnet. Wenn der Verbandsdienst während der Laufzeit eine Anfrage erhält, prüft er die Quellenreihenfolge und führt eine der folgenden Aktionen aus:
- Wenn die Anfrage einen Datenbanknamen enthält Die Anfrage wird an den Backend-Metastore weitergeleitet, der den Datenbanknamen enthält. Wenn mehrere Metastores denselben Datenbanknamen enthalten, wird die Anfrage an den Metastore mit dem niedrigsten Rang weitergeleitet.
- Ob durch die Anfrage eine Datenbank erstellt oder gelöscht wird Die Anfrage wird an den Metastore mit dem niedrigsten Rang weitergeleitet.
- Wenn die Anfrage keinen Datenbanknamen enthält und keine Datenbank erstellt oder gelöscht wird Die Anfrage wird an die Dataproc Metastore-Instanz mit dem niedrigsten Rang weitergeleitet. Beispiele für Hive Metastore-Anfragen ohne Angabe einer Datenbank sind
set_ugi
undcreate_database
. - Wenn keiner der Metaspeicher eine Datenbank enthält Die OSS-Engine antwortet mit dem Äquivalent eines Fehlers vom Typ „Nicht gefunden“.