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.

Activer les API

Un agent de service est créé lorsque vous activez l'API Data Transfer.

Configurer les autorisations

  1. 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.
  2. 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 :

    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 .

  3. 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
  4. 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 :

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 :

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 est PRINCIPAL_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 :

  1. Dans la Google Cloud console, accédez à la page Migration > Services.

    Accéder à la page "Services de migration"

  2. Sous Enregistrer ou migrer un lakehouse ouvert, cliquez sur Créer une migration.

  3. Sous Configuration de la migration, procédez comme suit :

    1. Pour le type de catalogue, sélectionnez un catalogue externe.
    2. 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.

    3. Dans le champ Nom à afficher de la migration, saisissez un nom pour cette migration.

  4. Sous Configuration du système source, procédez comme suit :

    1. 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.
    2. 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.
    3. (Facultatif) Dans le champ Rattachement de réseau, sélectionnez un rattachement de réseau.
  5. 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.