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.

Habilitar las API

Se crea un agente de servicio cuando habilitas la API de Transferencia de datos.

Configura permisos

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

    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.

  3. Si usas una cuenta de servicio, otorga al agente de servicio el rol roles/iam.serviceAccountTokenCreator con 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
  4. 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:

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:

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 cliente
  • PROJECT_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.0
  • CLIENT_SECRET: el secreto del cliente de OAuth 2.0
  • POLARIS_REALM: Es el dominio del catálogo de Polaris. Este campo solo es obligatorio para Apache Polaris. Por ejemplo, FINANCE
  • SCOPE: Es el permiso de OAuth 2.0 (opcional). El valor predeterminado es PRINCIPAL_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:

  1. En la consola de Google Cloud , ve a la página Migración > Servicios.

    Ir a Servicios de migración

  2. En Registra o migra Open Lakehouse, haz clic en Crear migración.

  3. En Configuración de la migración, haz lo siguiente:

    1. En Tipo de catálogo, selecciona un catálogo externo.
    2. 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.

    3. En Nombre visible de la migración, ingresa un nombre para esta migración.

  4. En Configuración del sistema de origen, haz lo siguiente:

    1. 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.
    2. 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.
    3. En Adjunto de red, selecciona un adjunto de red (opcional).
  5. 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.