Importa i file Parquet nell'archiviazione nel catalogo di runtime di Lakehouse utilizzando Dataflow

Puoi utilizzare un blueprint del builder di job Dataflow per aggiungere file Apache Parquet esistenti da uno spazio di archiviazione basato su cloud (Cloud Storage, Amazon S3 o Azure Blob Storage) a una tabella Apache Iceberg in Lakehouse senza bordi.

Questo processo utilizza la IcebergAddFiles trasformazione. Se i file Parquet si trovano in Cloud Storage, questa trasformazione registra i file con Lakehouse senza spostare o riscrivere i dati sottostanti. Se i file si trovano in un sistema di archiviazione esterno come Amazon S3, vengono copiati in Cloud Storage per una query più rapida tramite Lakehouse e poi registrati.

Utilizza i seguenti dettagli di connessione per aggiungere file Parquet da uno spazio di archiviazione basato sul cloud a una tabella Apache Iceberg in Lakehouse.

Prima di iniziare

  1. Abilita le API Dataflow, BigQuery e Lakehouse.

  2. Per ottenere le autorizzazioni necessarie per creare le risorse, chiedi all'amministratore di concederti i ruoli Identity and Access Management (IAM) richiesti per il tuo progetto.

  3. Crea un catalogo Lakehouse, uno spazio dei nomi e una tabella in cui importare i dati.

  4. Crea un bucket di archiviazione basato sul cloud (Cloud Storage, Amazon S3 o Azure Blob Storage) e carica i file Parquet nel bucket.

  5. Se il bucket di archiviazione basato su cloud che utilizzi non è Cloud Storage di Google, crea un bucket Cloud Storage per archiviare i log degli errori del job.

Supporto e limitazioni

L'importazione di file Parquet in uno spazio di archiviazione basato sul cloud in Lakehouse utilizzando Dataflow presenta le seguenti limitazioni:

  • I dati di origine devono essere in formato Apache Parquet e archiviati in Cloud Storage, Amazon S3 o Azure Blob Storage.
  • Questa funzionalità supporta solo le pipeline batch.

Importa file Parquet in Lakehouse

Per importare file Parquet da uno spazio di archiviazione basato sul cloud in una tabella Iceberg in Lakehouse utilizzando l'interfaccia utente di Dataflow Job Builder:

  1. Nella console Google Cloud , vai alla pagina Lakehouse.

    Vai a Lakehouse

  2. Seleziona il catalogo, lo spazio dei nomi e la tabella in cui vuoi importare i dati.

  3. Nella pagina Dettagli tabella, fai clic su Importa tabella e poi seleziona Da file Apache Parquet (batch).

    Viene visualizzata la pagina Generatore di job di Dataflow.

  4. Nella sezione Fonti:

    1. Apri la voce di origine CreateGlobalInput già creata.

    2. Nella sezione dell'editor Configurazione origine YAML, inserisci uno o più percorsi ai tuoi file Parquet nella sequenza elements.

      Per migliorare l'efficienza dell'importazione, specifica più set di file (glob) quando registri un numero elevato di file. Ad esempio:

      reshuffle: true
      elements:
        -   gs://BUCKET_NAME/restaurant-data/2023/*.parquet
        -   gs://BUCKET_NAME/restaurant-data/2024/*.parquet
      
    3. Fai clic su Fine.

  5. Nella sezione Trasformazioni:

    1. Fai clic sulla sezione di trasformazione IcebergAddFiles per aprirla.

    2. Nel campo Tabella Iceberg, inserisci lo spazio dei nomi e il nome della tabella. Ad esempio: NAMESPACE .TABLE_NAME .

    3. In Proprietà catalogo, configura i seguenti elementi:

      1. warehouse: la posizione Cloud Storage del catalogo. Ad esempio, gs://CATALOG_PATH.

      2. header.x-goog-user-project: il tuo Google Cloud ID progetto: PROJECT_ID.

      3. Fai clic su Fine.

    4. Se esegui la migrazione da Amazon S3 o Azure Blob Storage, devi fornire configurazioni aggiuntive per copiare i file Parquet in Cloud Storage. Questa operazione non è necessaria se i file si trovano già in Cloud Storage.

      1. Fai clic sulla sezione di trasformazione CopyFilesToGCS per aprirla.

      2. Imposta il valore del parametro di configurazione gcs_file_path per fornire il bucket Cloud Storage completo in cui copiare i file temporanei. Ti consigliamo di utilizzare lo stesso bucket Cloud Storage utilizzato dal warehouse Lakehouse.

      3. Fai clic su Fine.

      4. Fai clic sulla sezione Opzioni Dataflow per aprirla.

      5. Se i file Parquet si trovano in Amazon S3, fai clic su Aggiungi altre opzioni della pipeline per fornire ad Apache Beam opzioni della pipeline relative a S3. Ad esempio, s3_region_name, s3_access_key_id, s3_secret_access_key e i relativi valori.

      6. Se i file Parquet si trovano in Azure Blob Storage, fai clic su Aggiungi altre opzioni della pipeline per fornire le opzioni della pipeline Apache Beam relative ad Azure. Ad esempio, azure_connection_string, blob_service_endpoint, azure_managed_identity_client_id e i relativi valori.

  6. Nella sezione Sink:

    1. Fai clic sul sink Scrivi risultati per aprirlo.

    2. Nel campo Posizione JSON, specifica la posizione e il nome del file Cloud Storage in cui scrivere i risultati degli errori. Ad esempio:

      gs://BUCKET_NAME/errors/errors.json
      
    3. Fai clic su Fine.

  7. Nella sezione Opzioni Dataflow, fai clic su Esegui job.

Se devi personalizzare ulteriormente la pipeline Dataflow utilizzata per registrare i file Parquet, puoi farlo utilizzando il modulo del builder dei job o l'editor YAML.

Esamina l'output del job

Al termine del job, puoi verificare che i dati siano stati registrati nella tabella Iceberg eseguendo una query in BigQuery.

  1. Nell'elenco dei job Dataflow, verifica che lo stato del job sia Riuscito.

    Vai a Job

  2. Se il job non viene completato o presenta errori, controlla il file di log degli errori JSON in Cloud Storage per i dettagli.

    Vai a Bucket

  3. Nella console Google Cloud , vai alla pagina BigQuery Studio.

    Vai a BigQuery

  4. Nell'editor di query, inserisci una query SQL per esaminare la tabella. Puoi utilizzare la convenzione PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME per eseguire query.

    SELECT * FROM `PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME` LIMIT 10
    
  5. Fai clic su Esegui.

  6. Esamina i Risultati delle query per assicurarti che i dati siano stati elaborati correttamente.

Passaggi successivi