Migra metadatos de catálogos de datos externos a tablas del catálogo de REST de Lakehouse para Apache Iceberg
En este documento, se muestra cómo migrar metadatos de Data Catalogs externos a tablas del catálogo de REST de Lakehouse para Apache Iceberg. El Servicio de migración de BigQuery admite la migración de metadatos desde los siguientes metastores externos:
- Apache Hive Metastore
- Catálogos de REST de Apache Iceberg
Limitaciones
- Las migraciones de metadatos de Data Catalog externos a tablas del catálogo 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 que se realicen después de la migración no serán visibles hasta que vuelvas a migrar.
- No se admiten los espacios de nombres anidados.
- El catálogo de REST de Iceberg solo admite archivos de datos de Parquet.
- Lakehouse sin fronteras no admite tablas de Apache Iceberg V3.
- Las migraciones de metadatos de catálogos de datos externos a tablas del catálogo 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 dividas la carga de trabajo en varias migraciones.
- Las migraciones de metadatos de catálogos de datos externos a tablas del catálogo 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 Data Catalog externos, debes seguir los pasos que se indican en las siguientes secciones.
Habilita las APIs
Habilita las APIs de BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager y Storage Transfer, si aún no están habilitadas.
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 obtenerlo 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 Transferencia de datos.
Configura permisos
- Se debe otorgar el rol de administrador de BigQuery (
roles/bigquery.admin) al usuario o a la cuenta de servicio que crea la transferencia. 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 Transferencia de datos.
Para asegurarte de 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 Storage Transfer (
roles/storagetransfer.admin) - Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de almacenamiento (
roles/storage.admin) -
Para migrar metadatos al catálogo de entorno de ejecución de Lakehouse (catálogo de REST de Iceberg o catálogo de Hive):
Administrador de BigLake (
roles/biglake.admin)
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 Storage Transfer (
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.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
Otorga al agente de servicio del Servicio de transferencia de almacenamiento (
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com) los siguientes roles en el proyecto:roles/storage.admin- Si migras 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 obligatorios
Para garantizar que el agente de servicio tenga los permisos necesarios para crear, modificar y ejecutar tablas de catálogo de REST de Lakehouse para la migración de Apache Iceberg, pídele a tu administrador que 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 migración (
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 la cuenta de servicio requeridos
Para garantizar que la cuenta de servicio proporcionada por el cliente tenga los permisos necesarios para crear, modificar y ejecutar tablas de catálogo de Lakehouse REST para la migración de Apache Iceberg, pídele a tu administrador que 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 los secretos:
Descriptor de 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 a la cuenta de servicio proporcionada por el cliente los permisos necesarios 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.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: Es el ID del proyecto.PROJECT_NUMBER: Es el número del proyecto.
Configura el secreto
Si migras 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: Es el dominio del catálogo de Polaris. Este campo solo es obligatorio para Apache Polaris. Por ejemplo,FINANCESCOPE: Es el permiso de OAuth 2.0 (opcional). 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 las tablas del catálogo de REST de Lakehouse para Iceberg, haz lo siguiente:
En la consola de Google Cloud , ve a la página Migración > Servicios.
En Registra o migra Open Lakehouse, haz clic en Crear migración.
En Configuración de la 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 ejecutan 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 secrets regionales. La región del Secret debe coincidir con la región de este campo.
En Nombre visible de la migración, ingresa un nombre para esta migración.
En Configuración del sistema de origen, haz lo siguiente:
- En URL, ingresa la URL del extremo base que actúa como punto de entrada para el almacén de metadatos 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.
- En Adjunto de red, selecciona un adjunto de red (opcional).
Haz clic en Continuar.
Cuando se completa la migración de metadatos, los metadatos de tus catálogos externos se almacenan en el bucket de Cloud Storage que especificaste cuando creaste el catálogo de Lakehouse.
Precios
No se aplican costos por transferir metadatos a las tablas del catálogo de REST de Iceberg de Lakehouse. Una vez que se transfieren los metadatos, se aplican los precios de Lakehouse.