Importa archivos Parquet del almacenamiento al catálogo de tiempo de ejecución de Lakehouse con Dataflow

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

Este proceso usa la IcebergAddFiles transformación. Si tus archivos de Parquet están en Cloud Storage, esta transformación registra los archivos con Lakehouse sin mover ni reescribir los datos subyacentes. Si tus archivos están en un sistema de almacenamiento externo como Amazon S3, se copian a 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 de 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 Apache Iceberg para importar datos.

  4. Crea un bucket de almacenamiento basado en la nube (Cloud Storage o Amazon S3) y sube tus archivos de Parquet al bucket.

  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 de Parquet en el almacenamiento basado en la nube a Lakehouse para Apache Iceberg con Dataflow tiene las siguientes limitaciones:

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

Importa archivos de Parquet a Lakehouse

Usa los siguientes pasos para importar archivos de 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 Google Cloud consola de, ve a la página Lakehouse para Apache Iceberg.

    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.

  4. En el diálogo Import configuration, selecciona Import a table from an Apache Parquet files into Lakehouse (Batch).

    Se abrirá la página Compilador de trabajos de Dataflow.

  5. 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 origen de YAML, ingresa una o más rutas de acceso a tus archivos de 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.

  6. 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 de 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: Es tu Google Cloud ID del proyecto: PROJECT_ID.

      3. Haz clic en Listo.

    4. Si estás migrando desde S3, debes proporcionar configuraciones adicionales para copiar archivos de Parquet a 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. Configura el valor del parámetro de configuración gcs_file_path para proporcionar el bucket de Cloud Storage completamente calificado al 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.

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

      1. Haz clic en add additional pipeline options para proporcionar opciones de canalización de Apache Beam relacionadas con S3. Por ejemplo, s3_region_name, s3_access_key_id, s3_secret_access_key y sus valores correspondientes.
  7. En la sección Receptores , haz lo siguiente:

    1. Haz clic en el receptor Escribir resultados para abrirlo.

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

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

  8. 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 de 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 de manera correcta.

    Ir a Trabajos

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

    Ir a Buckets

  3. En la Google Cloud consola, 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.

    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 procesaron correctamente.

¿Qué sigue?