Migrer des métadonnées depuis des catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg
Ce document vous explique comment migrer des métadonnées depuis des catalogues de données externes vers les tables du catalogue REST Lakehouse pour Apache Iceberg. Le service de migration BigQuery permet de migrer les métadonnées à partir des métastores externes suivants :
- Apache Hive Metastore
- Catalogues Apache Iceberg REST
Limites
- Les migrations de métadonnées depuis des catalogues de données externes vers les tables du catalogue REST Lakehouse pour Apache Iceberg sont des synchronisations ponctuelles. Cette fonctionnalité n'est pas compatible avec les synchronisations continues ou périodiques. Par conséquent, les écritures effectuées après la migration ne sont pas visibles tant que vous n'avez pas effectué une nouvelle migration.
- Les espaces de noms imbriqués ne sont pas acceptés.
- Le catalogue REST Iceberg n'accepte que les fichiers de données Parquet.
- Lakehouse n'est pas compatible avec les tables Apache Iceberg V3.
- Les migrations de métadonnées depuis des catalogues de données externes vers les tables du catalogue REST Lakehouse pour Apache Iceberg ne sont compatibles qu'avec un maximum de 10 000 tables. Si votre charge de travail nécessite le traitement de plus de 10 000 tables, nous vous recommandons de la répartir sur plusieurs migrations.
- Les migrations de métadonnées depuis des catalogues de données externes vers des tables de catalogue Lakehouse REST pour Apache Iceberg ne permettent pas d'utiliser des règles d'organisation pour appliquer le partage restreint au domaine.
Avant de commencer
Avant de pouvoir migrer les métadonnées de vos catalogues de données externes, vous devez suivre les étapes décrites dans les sections suivantes.
Activer les API
Activez les API BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager et Storage Transfer.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
Un agent de service est créé lorsque vous activez l'API Data Transfer.
Configurer les autorisations
- L'utilisateur ou le compte de service qui crée le transfert doit disposer du rôle Administrateur BigQuery (
roles/bigquery.admin). Si vous utilisez un compte de service, il ne sert qu'à créer le transfert. Un agent de service (P4SA) est créé lorsque vous activez l'API Data Transfer.
Pour vous assurer que l'agent de service dispose des autorisations nécessaires pour exécuter un transfert Hive Metastore, demandez à votre administrateur d'accorder à l'agent de service les rôles IAM suivants sur le projet :
- Administrateur de transfert de stockage (
roles/storagetransfer.admin) - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrateur de l'espace de stockage (
roles/storage.admin) -
Pour migrer les métadonnées vers le catalogue d'exécution Lakehouse (catalogue REST Iceberg ou catalogue Hive) :
Administrateur BigLake (
roles/biglake.admin) -
Pour migrer des métadonnées vers Dataproc Metastore :
Propriétaire de données Dataproc Metastore (
roles/metastore.metadataOwner)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Votre administrateur peut également attribuer à l'agent de service les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
- Administrateur de transfert de stockage (
Si vous utilisez un compte de service, accordez à l'agent de service le rôle
roles/iam.serviceAccountTokenCreatorà l'aide de la commande suivante :gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
Attribuez les rôles suivants à l'agent de service du service de transfert de stockage (
project-PROJECT_NUMBER@storage-transfer-service.s3ns-system.iam.gserviceaccount.com) dans le projet :roles/storage.admin- Si vous effectuez la migration depuis un système sur site/HDFS, vous devez également accorder le rôle
roles/storagetransfer.serviceAgent.
Vous pouvez également configurer des autorisations plus précises. Pour en savoir plus, consultez le guide suivant :
Rôles et autorisations utilisateur requis
Pour vous assurer que l'agent de service dispose des autorisations nécessaires pour créer, modifier et exécuter des tables de catalogue REST Lakehouse pour la migration Apache Iceberg, demandez à votre administrateur d'accorder les rôles IAM suivants à l'agent de service sur l'utilisateur :
-
Utilisateur du compte de service (
roles/iam.serviceAccountUser) - Éditeur Migration Management (
roles/bigquerymigration.migrationEditor)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Votre administrateur peut également attribuer à l'agent de service les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Rôles et autorisations requis pour le compte de service
Pour vous assurer que le compte de service fourni par le client dispose des autorisations nécessaires pour créer, modifier et exécuter des tables de catalogue REST Lakehouse pour la migration Apache Iceberg, demandez à votre administrateur d'accorder les rôles IAM suivants au compte de service fourni par le client :
-
Accès à l'association réseau :
Administrateur de réseaux Compute (
roles/compute.networkAdmin) sur le compte de service -
Accès au service de transfert de données BigQuery :
Administrateur BigQuery (
roles/bigquery.admin) sur le compte de service -
Accès aux ressources Lakehouse :
Éditeur BigLake (
roles/biglake.editor) sur le compte de service -
Accès aux secrets : Accesseur de secrets Secret Manager (
roles/secretmanager.secretAccessor) sur le secret fourni par le client
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Votre administrateur peut également attribuer au compte de service fourni par le client les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.
Vous devez également créer une identité de service pour le service de migration BigQuery et lui attribuer le rôle roles/iam.serviceAccountTokenCreator.
Pour créer l'identité de service, exécutez la commande suivante :
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
Pour accorder le rôle à l'agent de service, exécutez la commande suivante :
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bqms.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Remplacez les éléments suivants :
SERVICE_ACCOUNT: ID du compte de service fourni par le client.PROJECT_ID: ID du projetPROJECT_NUMBER: numéro du projet
Configurer un secret
Si vous migrez vers un catalogue Apache Iceberg REST, vous devez créer un secret pour autoriser la migration. Le secret doit être au format suivant :
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET<",
"polaris_realm": "POLARIS_REALM"
"scope": "SCOPE"
}Remplacez les éléments suivants :
CLIENT_ID: ID client OAuth2.0CLIENT_SECRET: code secret du client OAuth2.0POLARIS_REALM: domaine du catalogue Polaris. Ce champ n'est obligatoire que pour Apache Polaris. Exemple :FINANCESCOPE: (facultatif) champ d'application OAuth2.0. La valeur par défaut estPRINCIPAL_ROLE:ALL.
Créer un catalogue Lakehouse
Créez un catalogue Lakehouse. Les métadonnées migrées sont stockées dans le bucket Cloud Storage que vous avez spécifié lorsque vous avez créé le catalogue.
Migrer les métadonnées
Pour lancer une migration de métadonnées vers les tables du catalogue REST Iceberg Lakehouse, procédez comme suit :
Dans la console Cloud de Confiance , accédez à la page Migration > Services.
Sous Enregistrer ou migrer un lakehouse ouvert, cliquez sur Créer une migration.
Sous Configuration de la migration, procédez comme suit :
- Pour le type de catalogue, sélectionnez un catalogue externe.
Dans le champ Région, sélectionnez une région. La région sélectionnée détermine l'emplacement où l'orchestration de la migration et le transfert de données sont exécutés. Il détermine également où le service de migration utilise ou crée des ressources, telles que des secrets ou des pièces jointes réseau.
Seuls les secrets régionaux sont acceptés. La région du secret doit correspondre à la région indiquée dans ce champ.
Dans le champ Nom à afficher de la migration, saisissez le nom de cette migration.
Sous Configuration du système source, procédez comme suit :
- Dans le champ URL, saisissez l'URL de point de terminaison de base qui sert de point d'entrée pour le metastore Apache Iceberg ou Apache Hive.
- Pour Compte de service, sélectionnez un compte de service dans la liste. Si aucune valeur n'est spécifiée, cette migration s'exécute à l'aide des identifiants utilisateur.
- (Facultatif) Sous Rattachement de réseau, sélectionnez un rattachement de réseau.
Cliquez sur Continuer.
Une fois la migration des métadonnées terminée, les métadonnées de vos catalogues externes sont stockées dans le bucket Cloud Storage que vous avez spécifié lorsque vous avez créé le catalogue Lakehouse.
Tarifs
Le transfert de métadonnées vers les tables du catalogue REST Iceberg Lakehouse est sans frais. Une fois les métadonnées transférées, les tarifs Lakehouse s'appliquent.