Importa tabelle Delta Lake in Lakehouse utilizzando Dataflow

La migrazione delle tabelle Delta Lake in Lakehouse for Apache Iceberg può essere complessa e costosa se devi riscrivere o spostare grandi volumi di dati. Per rendere disponibili i dati di Delta Lake in Lakehouse senza spostare o riscrivere i file sottostanti, puoi utilizzare il builder dei job Dataflow. Il builder dei job fornisce un'interfaccia low-code o no-code per importare le tabelle Delta Lake di Cloud Storage direttamente in Lakehouse.

Per le nuove tabelle, Dataflow crea automaticamente lo schema. Per le tabelle esistenti, lo schema non viene modificato, quindi lo schema della tabella di destinazione deve essere mappato correttamente alla tabella Delta Lake di origine affinché il job vada a buon fine.

Utilizza i seguenti dettagli di connessione per importare i dati da una tabella Delta Lake archiviata in Cloud Storage.

Prima di iniziare

Per importare i dati della tabella Delta Lake, devi avere:

  1. Abilita le API Dataflow, BigQuery e Lakehouse.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilita le API

  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. Una tabella Delta Lake esistente archiviata in un bucket Cloud Storage. La directory della tabella deve essere una radice di tabella Delta Lake valida contenente i file di dati Parquet e la directory dei log delle transazioni _delta_log/.

  4. Un catalogo, uno spazio dei nomi e una tabella Lakehouse Iceberg in cui importare i dati.

Supporto e limitazioni

L'importazione dei dati della tabella Delta Lake in Lakehouse per Apache Iceberg utilizzando Dataflow presenta le seguenti limitazioni:

  • Per utilizzare questa funzionalità, devi utilizzare un job della pipeline batch.
  • Per le tabelle di destinazione esistenti, lo schema non viene modificato. Lo schema della tabella di destinazione deve essere mappato correttamente allo schema della tabella Delta Lake di origine.
  • I dati di origine devono essere una tabella Delta Lake valida archiviata in Cloud Storage. La directory principale della tabella deve contenere i file di dati Parquet e la directory dei log delle transazioni _delta_log/ (contenente file di log JSON o Parquet) creati da Delta Lake.
  • Amazon S3 non è supportato per le origini delle tabelle Delta Lake.

Importa una tabella Delta Lake

Per importare una tabella Delta Lake in Lakehouse for Apache Iceberg, completa i seguenti passaggi:

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

    Vai al catalogo runtime 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, quindi seleziona Da Delta Lake (batch).

    Si apre la pagina Builder dei job di Dataflow con il progetto Delta Lake to Lakehouse caricato.

  4. Nella sezione Origini:

    1. Per espandere il riquadro di origine ReadFromDeltaLake Tabella Delta Lake, fai clic sulla freccia di espansione .

    2. Nel campo Percorso tabella, inserisci l'URI Cloud Storage della directory principale della tabella Delta Lake (la directory contenente i file di dati e la directory _delta_log/). Ad esempio, gs://BUCKET_NAME/tables/TABLE_NAME.

    3. (Facoltativo) Nel campo Proprietà di configurazione Hadoop, configura eventuali proprietà di configurazione Hadoop aggiuntive necessarie per la lettura da Cloud Storage. Ad esempio: fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.

    4. Fai clic su Fine.

  5. Nella sezione Sink:

    1. (Facoltativo) Esamina il riquadro del sink WriteToIceberg Tabella Lakehouse. Le informazioni in questo riquadro, come la tabella Lakehouse, il nome del catalogo e la posizione del warehouse, vengono in genere precompilate.

    2. Fai clic su Fine.

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

Se devi personalizzare ulteriormente la pipeline Dataflow utilizzata per importare le tabelle Delta Lake, 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 ai job

  2. Se il job non va a buon fine o presenta errori, controlla i log dei job o dei worker per i dettagli.

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

    Vai a BigQuery

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

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

  6. Esamina i risultati della query per assicurarti che i dati siano stati elaborati correttamente.

Passaggi successivi