Migrer des métadonnées de catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg
Ce document explique comment migrer des métadonnées de catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg. Le service de migration BigQuery est compatible avec la migration de métadonnées à partir des metastores externes suivants :
- Metastore Apache Hive
- Catalogues REST Apache Iceberg
Limites
- Les migrations de métadonnées de catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg sont une synchronisation unique. 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 compatibles.
- Le catalogue REST Iceberg n'est compatible qu'avec les fichiers de données Parquet.
- Lakehouse n'est pas compatible avec les tables Apache Iceberg V3.
- Les migrations de métadonnées de catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg ne sont compatibles qu'avec les migrations de 10 000 tables au maximum. 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 de catalogues de données externes vers des tables de catalogue REST Lakehouse pour Apache Iceberg ne sont pas compatibles avec l'utilisation de stratégies d'organisation pour appliquer le partage limité au domaine.
Avant de commencer
Avant de pouvoir migrer des métadonnées à partir 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 avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui
contient l'autorisation serviceusage.services.enable. 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éé lors de l'activation de l'API Data Transfer.
Pour vous assurer que l'agent de service dispose des autorisations nécessaires pour exécuter un transfert de metastore Hive, demandez à votre administrateur d'attribuer les rôles IAM suivants à l'agent de service dans 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 des 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, attribuez le rôle
roles/iam.serviceAccountTokenCreatorà l'agent de service à l'aide de la commande suivante :gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.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.iam.gserviceaccount.com) dans le projet :roles/storage.admin- Si vous effectuez une migration à partir d'un environnement sur site/HDFS, vous devez également attribuer 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 une migration de tables de catalogue REST Lakehouse pour Apache Iceberg, demandez à votre administrateur d'attribuer les rôles IAM suivants à l'agent de service pour l'utilisateur :
- Utilisateur du compte de service (
roles/iam.serviceAccountUser) - Éditeur de gestion des migrations (
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 de compte de service requis
Pour vous assurer que le compte de service fourni par le client dispose des autorisations nécessaires pour créer, modifier et exécuter une migration de tables de catalogue REST Lakehouse pour Apache Iceberg, demandez à votre administrateur d'attribuer les rôles IAM suivants au compte de service fourni par le client :
-
Accès au rattachement de réseau :
Administrateur réseau 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 via des rôles personnalisés ou d'autres rôles prédéfinis.
Vous devez également attribuer le rôle roles/iam.serviceAccountTokenCreator à l'agent de service à l'aide de la commande suivante :
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member user:bigquerymigration-management-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member bigquerymigration-managementworker-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Remplacez les éléments suivants :
SERVICE_ACCOUNT: ID du compte de service.PROJECT_ID: ID du projet.
Configurer le secret
Si vous effectuez une migration vers un catalogue REST Apache Iceberg, 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 OAuth 2.0.CLIENT_SECRET: code secret du client OAuth 2.0.POLARIS_REALM: domaine du catalogue Polaris. Ce champ n'est obligatoire que pour Apache Polaris. Exemple :FINANCE.SCOPE: (facultatif) champ d'application OAuth 2.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é lors de la création du catalogue.
Migrer des métadonnées
Pour démarrer une migration de métadonnées vers des tables de catalogue REST Lakehouse Iceberg, procédez comme suit :
Dans la Google Cloud console, 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. Elle détermine également l'emplacement où le service de migration utilise ou crée des ressources, telles que des rattachements de réseau ou des secrets.
Seuls les secrets régionaux sont acceptés. La région du secret doit correspondre à la région de ce champ.
Dans le champ Nom à afficher de la migration, saisissez un nom pour cette migration.
Sous Configuration du système source, procédez comme suit :
- Dans le champ URL, saisissez l'URL du point de terminaison de base qui sert de point d'entrée pour le metastore Apache Iceberg ou Apache Hive.
- Dans le champ 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 de l'utilisateur.
- (Facultatif) Dans le champ 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 des tables de catalogue REST Lakehouse Iceberg est sans frais. Une fois les métadonnées transférées, les tarifs Lakehouse s'appliquent.