Importa tablas de Delta Lake a Lakehouse con Dataflow

Migrar tablas de Delta Lake a Lakehouse para Apache Iceberg puede ser complejo y costoso si tienes que reescribir o mover grandes volúmenes de datos. Para que tus datos de Delta Lake estén disponibles en Lakehouse sin mover ni reescribir los archivos subyacentes, puedes usar el compilador de trabajos de Dataflow. El compilador de trabajos proporciona una interfaz de poco código o sin código para importar tus tablas de Delta Lake de Cloud Storage directamente a Lakehouse.

En el caso de las tablas nuevas, Dataflow crea el esquema automáticamente. En el caso de las tablas existentes, el esquema no se modifica, por lo que el esquema de la tabla de destino debe asignarse correctamente a la tabla de Delta Lake de origen para que el trabajo se realice correctamente.

Usa los siguientes detalles de conexión para importar datos desde una tabla de Delta Lake almacenada en Cloud Storage.

Antes de comenzar

Para importar datos de la tabla de Delta Lake, necesitas lo siguiente:

  1. Habilita las APIs de Dataflow, BigQuery y Lakehouse.

    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 Propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

    Habilitar las API

  2. Para obtener los permisos que necesitas para crear los recursos, pídele a tu administrador que te otorgue los roles de Identity and Access Management (IAM) necesarios en tu proyecto.

  3. Una tabla de Delta Lake existente almacenada en un bucket de Cloud Storage. El directorio de la tabla debe ser una raíz de tabla de Delta Lake válida que contenga tus archivos de datos de Parquet y el directorio de registro de transacciones _delta_log/.

  4. Un catálogo, un espacio de nombres y una tabla de Lakehouse Iceberg para importar los datos.

Asistencia y limitaciones

La importación de datos de la tabla de Delta Lake a Lakehouse para Apache Iceberg con Dataflow tiene las siguientes limitaciones:

  • Debes usar un trabajo de canalización por lotes para usar esta función.
  • En el caso de las tablas de destino existentes, el esquema no se modifica. El esquema de la tabla de destino debe asignarse correctamente al esquema de la tabla de Delta Lake de origen.
  • Los datos de origen deben ser una tabla de Delta Lake válida almacenada en Cloud Storage. El directorio raíz de la tabla debe contener los archivos de datos de Parquet y el directorio de registro de transacciones _delta_log/ (que contiene archivos de registro JSON o Parquet) creados por Delta Lake.
  • Amazon S3 no es compatible con las fuentes de tablas de Delta Lake.

Importa una tabla de Delta Lake

Para importar una tabla de Delta Lake a Lakehouse para Apache Iceberg, completa los siguientes pasos:

  1. En la Google Cloud consola de, ve a la página Catálogo de entorno de ejecución de Lakehouse.

    Ir al catálogo de entorno de ejecución de Lakehouse

  2. Selecciona el catálogo, el espacio de nombres y la tabla a los que deseas importar datos.

  3. En la página Detalles de la tabla , haz clic en Importar tabla y, luego, selecciona Desde Delta Lake (por lotes).

    Se abrirá la página Compilador de trabajos de Dataflow con el plano Delta Lake a Lakehouse cargado.

  4. En la sección Fuentes , haz lo siguiente:

    1. Para expandir el panel de origen ReadFromDeltaLake Tabla de Delta Lake , haz clic en la flecha de expansión .

    2. En el campo Ruta de acceso de la tabla, ingresa el URI de Cloud Storage del directorio raíz de la tabla de Delta Lake (el directorio que contiene los archivos de datos y el directorio _delta_log/). Por ejemplo, gs://BUCKET_NAME/tables/TABLE_NAME.

    3. Opcional: En el campo Propiedades de configuración de Hadoop, configura las propiedades de configuración de Hadoop adicionales necesarias para leer desde Cloud Storage. Por ejemplo: fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.

    4. Haz clic en Listo.

  5. En la sección Receptor , haz lo siguiente:

    1. Opcional: Revisa el panel de receptor WriteToIceberg Tabla de Lakehouse. La información de este panel, como la tabla de Lakehouse, el nombre del catálogo y la ubicación del almacén, suele estar propagada previamente.

    2. Haz clic en Listo.

  6. En la sección Opciones de Dataflow, haz clic en Ejecutar trabajo.

Si necesitas personalizar aún más la canalización de Dataflow que se usa para importar tablas de Delta Lake, puedes hacerlo con el formulario del compilador de trabajos o el editor de YAML.

Examina el resultado del trabajo

Una vez que se complete el trabajo, puedes verificar que los datos se hayan registrado en la tabla de Iceberg consultándola en BigQuery.

  1. En la lista de trabajos de Dataflow, verifica que el estado del trabajo sea Finalizado de manera correcta.

    Ir a Trabajos

  2. Si el trabajo falla o tiene errores, consulta los registros del trabajo o los registros del trabajador para obtener más detalles.

  3. En la Google Cloud consola de, ve a la página Studio de BigQuery.

    Ir a BigQuery

  4. En el editor de consultas, ingresa una consulta en SQL para inspeccionar la tabla. Puedes usar la PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME convención para consultar lo siguiente:

    SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;
    
  5. Haz clic en Ejecutar.

  6. Revisa los Resultados de la consulta para asegurarte de que los datos se hayan procesado correctamente.

¿Qué sigue?