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

Puoi utilizzare un blueprint del generatore di job Dataflow per aggiungere file Apache Parquet esistenti da uno spazio di archiviazione basato sul cloud (Cloud Storage o Amazon S3) a una tabella Apache Iceberg in Lakehouse.

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 Lakehouse for Apache Iceberg per il catalogo, lo spazio dei nomi e la tabella in cui importare i dati.

  4. Crea un bucket di archiviazione basato sul cloud (Cloud Storage o Amazon S3) 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 dei job.

Supporto e limitazioni

L'importazione di file Parquet in un archivio basato sul cloud in Lakehouse for Apache Iceberg utilizzando Dataflow presenta le seguenti limitazioni:

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

Importa file Parquet in Lakehouse

Utilizza i seguenti passaggi per importare file Parquet da uno spazio di archiviazione basato sul cloud in una tabella Iceberg in Lakehouse utilizzando la UI di Dataflow Job Builder.

  1. Nella console Google Cloud , vai alla pagina Lakehouse per Apache Iceberg.

    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.

  4. Nella finestra di dialogo Configurazione importazione, seleziona Importa una tabella da un file Apache Parquet in Lakehouse (batch).

    Viene visualizzata la pagina Generatore di job di Dataflow.

  5. 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.

  6. 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. Nella sezione Proprietà catalogo, configura i seguenti elementi:

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

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

      3. Fai clic su Fine.

    4. Se esegui la migrazione da S3, devi fornire configurazioni aggiuntive per copiare i file Parquet in Cloud Storage. Questo passaggio non è obbligatorio 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.

      1 Fai clic sulla sezione Opzioni dataflow per aprirla.

      1. Fai clic su Aggiungi opzioni della pipeline aggiuntive per fornire opzioni della pipeline Apache Beam correlate a S3. Ad esempio, s3_region_name, s3_access_key_id, s3_secret_access_key e i relativi valori.
  7. Nella sezione Sink:

    1. Fai clic sul lavello Scrivi risultati per aprirlo.

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

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

  8. 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