Importa archivos Parquet del almacenamiento a Lakehouse sin bordes con Dataflow

Puedes usar un blueprint del compilador de trabajos de Dataflow para agregar archivos existentes de Apache Parquet desde el almacenamiento basado en la nube (Cloud Storage, Amazon S3 o Azure Blob Storage) a una tabla de Apache Iceberg en Lakehouse sin bordes.

En este proceso, se usa la transformación IcebergAddFiles. Si tus archivos Parquet están en Cloud Storage, esta transformación los registra en Lakehouse sin mover ni volver a escribir los datos subyacentes. Si tus archivos se encuentran en un sistema de almacenamiento externo, como Amazon S3, se copian en Cloud Storage para realizar consultas más rápidas a través de Lakehouse y, luego, se registran.

Usa los siguientes detalles de conexión para agregar archivos Parquet desde el almacenamiento basado en la nube a una tabla de Apache Iceberg en Lakehouse.

Antes de comenzar

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

  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. Crea un catálogo, un espacio de nombres y una tabla de Lakehouse para importar datos.

  4. Crea un bucket de almacenamiento basado en la nube (Cloud Storage, Amazon S3 o Azure Blob Storage) y sube tus archivos Parquet a él.

  5. Si el bucket de almacenamiento basado en la nube que usas no es Cloud Storage de Google, crea un bucket de Cloud Storage para almacenar los registros de errores de tu trabajo.

Asistencia y limitaciones

La importación de archivos Parquet en el almacenamiento basado en la nube a Lakehouse con Dataflow tiene las siguientes limitaciones:

  • Los datos de origen deben estar en formato Apache Parquet y almacenarse en Cloud Storage, Amazon S3 o Azure Blob Storage.
  • Esta función solo admite canalizaciones por lotes.

Importa archivos Parquet a Lakehouse

Sigue estos pasos para importar archivos Parquet desde el almacenamiento basado en la nube a una tabla de Iceberg en Lakehouse con la IU del compilador de trabajos de Dataflow.

  1. En la consola de Google Cloud , ve a la página Lakehouse.

    Ir a 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 archivos de Apache Parquet (por lotes).

    Se abrirá la página Job builder de Dataflow.

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

    1. Abre la entrada de origen CreateGlobalInput que ya se creó.

    2. En la sección del editor Configuración de la fuente YAML, ingresa una o más rutas de acceso a tus archivos Parquet en la secuencia elements.

      Para mejorar la eficiencia de la importación, especifica varios conjuntos de archivos (globs) cuando registres una gran cantidad de archivos. Por ejemplo:

      reshuffle: true
      elements:
        -   gs://BUCKET_NAME/restaurant-data/2023/*.parquet
        -   gs://BUCKET_NAME/restaurant-data/2024/*.parquet
      
    3. Haz clic en Listo.

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

    1. Haz clic en la sección de transformación IcebergAddFiles para abrirla.

    2. En el campo Tabla Iceberg, ingresa el espacio de nombres y el nombre de la tabla. Por ejemplo: NAMESPACE .TABLE_NAME .

    3. En Propiedades del catálogo, configura los siguientes elementos:

      1. warehouse: Es la ubicación de Cloud Storage de tu catálogo. Por ejemplo, gs://CATALOG_PATH

      2. header.x-goog-user-project: Tu ID del proyecto Google Cloud : PROJECT_ID.

      3. Haz clic en Listo.

    4. Si migras desde Amazon S3 o Azure Blob Storage, debes proporcionar configuraciones adicionales para copiar archivos Parquet en Cloud Storage. Esto no es necesario si tus archivos ya están en Cloud Storage.

      1. Haz clic en la sección de transformación CopyFilesToGCS para abrirla.

      2. Establece el valor del parámetro de configuración gcs_file_path para proporcionar el bucket de Cloud Storage completamente calificado en el que se copiarán los archivos temporales. Te recomendamos que uses el mismo bucket de Cloud Storage que usa el almacén de Lakehouse.

      3. Haz clic en Listo.

      4. Haz clic en la sección Opciones de Dataflow para abrirla.

      5. Si tus archivos Parquet están en Amazon S3, haz clic en add additional pipeline options para proporcionar opciones de canalización relacionadas con S3 de Apache Beam. Por ejemplo, s3_region_name, s3_access_key_id, s3_secret_access_key y sus valores correspondientes.

      6. Si tus archivos Parquet están en Azure Blob Storage, haz clic en add additional pipeline options para proporcionar opciones de canalización relacionadas con Azure de Apache Beam. Por ejemplo, azure_connection_string, blob_service_endpoint, azure_managed_identity_client_id y sus valores correspondientes.

  6. En la sección Receptores, haz lo siguiente:

    1. Haz clic en el receptor Write results para abrirlo.

    2. En el campo Ubicación del archivo JSON, especifica la ubicación y el nombre del archivo de Cloud Storage en el que se escribirán los resultados de los errores. Por ejemplo:

      gs://BUCKET_NAME/errors/errors.json
      
    3. Haz clic en Listo.

  7. 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 registrar archivos Parquet, 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 registraron 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 correctamente.

    Ir a Trabajos

  2. Si el trabajo falla o tiene errores, consulta el archivo de registro de errores en formato JSON en Cloud Storage para obtener más detalles.

    Ir a Buckets

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

    Ir a BigQuery

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

    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?