Migra metadatos de catálogos de datos externos a tablas de catálogos de REST de Lakehouse para Apache Iceberg
En este documento, se muestra cómo migrar metadatos de catálogos de datos externos a tablas de catálogos de REST de Lakehouse para Apache Iceberg. El servicio de migración de BigQuery admite la migración de metadatos de los siguientes metastores externos:
- Hive Metastore de Apache
- Catálogos de REST de Apache Iceberg
Limitaciones
- Las migraciones de metadatos de catálogos de datos externos a tablas de catálogos de REST de Lakehouse para Apache Iceberg son una sincronización única. Esta función no admite sincronizaciones continuas ni periódicas, por lo que las escrituras realizadas después de la migración no son visibles hasta que vuelvas a migrar.
- No se admiten espacios de nombres anidados.
- El catálogo de REST de Iceberg solo admite archivos de datos de Parquet.
- Lakehouse no admite tablas de Apache Iceberg V3.
- Las migraciones de metadatos de catálogos de datos externos a tablas de catálogos de REST de Lakehouse para Apache Iceberg solo admiten migraciones de hasta 10,000 tablas. Si tu carga de trabajo requiere procesar más de 10,000 tablas, te recomendamos que la dividas en varias migraciones.
- Las migraciones de metadatos de catálogos de datos externos a tablas de catálogos de REST de Lakehouse para Apache Iceberg no admiten el uso de políticas de la organización para aplicar el uso compartido restringido por dominio.
Antes de comenzar
Antes de migrar metadatos de tus catálogos de datos externos, debes realizar los pasos de las siguientes secciones.
Habilita las APIs
Habilita las APIs de BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager y Storage Transfer.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.
Se crea un agente de servicio cuando habilitas la API de Data Transfer.
Configura permisos
- El usuario o la cuenta de servicio que crea la transferencia debe tener el rol de administrador de BigQuery (
roles/bigquery.admin). Si usas una cuenta de servicio, solo se usa para crear la transferencia. Se crea un agente de servicio (P4SA) cuando se habilita la API de Data Transfer.
Para garantizar que el agente de servicio tenga los permisos necesarios para ejecutar una transferencia de Hive Metastore, pídele a tu administrador que le otorgue los siguientes roles de IAM al agente de servicio en el proyecto:
- Administrador de transferencia de almacenamiento (
roles/storagetransfer.admin) - Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de almacenamiento (
roles/storage.admin) -
Para migrar metadatos al catálogo de entornos de ejecución de Lakehouse (catálogo de REST de Iceberg o catálogo de Hive):
Administrador de BigLake (
roles/biglake.admin) -
Para migrar metadatos a Dataproc Metastore:
Propietario de datos de Dataproc Metastore (
roles/metastore.metadataOwner)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar los permisos necesarios al agente de servicio a través de roles personalizados o de otros roles predefinidos.
- Administrador de transferencia de almacenamiento (
Si usas una cuenta de servicio, otorga al agente de servicio el rol
roles/iam.serviceAccountTokenCreatorcon el siguiente comando: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
Otorga al agente de servicio del Servicio de transferencia de almacenamiento (
project-PROJECT_NUMBER@storage-transfer-service.s3ns-system.iam.gserviceaccount.com) los siguientes roles en el proyecto:roles/storage.admin- Si realizas la migración desde un entorno local o HDFS, también debes otorgar el rol
roles/storagetransfer.serviceAgent.
También puedes configurar permisos más detallados. Para obtener más información, consulta la siguiente guía:
Roles y permisos de usuario requeridos
Para garantizar que el agente de servicio tenga los permisos necesarios para crear, modificar y ejecutar una migración de tablas de catálogos de REST de Lakehouse para Apache Iceberg, pídele a tu administrador que le otorgue los siguientes roles de IAM al agente de servicio en el usuario:
- Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) - Editor de administración de migraciones (
roles/bigquerymigration.migrationEditor)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar los permisos necesarios al agente de servicio a través de roles personalizados o de otros roles predefinidos.
Roles y permisos de cuenta de servicio requeridos
Para garantizar que la cuenta de servicio proporcionada por el cliente tenga los permisos necesarios para crear, modificar y ejecutar una migración de tablas de catálogos de REST de Lakehouse para Apache Iceberg, pídele a tu administrador que le otorgue los siguientes roles de IAM a la cuenta de servicio proporcionada por el cliente:
-
Acceso al adjunto de red:
Administrador de red de Compute (
roles/compute.networkAdmin) en la cuenta de servicio -
Acceso al Servicio de transferencia de datos de BigQuery:
Administrador de BigQuery (
roles/bigquery.admin) en la cuenta de servicio -
Acceso a los recursos de Lakehouse:
Editor de BigLake (
roles/biglake.editor) en la cuenta de servicio -
Acceso a secretos:
Usuario con acceso a secretos de Secret Manager (
roles/secretmanager.secretAccessor) en el secreto proporcionado por el cliente
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar los permisos necesarios a la cuenta de servicio proporcionada por el cliente a través de roles personalizados o de otros roles predefinidos.
También debes crear una identidad de servicio para el servicio de migración de BigQuery y otorgarle el rol roles/iam.serviceAccountTokenCreator.
Para crear la identidad de servicio, ejecuta el siguiente comando:
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
Para otorgar el rol al agente de servicio, ejecuta el siguiente comando:
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
Reemplaza lo siguiente:
SERVICE_ACCOUNT: El ID de la cuenta de servicio proporcionada por el clientePROJECT_ID: El ID del proyectoPROJECT_NUMBER: El número del proyecto
Configura el secreto
Si realizas la migración a un catálogo de REST de Apache Iceberg, debes crear un secreto para autorizar la migración. El secreto debe tener el siguiente formato:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET<",
"polaris_realm": "POLARIS_REALM"
"scope": "SCOPE"
}Reemplaza lo siguiente:
CLIENT_ID: El ID de cliente de OAuth 2.0CLIENT_SECRET: El secreto del cliente de OAuth 2.0POLARIS_REALM: El dominio del catálogo de Polaris. Este campo solo es obligatorio para Apache Polaris. Por ejemplo,FINANCE.SCOPE: (Opcional) El alcance de OAuth 2.0. El valor predeterminado esPRINCIPAL_ROLE:ALL.
Crea un catálogo de Lakehouse
Crea un catálogo de Lakehouse. Los metadatos migrados se almacenan en el bucket de Cloud Storage que especificaste cuando creaste el catálogo.
Migra metadatos
Para iniciar una migración de metadatos a tablas de catálogos de REST de Lakehouse Iceberg, haz lo siguiente:
En la Cloud de Confiance consola, ve a la página Migración > Servicios.
En Registra o migra Open Lakehouse, haz clic en Crear migración.
En Configuración de migración, haz lo siguiente:
- En tipo de catálogo, selecciona un catálogo externo.
En Región, elige una región. La región seleccionada determina dónde se ejecuta la organización de la migración y la transferencia de datos. También determina dónde el servicio de migración usa o crea recursos, como adjuntos de red o secretos.
Solo se admiten secretos regionales. La región del secreto debe coincidir con la región de este campo.
En Nombre visible de migración, ingresa un nombre para esta migración.
En Configuración del sistema de origen, haz lo siguiente:
- En URL, ingresa la URL base del extremo que actúa como punto de entrada para el metastore de Apache Iceberg o Apache Hive.
- En Cuenta de servicio, selecciona una cuenta de servicio de la lista. Si no se especifica, esta migración se ejecuta con la credencial del usuario.
- (Opcional) En Adjunto de red, selecciona un adjunto de red.
Haz clic en Continuar.
Cuando se complete la migración de metadatos, los metadatos de tus catálogos externos se almacenarán en el bucket de Cloud Storage que especificaste cuando creaste el catálogo de Lakehouse.
Precios
No hay costo por transferir metadatos a tablas de catálogos de REST de Lakehouse Iceberg. Una vez que se transfieren los metadatos, se aplican los precios de Lakehouse.