Metadaten-Verknüpfungsservice erstellen

Auf dieser Seite wird erläutert, wie Sie einen Dienst für die Metadatenföderation für Dataproc Metastore erstellen. Mit einem Föderationsdienst können Sie über einen einzelnen gRPC-Endpunkt auf Metadaten zugreifen, die in mehreren Quellen gespeichert sind.

Weitere Informationen zur Funktionsweise der Föderation und zu ihren Einschränkungen finden Sie unter Informationen zur Metadatenföderation.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Föderationsdienstes und zum Anhängen eines Dataproc-Clusters benötigen, wobei das Prinzip der geringsten Berechtigung berücksichtigt wird:

  • So greifen Sie auf den Föderationsdienst zu: Federation accessor (roles/metastore.federationAccessor) für das Nutzerkonto oder Dienstkonto
  • So gewähren Sie die vollständige Kontrolle über alle Dataproc Metastore-Ressourcen: Dataproc Metastore-Bearbeiter (roles/metastore.editor) für das Nutzerkonto oder Dienstkonto
  • So führen Sie Metadatenvorgänge für einen Dataproc Metastore aus, der mit einem Föderationsdienst konfiguriert ist: Metastore-Inhaber (metastore.metadataEditor) für das Nutzerkonto oder Dienstkonto
  • So erstellen Sie einen Dataproc-Cluster: Dataproc-Worker (roles/dataproc.worker) für das Dataproc-VM-Dienstkonto
  • Optional: So greifen Sie auf BigQuery-Datasets zu: Weisen Sie dem Nutzerkonto oder Dienstkonto eine geeignete vordefinierte BigQuery-Rolle zu, die für Ihren Anwendungsfall gilt.
  • Optional: So greifen Sie auf Dataplex Universal Catalog-Lakes (Vorabversion) zu: Verwenden Sie eine geeignete vordefinierte Dataplex Universal Catalog-Rolle für Ihren Anwendungsfall für das Nutzerkonto oder Dienstkonto.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen eines Föderationsdienstes und zum Anhängen eines Dataproc-Clusters erforderlich sind, wobei das Prinzip der geringsten Berechtigung berücksichtigt wird. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um einen Föderationsdienst zu erstellen und einen Dataproc-Cluster anzuhängen, wobei das Prinzip der geringsten Berechtigung gilt:

  • So erstellen Sie einen Dataproc Metastore: metastore.services.create für das Nutzerkonto oder Dienstkonto
  • So listen Sie einen Föderationsdienst auf, rufen ihn ab, erstellen, aktualisieren oder löschen ihn: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list für das Nutzerkonto oder Dienstkonto
  • So führen Sie Metadatenvorgänge in einem Dataproc Metastore aus: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy im Nutzerkonto oder Dienstkonto
  • Optional: So fügen Sie der Föderation einen multiregionalen Dienst hinzu: metastore.services.get auf den Dataproc Metastore-Konten
  • Optional: So greifen Sie auf BigQuery-Datasets zu: For more information, see BigQuery permissions für das Nutzerkonto oder Dienstkonto
  • Optional: So greifen Sie auf Dataplex Universal Catalog-Lakes (Vorschau) zu: For more information, see Dataplex Universal Catalog permissions für das Nutzerkonto oder Dienstkonto

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Dataproc Metastore-Zugriff mit Identity and Access Management verwalten.

Föderationsdienst erstellen

In der folgenden Anleitung erfahren Sie, wie Sie einen Föderationsdienst erstellen und an eine Quelle anhängen. Nachdem Sie diese Schritte ausgeführt haben, können Sie Ihren Föderationsdienst an einen Dataproc-Cluster anhängen.

Weitere Informationen zu Föderationsquellen und ihren Einschränkungen finden Sie unter Metadatenquellen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:

    Dataproc Metastore öffnen

  2. Klicken Sie im Dataproc-Navigationsmenü auf Federation.

    Die Seite Federated-Metastore-Dienste wird geöffnet.

  3. Klicken Sie in der Menüleiste des Metastore Federated auf Create (Erstellen).

    Die Seite Föderationsdienst erstellen wird geöffnet.

  4. Geben Sie im Feld Name der Föderation einen eindeutigen Namen für Ihren Dienst ein.

    Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.

  5. Wählen Sie den Speicherort der Daten aus.

    Achten Sie darauf, dass Sie den Föderationsdienst in denselben Regionen wie Ihre Dataproc Metastore-Quellen erstellen.

  6. Wählen Sie die Version von Hive aus.

  7. Wenn Sie eine Quelle für Ihren föderierten Dienst hinzufügen möchten, klicken Sie auf Quelle hinzufügen.

    Sie können eine oder mehrere Quellen hinzufügen. Die erste Quelle, die Sie dieser Liste hinzufügen, wird automatisch als primärer Metastore festgelegt. Sie können die Reihenfolge der Quellen nach der Erstellung aktualisieren.

    1. Wählen Sie unter Quelltyp Ihre Föderationsquelle aus.

      Sie können eine Dataproc Metastore-Instanz, ein Projekt mit einem oder mehreren BigQuery-Datasets oder einen Dataplex Universal Catalog-Lake (Vorschau) auswählen.

    2. Geben Sie im Feld Quelle die folgenden Informationen ein:

      • Für einen Dataproc Metastore-Dienst.

        1. Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie das Projekt aus, das den Dataproc Metastore enthält, den Sie als Quelle verwenden möchten.

          Achten Sie darauf, dass für Ihre Dataproc Metastore-Quellen eine Hive-Version verwendet wird, die mit Ihrem Föderationsdienst kompatibel ist. Für Ihren primären Metastore muss eine Hive-Version verwendet werden, die größer oder gleich der Version Ihres Föderationsdienstes ist.

        2. Wählen Sie im Drop-down-Menü Metastore-Dienst den Dataproc Metastore aus, den Sie als Quelle verwenden möchten.

        3. Optional: Klicken Sie das Kästchen Metastore-Dienste außerhalb meiner Region anzeigen an. Hier werden Dataproc Metastore-Dienste aus anderen Regionen, einschließlich Mehrfachregionen, aufgeführt.

          Wenn Sie die Föderation für einen multiregionalen Dataproc Metastore-Dienst aktivieren möchten, wählen Sie einen multiregionalen Dataproc Metastore-Dienst aus dieser Liste aus.

      • Für BigQuery Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie die Projekt-ID des Projekts aus, das das BigQuery-Dataset enthält.

      • Für Dataplex Universal Catalog (Vorschau). Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie die Projekt-ID des Projekts aus, das den Dataplex Universal Catalog-Lake enthält.

    3. Klicken Sie auf Fertig.

  8. Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.

    Sie können Ihren Föderationsdienst jetzt an einen Dataproc-Cluster anhängen.

gcloud-CLI

Führen Sie den folgenden Befehl aus, um eine Föderation mit Dataproc Metastore zu erstellen.

gcloud metastore federations create FEDERATION \
  --location LOCATION \
  --backends RANK=BACKEND_METASTORE \
  --hive-metastore-version HIVE_VERSION

Ersetzen Sie Folgendes:

  • FEDERATION: Der Name Ihres Dataproc Metastore-Föderationsdienstes.
  • LOCATION: Die Google Cloud Region, in der die Föderation erstellt werden soll.
  • RANK: Eine Rankingnummer für jeden Ihrer Backend-Metastores, die zum Beheben von Konflikten bei Datenbanknamen verwendet wird. Der Föderationsdienst fragt zuerst Nummern mit niedrigerem Rang ab. Beispielsweise wird ein Backend-Metastore mit dem Rang 1 vor einem Metastore mit dem Rang 2 abgefragt. Dieser Wert muss eine Ganzzahl sein. Beispiel: --backends 1=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: Die relative Ressource jedes Backend-Metastores im folgenden Format: METASTORE_TYPE:METASTORE_NAME. Verwenden Sie für Dataproc Metastore-Dienste dpms:SERVICE_ID. Die SERVICE_ID finden Sie unter projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: Die Version von Hive Metastore (entweder 3.1.2 oder 2.3.6).

Föderationsdienst aktualisieren

In der folgenden Anleitung erfahren Sie, wie Sie einen Föderationsdienst aktualisieren. Sie können folgende Aufgaben ausführen:

  • Fügen Sie einem Föderationsdienst eine Quelle hinzu.
  • Entfernen Sie eine Quelle aus einem Föderationsdienst.
  • Ändern Sie die Reihenfolge der Quellen, die in einem föderierten Dienst enthalten sind.
  • Löschen Sie einen Föderationsdienst dauerhaft. Wenn Sie einen Dienst löschen, werden alle seine Ressourcen freigegeben.

Console

https://cloud.google.com/dataproc-metastore/docs/create-federation

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:

    Dataproc Metastore öffnen

  2. Klicken Sie im Dataproc-Navigationsmenü auf Federation.

    Die Seite Federated-Metastore-Dienste wird geöffnet.

  3. Klicken Sie auf der Seite Federated (Föderiert) auf den Namen des Dienstes, den Sie aktualisieren möchten.

    Die Seite Dienstdetails wird geöffnet.

  4. Klicken Sie in der Menüleiste auf Bearbeiten.

    Die Seite Dienst bearbeiten wird geöffnet.

  5. Wählen Sie die Werte aus, die Sie aktualisieren möchten.

  6. Klicken Sie auf Senden, um den Dienst zu aktualisieren.

gcloud-CLI

Führen Sie den folgenden Befehl aus, um eine Föderation mit Dataproc Metastore zu aktualisieren.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION: Der Name Ihres Dataproc Metastore-Föderationsdienstes.
  • LOCATION: Die Google Cloud Region, in der die Föderation erstellt werden soll.
  • RANK: Eine Rankingnummer für jeden Ihrer Backend-Metastores, die zum Beheben von Konflikten bei Datenbanknamen verwendet wird. Der Föderationsdienst fragt zuerst Nummern mit niedrigerem Rang ab. Beispielsweise wird ein Backend-Metastore mit dem Rang 1 vor einem Metastore mit dem Rang 2 abgefragt. Dieser Wert muss eine Ganzzahl sein. Beispiel: --backends 2=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: Die relative Ressource jedes Backend-Metastores im folgenden Format: METASTORE_TYPE:METASTORE_NAME. Verwenden Sie für Dataproc Metastore-Dienste dpms:SERVICE_ID. Die SERVICE_ID finden Sie unter projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: Die Version von Hive Metastore (entweder 3.1.2 oder 2.3.6).

Dataproc-Cluster an einen Föderationsdienst anhängen

In der folgenden Anleitung wird gezeigt, wie Sie einen Dataproc-Cluster erstellen und einen Endpunkt für den Föderationsdienst als Metastore anhängen.

Bevor Sie mit dieser Anleitung beginnen, führen Sie alle Schritte unter Vorbereitung aus und erstellen Sie einen Federation-Dienst.

gcloud-CLI

Führen Sie den folgenden gcloud Dataproc clusters create-Befehl aus, um einen Dataproc-Cluster zu erstellen und einen Föderationsendpunkt anzuhängen.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: der Name Ihres neuen Dataproc-Clusters.
  • PROJECT_ID: die Google Cloud Projekt-ID des Projekts, in dem Sie den Dataproc-Cluster erstellen.
  • LOCATION: Die Region Ihres Dataproc-Clusters.
  • IMAGE_VERSION: Die Dataproc-Image-Version, die Sie verwenden möchten.

    Achten Sie darauf, dass das Dataproc-Image, das Sie in diesem Befehl verwenden, mit der Hive-Version kompatibel ist, die mit Ihrem Föderationsdienst verwendet wird. Weitere Informationen finden Sie in der Liste der Dataproc-Image-Versionen.

  • SERVICE_ACCOUNT (optional): Das Dienstkonto, das Sie zum Erstellen Ihres Dataproc-Clusters verwenden. Wenn nicht angegeben, verwendet der Cluster Ihr Compute Engine-Standarddienstkonto.

  • FEDERATION_URI: Der Endpunkt-URI Ihres Föderationsdienstes.

  • FEDERATION_VERSION: Die Hive-Version, die von Ihrem Föderationsdienst verwendet wird.

  • WAREHOUSE_DIR: das Warehouse-Verzeichnis Ihres primären Dataproc Metastore.

Nächste Schritte