Metadatenföderierung

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

Um die Föderation einzurichten, erstellen Sie einen Föderationsdienst 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.

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

So funktioniert die Föderation

OSS-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 Föderationsdienst stellt eine gRPC-Version der Hive Metastore-Schnittstelle bereit.
  • Wenn der Föderationsdienst zur Laufzeit eine Anfrage empfängt, wird die Quellreihenfolge geprüft, 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 Backend-Metaspeicher verwenden:

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

Quellenbeschränkungen

Im folgenden Abschnitt sind 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 Verbunddienst enthält keine eigenen Daten. Stattdessen stellt der Föderationsdienst 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 Föderation verwenden möchten, erstellen Sie den Metastore mit einem gRPC-Endpunkt.
  • Verbunddienste können sowohl an Dataproc Metastore-Dienste mit einer einzelnen Region als auch an multiregionale Dataproc Metastore-Dienste angehängt werden.

    Wenn sich der multiregionale Metastore in einem anderen Projekt als der Föderationsdienst befindet, erteilen Sie dem Dataproc Metastore-Dienstkonto des Föderationsprojekts die Berechtigung metastore.services.get für die in der Multiregion konfigurierten Dataproc Metastore-Instanzen.

BigQuery

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

  • Weisen Sie die richtigen IAM-Rollen (Identity and Access Management) zu, um auf das Projekt zuzugreifen, das die BigQuery-Datasets enthält.
  • Fügen Sie mindestens einen Dataproc Metastore-Dienst als Quelle zusammen mit Ihren BigQuery-Datasets hinzu.

Dataplex Universal Catalog-Lakes

  • Weisen Sie eine IAM-Rolle mit der Berechtigung dataplex.lakes.get zu.
  • Fügen Sie mindestens einen Dataproc Metastore-Dienst als Quelle zusammen mit Ihrem Dataplex Universal Catalog-Lake hinzu.

Quellreihenfolge

Ihr Föderationsdienst verarbeitet Metadatenanfragen in der Reihenfolge ihrer Priorität. Dieses Konzept wird als Quellreihenfolge bezeichnet. Wenn der Föderationsdienst zur Laufzeit eine Anfrage erhält, prüft er die Reihenfolge der Quellen 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.
  • Wenn 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. Einige Beispiele für Hive Metastore-Anfragen, in denen keine Datenbank angegeben ist, sind set_ugi und create_database.
  • Keiner der Metastore-Server enthält eine Datenbank. Die OSS-Engine antwortet mit dem Äquivalent eines „Nicht gefunden“-Fehlers.

Nächste Schritte