Metadatenföderation

Metadatenföderation ist ein Dienst, mit dem Sie über einen einzigen Endpunkt auf mehrere Quellen von Metadaten zugreifen können.

Zum Einrichten einer Föderation erstellen Sie einen Föderationsdienst und konfigurieren dann Ihre Metadatenquellen. Anschließend stellt der Dienst einen einzelnen gRPC-Endpunkt bereit, mit dem Sie auf alle Metadaten zugreifen können.

Mithilfe von Föderation können Sie beispielsweise einen Dataproc-Cluster erstellen, der mehrere Dataproc Metastore-Dienste über einen einzelnen Endpunkt verfügbar macht. Anschließend können Sie Big-Data-Jobs über Open-Source-Software-Engines (OSS) wie Spark oder Hive ausführen, um in mehreren Metaspeichern auf Ihre Metadaten zuzugreifen.

Funktionsweise von Föderation

Big-Data-Arbeitslasten von OSS, die in Spark oder Hive ausgeführt werden, senden Anfragen an die Hive Metastore API, um Metadaten zur Laufzeit abzurufen.

  • Die Hive Metastore-Oberfläche unterstützt sowohl Lese- als auch Schreibmethoden. Der Föderationsdienst stellt eine gRPC-Version der Hive Metastore-Schnittstelle bereit.
  • Wenn der Föderationsdienst zur Laufzeit eine Anfrage erhält, überprüft er die Quellenreihenfolge, um die entsprechenden Metadaten abzurufen.

Metadatenquellen

Wenn Sie einen Föderationsdienst erstellen, müssen Sie eine Metadatenquelle hinzufügen. Sie können die folgenden Quellen als Back-End-Metaspeicher verwenden:

  • Eine Dataproc Metastore-Instanz.
  • Ein Projekt mit einem oder mehreren BigQuery-Datasets.
  • Ein Dataplex-Lake (Vorabversion).

Quelleneinschränkungen

Der folgende Abschnitt enthält die Einschränkungen, die Sie bei der Verwendung verschiedener Metadatenquellen beachten müssen.

Alle Quellen

Die folgenden Einschränkungen gelten für alle Metadatenquellen:

  • Ein Föderationsdienst enthält keine eigenen Daten. Stattdessen stellt der Föderationsdienst nur Metadaten aus einer seiner Metadatenquellen bereit.
  • Ein Föderationsdienst kann keine Quelle für Metadaten in einem anderen Föderationsdienst sein.

Dataproc Metastore

Wenn Sie einen Dataproc Metastore als Quelle verwenden, gelten die folgenden Einschränkungen:

  • Föderationsdienste sind nur über gRPC-Endpunkte verfügbar. Wenn Sie einen Dataproc Metastore mit Föderation verwenden möchten, erstellen Sie den Metaspeicher mit einem gRPC-Endpunkt.
  • Föderationsdienste können an Dataproc Metastore-Dienste für einzelne Regionen in einer beliebigen Region angehängt werden. Föderationsdienste unterstützen keine multiregionalen Dataproc Metastore-Dienste.

BigQuery

Wenn Sie ein Projekt verwenden, das BigQuery-Datasets als Quelle enthält, müssen Sie die folgenden Bedingungen erfüllen:

  • Gewähren Sie die richtigen IAM-Rollen für den Zugriff auf das Projekt, das die BigQuery-Datasets enthält.
  • Fügen Sie zusammen mit Ihren BigQuery-Datasets mindestens einen Dataproc Metastore-Dienst als Quelle hinzu.

Dataplex-Lakes

  • Gewähren Sie eine IAM-Rolle mit der Berechtigung dataplex.lakes.get.
  • Fügen Sie neben Ihrem Dataplex Lake mindestens einen Dataproc Metastore-Dienst als Quelle hinzu.

Quellensortierung

Ihr Föderationsdienst verarbeitet Metadatenanfragen in der Reihenfolge der Priorität. Dieses Konzept wird als Quellensortierung bezeichnet. Wenn der Föderationsdienst zur Laufzeit eine Anfrage erhält, überprüft er die Quellensortierung und führt eine der folgenden Aktionen aus:

  • Die Anfrage enthält einen Datenbanknamen. Die Anfrage wird an den Back-End-Metaspeicher weitergeleitet, der den Datenbanknamen enthält. Wenn mehrere Metaspeicher denselben Datenbanknamen enthalten, wird die Anfrage an den Metaspeicher mit dem niedrigsten Rang weitergeleitet.
  • Wenn durch die Anfrage eine Datenbank erstellt oder gelöscht wird: Die Anfrage wird an den Metaspeicher 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. Einige Beispiele für Hive Metastore-Anfragen, die keine Datenbank angeben, sind set_ugi und create_database.
  • Keiner der Metaspeicher enthält eine Datenbank. Die OSS-Engine reagiert mit dem Äquivalent eines Fehlers vom Typ „Nicht gefunden“.

Nächste Schritte