Crea ed esegui query su una tabella Iceberg in Lakehouse utilizzando la console Google Cloud

In questa guida rapida, utilizzerai la console Google Cloud per scoprire in che modo Lakehouse senza confini ti consente di gestire e condividere le tabelle Apache Iceberg in Google Cloud e nei motori open source memorizzando i metadati delle tabelle, inclusi schemi, snapshot e posizioni di archiviazione, nel catalogo runtime lakehouse.

Per completare questa guida rapida, esegui i seguenti passaggi nella consoleGoogle Cloud :

  1. Crea un bucket Cloud Storage: crea un bucket in Cloud Storage per archiviare i dati della tabella Iceberg e i file di metadati.
  2. Crea un catalogo: crea un catalogo con più bucket nel catalogo di runtime Lakehouse supportato dal tuo bucket con la distribuzione delle credenziali abilitata.
  3. Crea uno spazio dei nomi e una tabella Iceberg: utilizza la pagina Lakehouse nella console Google Cloud per creare uno spazio dei nomi e una tabella Iceberg con il Data Manipulation Language (DML) di BigQuery abilitato.
  4. Modifica i dati ed esegui query sulla tabella in BigQuery: utilizza le istruzioni DML di BigQuery (INSERT, UPDATE e DELETE) per modificare le righe nella tabella Iceberg ed eseguire query sui risultati utilizzando la sintassi P.C.N.T (Project.Catalog.Namespace.Table) in quattro parti, senza necessità di ETL o registrazione manuale della tabella.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: BigLake Admin (roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the BigLake, Cloud Storage, and BigQuery APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  9. Make sure that you have the following role or roles on the project: BigLake Admin (roles/biglake.admin), Storage Admin (roles/storage.admin), and BigQuery Job User (roles/bigquery.jobUser)

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.

Crea un bucket Cloud Storage

Crea un bucket Cloud Storage nella console Google Cloud per archiviare i file di dati e metadati della tabella Iceberg:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Fai clic su Crea.

  3. Nella sezione Inizia, inserisci un nome del bucket univoco a livello globale (ad esempio lakehouse-quickstart-UNIQUE_ID o PROJECT_ID-lakehouse), quindi fai clic su Continua.

  4. Nella sezione Scegli dove archiviare i tuoi dati, lascia Tipo di località impostato su Più regioni (us (più regioni negli Stati Uniti)), quindi fai clic su Crea.

  5. Se viene visualizzata la finestra di dialogo L'accesso pubblico verrà vietato, fai clic su Conferma.

Crea un catalogo nel catalogo runtime Lakehouse

Crea un catalogo con più bucket nel catalogo del runtime Lakehouse per le tabelle Apache Iceberg. Un catalogo multibucket ti consente di denominare il catalogo indipendentemente dal nome di qualsiasi bucket e di associare più bucket Cloud Storage a un unico catalogo. Per proteggere l'accesso a questi bucket, attiva la modalità di distribuzione delle credenziali in modo che il catalogo possa emettere automaticamente credenziali di archiviazione temporanee direttamente ai tuoi motori client.

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

    Vai a Lakehouse

  2. Fai clic su Crea catalogo e seleziona Catalogo runtime Lakehouse.

  3. Nella sezione Dettagli catalogo, configura le seguenti impostazioni:

    • Tipo di catalogo: seleziona Catalogo REST Iceberg.
    • Opzioni del bucket del catalogo Lakehouse: seleziona Catalogo con più bucket.
    • Percorso Cloud Storage del catalogo predefinito: fai clic su Sfoglia, seleziona il bucket che hai creato e fai clic su Seleziona.
    • ID catalogo: inserisci quickstart_catalog.
    • Località principale: seleziona Più regioni e poi Stati Uniti (più regioni negli Stati Uniti).
  4. Fai clic su Continua, quindi nella sezione Percorsi dei dati, fai clic su Continua.

  5. Nella sezione Metodo di autenticazione, seleziona Modalità di distribuzione delle credenziali.

    Con la distribuzione delle credenziali, il catalogo emette in modo sicuro token di archiviazione temporanei e con ambito tabella per i motori client e BigQuery, in modo che i motori esterni non richiedano autorizzazioni IAM dirette sul tuo bucket.

  6. Fai clic su Crea.

    Il catalogo viene creato e viene visualizzata la pagina Dettagli catalogo.

  7. Nella sezione Metodo di autenticazione, fai clic su Imposta autorizzazioni bucket e poi nella finestra di dialogo fai clic su Conferma.

    Questo passaggio concede al account di servizio del catalogo le autorizzazioni richieste sul bucket Cloud Storage per vendere credenziali temporanee.

Crea uno spazio dei nomi e una tabella Iceberg

Ora che hai un catalogo, utilizza la pagina Lakehouse nella consoleGoogle Cloud per creare uno spazio dei nomi e una tabella Iceberg.

Crea uno spazio dei nomi

  1. Nella pagina Dettagli catalogo per quickstart_catalog, fai clic su Crea spazio dei nomi.

  2. Nel campo Nome spazio dei nomi, inserisci quickstart_namespace.

  3. Lascia il campo Località impostato sul percorso Cloud Storage predefinito che viene compilato automaticamente nel campo.

  4. Fai clic su Crea.

Crea una tabella Iceberg

  1. Nella pagina Dettagli catalogo, fai clic su quickstart_namespace.

    Viene visualizzata la pagina Dettagli spazio dei nomi.

  2. Fai clic su Crea tabella.

  3. Nel riquadro Crea tabella, configura le seguenti impostazioni:

    • Formato tabella: verifica che sia selezionato Iceberg.
    • Nome tabella: inserisci quickstart_table.
    • Posizione: lascia il percorso Cloud Storage predefinito.
  4. Nella sezione Schema, fai clic due volte su Aggiungi campo per aggiungere due colonne alla tabella:

    • Per il primo campo, inserisci id nel campo Nome campo e seleziona INTEGER dal menu Tipo.
    • Per il secondo campo, inserisci name nel campo Nome campo e seleziona STRINGA dal menu Tipo.
  5. In Proprietà, trova la proprietà predefinita gcp.biglake.bigquery-dml.enabled e cambia il relativo Valore da false a true. Lascia gcp.biglake.table-management.enabled impostato su false.

    Se imposti gcp.biglake.bigquery-dml.enabled su true, puoi modificare i dati nella tabella Iceberg utilizzando le istruzioni DML di BigQuery, ad esempio INSERT, UPDATE, DELETE e MERGE. Per saperne di più, consulta Configurare le opzioni della tabella.

  6. Fai clic su Crea.

    La nuova tabella Iceberg (quickstart_table) viene visualizzata nella pagina Dettagli spazio dei nomi e il catalogo runtime Lakehouse scrive il file di metadati Iceberg iniziale nel tuo bucket Cloud Storage.

Modificare i dati ed eseguire query sulla tabella in BigQuery

Con quickstart_table creato e BigQuery DML abilitato, puoi inserire, aggiornare, eliminare ed eseguire query sulle righe direttamente in BigQuery utilizzando la sintassi P.C.N.T (Project.Catalog.Namespace.Table) in quattro parti. In ogni istruzione, sostituisci PROJECT_ID con il tuo Google Cloud ID progetto:

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

    Vai a BigQuery

  2. Nell'editor di query, fai clic su Query SQL.

  3. Inserisci tre righe di dati di esempio:

    INSERT INTO `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table` (id, name)
    VALUES (1, 'one'), (2, 'two'), (3, 'three');

    Fai clic su Esegui. Al termine dell'istruzione INSERT, BigQuery scrive i file di dati Parquet nel bucket Cloud Storage ed esegue il commit di un nuovo snapshot Iceberg nel catalogo di runtime di Lakehouse.

  4. Modifica una riga nella tabella:

    UPDATE `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    SET name = 'updated'
    WHERE id = 1;

    Fai clic su Esegui.

  5. Elimina una riga dalla tabella:

    DELETE FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    WHERE id = 3;

    Fai clic su Esegui.

  6. Esegui una query sulla tabella per verificare le modifiche:

    SELECT * FROM `PROJECT_ID.quickstart_catalog.quickstart_namespace.quickstart_table`
    ORDER BY id;

    Fai clic su Esegui. Il riquadro Risultati delle query mostra le due righe rimanenti, incluso il valore aggiornato per id = 1:

    +----+---------+
    | id | name    |
    +----+---------+
    |  1 | updated |
    |  2 | two     |
    +----+---------+
    

Poiché il catalogo runtime Lakehouse gestisce i metadati Iceberg e la distribuzione delle credenziali è abilitata, puoi anche leggere o scrivere in quickstart_table utilizzando qualsiasi motore open source compatibile con Iceberg, come Apache Spark, Trino o Apache Flink, senza concedere loro l'accesso IAM diretto al tuo bucket.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi inutili, elimina le risorse che hai creato in questa guida rapida. L'eliminazione della tabella, dello spazio dei nomi e del catalogo rimuove la registrazione dei metadati dal catalogo di runtime Lakehouse, mentre l'eliminazione del bucket rimuove i file di dati Parquet e di metadati Iceberg sottostanti archiviati in Cloud Storage:

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

    Vai a Lakehouse

  2. Elimina la tabella dal catalogo:

    1. Fai clic su quickstart_catalog e poi su quickstart_namespace.
    2. Nella tabella Dettagli spazio dei nomi, nella riga relativa a quickstart_table, fai clic su Altro > Elimina.
    3. Inserisci DELETE per confermare e fai clic su Elimina.
  3. Elimina lo spazio dei nomi dal catalogo:

    1. Torna alla pagina Dettagli catalogo per quickstart_catalog.
    2. Nella riga relativa a quickstart_namespace, fai clic su Altre azioni dello spazio dei nomi > Elimina.
    3. Inserisci DELETE per confermare e fai clic su Elimina.
  4. Elimina il catalogo:

    1. Torna alla pagina Lakehouse.
    2. Nella riga relativa a quickstart_catalog, fai clic su Altre azioni del catalogo > Elimina.
    3. Inserisci DELETE per confermare e fai clic su Elimina.
  5. Elimina il bucket Cloud Storage e tutti i relativi contenuti:

    1. Vai alla pagina Bucket di Cloud Storage.

      Vai a Bucket

    2. Seleziona la casella di controllo accanto al bucket che hai creato per questa guida rapida e fai clic su Elimina.

    3. Inserisci DELETE per confermare e fai clic su Elimina.

Passaggi successivi