Metadatenföderation

Die Metadatenföderation 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ö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.

Mithilfe der Föderation 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-Engines (OSS) wie Spark oder Hive ausführen, um über mehrere Metaspeicher auf Ihre Metadaten zuzugreifen.

Funktionsweise der 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 erhält, prüft er die Quellsortierung, 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, das ein oder mehrere BigQuery-Datasets enthält.
  • Einen Dataplex-Lake (Vorabversion)

Quelleneinschränkungen

Im folgenden Abschnitt sind die Einschränkungen aufgeführt, die Sie bei der Verwendung verschiedener Metadatenquellen einhalten 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 von 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 Ihren Metastore mit einem gRPC-Endpunkt.
  • Föderationsdienste müssen sich in derselben Region wie alle verknüpften Metaspeicher befinden. Wenn Sie beispielsweise Ihren Föderationsdienst in us-central1 erstellen, müssen Sie auch Ihre Metastores in us-central1 erstellen.

BigQuery

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

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

Dataplex-Lakes

  • Weisen Sie eine IAM-Rolle zu, die die Berechtigung dataplex.lakes.get enthält.
  • Fügen Sie mindestens einen Dataproc Metastore-Dienst als Quelle zusammen mit Ihrem Dataplex-Lake hinzu.

Quellensortierung

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

  • Wenn die Anfrage einen Datenbanknamen enthält. 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.
  • Durch die Anfrage wird eine Datenbank erstellt oder gelöscht. 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, für die keine Datenbank angegeben ist, sind set_ugi und create_database.
  • Wenn keiner der Metastores eine Datenbank enthält. Die OSS-Engine antwortet mit einem Nicht-gefunden-Fehler.

Nächste Schritte