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.

Habilitar las API

Se crea un agente de servicio cuando habilitas la API de Data Transfer.

Configura permisos

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

    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.s3ns-system.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.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:

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:

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 cliente
  • PROJECT_ID: El ID del proyecto
  • PROJECT_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.0
  • CLIENT_SECRET: El secreto del cliente de OAuth 2.0
  • POLARIS_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 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 tablas de catálogos de REST de Lakehouse Iceberg, haz lo siguiente:

  1. En la Cloud de Confiance consola, 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 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 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.

    3. En Nombre visible de 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 base del extremo que actúa como punto de entrada para el metastore 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. (Opcional) En Adjunto de red, selecciona un adjunto de red.
  5. 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.