Créer un service de fédération de métadonnées

Cette page explique comment créer un service de fédération de métadonnées pour Dataproc Metastore. Un service de fédération vous permet d'accéder aux métadonnées stockées dans plusieurs sources à partir d'un seul point de terminaison gRPC.

Pour en savoir plus sur le fonctionnement de la fédération et ses limites, consultez À propos de la fédération de métadonnées.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour créer un service de fédération et associer un cluster Dataproc, en suivant le principe du moindre privilège, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Pour accéder au service de fédération : Accesseur de fédération (roles/metastore.federationAccessor) sur le compte utilisateur ou le compte de service
  • Pour accorder le contrôle total de toutes les ressources Dataproc Metastore : Éditeur Dataproc Metastore (roles/metastore.editor) sur le compte utilisateur ou le compte de service
  • Pour effectuer des opérations sur les métadonnées d'un Dataproc Metastore configuré avec un service de fédération : Propriétaire du metastore (metastore.metadataEditor) sur le compte utilisateur ou le compte de service
  • Pour créer un cluster Dataproc : Nœud de calcul Dataproc (roles/dataproc.worker) sur le compte de service de VM Dataproc
  • (Facultatif) Pour accéder aux ensembles de données BigQuery : Utilisez un rôle BigQuery prédéfini approprié à votre cas d'utilisation sur le compte utilisateur ou le compte de service.
  • (Facultatif) Pour accéder aux lacs Dataplex Universal Catalog (Aperçu) : Utilisez un rôle prédéfini Dataplex Universal Catalog approprié à votre cas d'utilisation sur le compte utilisateur ou le compte de service.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour créer un service de fédération et associer un cluster Dataproc, en suivant le principe du moindre privilège. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un service de fédération et associer un cluster Dataproc, conformément au principe du moindre privilège :

  • Pour créer un Dataproc Metastore : metastore.services.create sur le compte utilisateur ou le compte de service
  • Pour lister, obtenir, créer, modifier et supprimer un service de fédération : metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list sur le compte utilisateur ou le compte de service
  • Pour effectuer des opérations sur les métadonnées d'un Dataproc Metastore : 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 sur le compte utilisateur ou le compte de service
  • (Facultatif) Pour ajouter un service multirégional à la fédération : metastore.services.get sur les comptes Dataproc Metastore
  • (Facultatif) Pour accéder aux ensembles de données BigQuery : For more information, see BigQuery permissions sur le compte utilisateur ou le compte de service
  • (Facultatif) Pour accéder aux lacs Dataplex Universal Catalog (Preview) : For more information, see Dataplex Universal Catalog permissions sur le compte utilisateur ou le compte de service

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et autorisations Dataproc Metastore spécifiques, consultez Gérer l'accès à Dataproc Metastore avec Identity and Access Management.

Créer un service de fédération

Les instructions suivantes vous expliquent comment créer un service de fédération et l'associer à une source. Une fois ces étapes effectuées, vous pouvez associer votre service de fédération à un cluster Dataproc.

Pour en savoir plus sur les sources de fédération et leurs limites, consultez Sources de métadonnées.

Console

  1. Dans la console Google Cloud , ouvrez la page Dataproc Metastore :

    Ouvrir Dataproc Metastore

  2. Dans le menu de navigation Dataproc, cliquez sur Fédération.

    La page des services de métastore fédérés s'ouvre.

  3. Dans la barre de menu du metastore Federated, cliquez sur Create (Créer).

    La page Créer un service de fédération s'ouvre.

  4. Dans le champ Nom de la fédération, saisissez un nom unique pour votre service.

    Pour en savoir plus, consultez Recommandation pour l'attribution de noms aux ressources.

  5. Sélectionnez Data location (Emplacement des données).

    Assurez-vous de créer votre service de fédération dans les mêmes régions que vos sources Dataproc Metastore.

  6. Sélectionnez la version Hive.

  7. Pour ajouter une source à votre service de fédération, cliquez sur Ajouter une source.

    Vous pouvez ajouter une ou plusieurs sources. La première source que vous ajoutez à cette liste est automatiquement définie comme métastore principal. Vous pouvez modifier l'ordre des sources après la création.

    1. Pour Type de source, sélectionnez votre source de fédération.

      Vous pouvez choisir une instance Dataproc Metastore, un projet contenant un ou plusieurs ensembles de données BigQuery, ou un lac Dataplex Universal Catalog (preview).

    2. Dans le champ Source, saisissez les informations suivantes :

      • Pour un service Dataproc Metastore.

        1. Dans le champ Projet sélectionné, cliquez sur Parcourir, puis sélectionnez le projet contenant le Dataproc Metastore que vous souhaitez utiliser comme source.

          Assurez-vous que vos sources Dataproc Metastore utilisent une version Hive compatible avec votre service de fédération. Votre metastore principal doit utiliser une version de Hive supérieure ou égale à celle de votre service de fédération.

        2. Dans le menu déroulant Service Metastore, sélectionnez le service Dataproc Metastore que vous souhaitez utiliser comme source.

        3. (Facultatif) Cochez la case Afficher les services de métastore en dehors de ma région. Cette liste inclut le service Dataproc Metastore d'autres régions, y compris les régions multiples.

          Pour activer la fédération sur un service Dataproc Metastore multirégional, sélectionnez un service Dataproc Metastore multirégional dans cette liste.

      • Pour BigQuery. Dans le champ Projet sélectionné, cliquez sur Parcourir, puis sélectionnez l'ID du projet contenant l'ensemble de données BigQuery.

      • Pour Dataplex Universal Catalog (aperçu). Dans le champ Projet sélectionné, cliquez sur Parcourir, puis sélectionnez l'ID du projet contenant le lac Dataplex Universal Catalog.

    3. Cliquez sur OK.

  8. Pour créer et démarrer le service, cliquez sur Envoyer.

    Vous pouvez désormais associer votre service de fédération à un cluster Dataproc.

CLI gcloud

Pour créer une fédération avec Dataproc Metastore, exécutez la commande suivante.

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

Remplacez les éléments suivants :

  • FEDERATION : nom de votre service de fédération Dataproc Metastore.
  • LOCATION : région Google Cloud dans laquelle créer la fédération.
  • RANK : numéro de classement pour chacun de vos métastores de backend utilisé pour résoudre les conflits de noms de bases de données. Le service de fédération interroge d'abord les numéros de classement inférieurs. Par exemple, un metastore de backend avec un rang de 1 est interrogé avant un metastore avec un rang de 2. Cette valeur doit être un nombre entier. Par exemple, --backends 1=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE : ressource relative de chaque métastore de backend au format suivant : METASTORE_TYPE:METASTORE_NAME. Pour les services Dataproc Metastore, utilisez dpms:SERVICE_ID. Le SERVICE_ID se trouve à l'emplacement suivant : projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION : version de Hive Metastore (3.1.2 ou 2.3.6).

Mettre à jour un service de fédération

Les instructions suivantes vous expliquent comment mettre à jour un service de fédération. Vous pouvez effectuer les tâches suivantes :

  • Ajoutez une source à un service de fédération.
  • Supprimez une source d'un service de fédération.
  • Modifiez l'ordre des sources contenues dans un service de fédération.
  • Supprimez définitivement un service de fédération. Une fois que vous avez supprimé un service, toutes ses ressources sont libérées.

Console

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

  1. Dans la console Google Cloud , ouvrez la page Dataproc Metastore :

    Ouvrir Dataproc Metastore

  2. Dans le menu de navigation Dataproc, cliquez sur Fédération.

    La page des services de métastore fédérés s'ouvre.

  3. Sur la page des services de métastore fédérés, cliquez sur le nom du service que vous souhaitez modifier.

    La page Service detail (Informations sur le service) s'affiche.

  4. Dans la barre de menu, cliquez sur Modifier.

    La page Modifier le service s'ouvre.

  5. Choisissez les valeurs que vous souhaitez modifier.

  6. Pour mettre à jour le service, cliquez sur Envoyer.

CLI gcloud

Pour mettre à jour une fédération avec Dataproc Metastore, exécutez la commande suivante.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION : nom de votre service de fédération Dataproc Metastore.
  • LOCATION : région Google Cloud dans laquelle créer la fédération.
  • RANK : numéro de classement pour chacun de vos métastores de backend utilisé pour résoudre les conflits de noms de bases de données. Le service de fédération interroge d'abord les numéros de classement inférieurs. Par exemple, un metastore de backend avec un rang de 1 est interrogé avant un metastore avec un rang de 2. Cette valeur doit être un nombre entier. Par exemple, --backends 2=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE : ressource relative de chaque métastore de backend au format suivant : METASTORE_TYPE:METASTORE_NAME. Pour les services Dataproc Metastore, utilisez dpms:SERVICE_ID. Le SERVICE_ID se trouve à l'emplacement suivant : projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION : version de Hive Metastore (3.1.2 ou 2.3.6).

Associer un cluster Dataproc à un service de fédération

Les instructions suivantes vous montrent comment créer un cluster Dataproc et associer un point de terminaison de service de fédération en tant que métastore.

Avant de commencer, suivez toutes les étapes décrites dans Avant de commencer et créez un service de fédération.

CLI gcloud

Pour créer un cluster Dataproc et y associer un point de terminaison de fédération, exécutez la commande gcloud Dataproc clusters create suivante.

 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"

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre nouveau cluster Dataproc.
  • PROJECT_ID : ID du projet Google Cloud dans lequel vous créez le cluster Dataproc.
  • LOCATION : région de votre cluster Dataproc.
  • IMAGE_VERSION : version de l'image Dataproc que vous souhaitez utiliser.

    Assurez-vous que l'image Dataproc que vous utilisez dans cette commande est compatible avec la version de Hive utilisée avec votre service de fédération. Pour en savoir plus, consultez la liste des versions d'image Dataproc.

  • SERVICE_ACCOUNT (facultatif) : compte de service que vous utilisez pour créer votre cluster Dataproc. S'il n'est pas spécifié, le cluster utilise votre compte de service Compute Engine par défaut.

  • FEDERATION_URI : URI du point de terminaison de votre service de fédération.

  • FEDERATION_VERSION : version de Hive utilisée par votre service de fédération.

  • WAREHOUSE_DIR : répertoire de l'entrepôt de données de votre Dataproc Metastore principal.

Étapes suivantes