Informazioni sul catalogo del runtime Lakehouse

Lakehouse for Apache Iceberg è una piattaforma data lakehouse gestita su Google Cloud. All'interno di questa piattaforma, il catalogo del runtime Lakehouse funge da servizio metastore serverless completamente gestito. Fornisce un'unica fonte attendibile per il tuo data lakehouse, che consente a più motori, tra cui Apache Spark, Apache Flink, Apache Hive e BigQuery, di condividere tabelle e metadati senza copiare i file.

Per connettere i motori di query al metastore, configura un client utilizzando un tipo di catalogo specifico, ad esempio l'endpoint del catalogo REST di Apache Iceberg. Questo endpoint gestisce i metadati delle tabelle e utilizza un warehouse di località di archiviazione supportato da un bucket Cloud Storage per archiviare i file di dati e i metadati sottostanti. Per ulteriori informazioni sulla scelta di un tipo di catalogo, consulta Tipi di catalogo e configurazione dell'endpoint.

Il catalogo runtime Lakehouse supporta la delega dell'accesso allo spazio di archiviazione, nota anche come distribuzione delle credenziali, che migliora la sicurezza eliminando la necessità di accedere direttamente al bucket Cloud Storage. Si integra anche con Knowledge Catalog per governance, derivazione e qualità dei dati unificate.

Funzionalità chiave

In qualità di componente chiave di Lakehouse for Apache Iceberg, il catalogo runtime lakehouse offre diversi vantaggi per la gestione dei dati e l'analisi, tra cui un'architettura serverless, l'interoperabilità del motore con API aperte, un'esperienza utente unificata e analisi, streaming e AI ad alte prestazioni quando lo utilizzi con BigQuery. Per maggiori informazioni su questi vantaggi, consulta Che cos'è Lakehouse?

Motori supportati

Il catalogo runtime lakehouse è compatibile con diversi motori di query, tra cui (a titolo esemplificativo) Apache Spark, Apache Flink, Apache Hive e Trino. La tabella seguente fornisce i link alla documentazione di ogni motore:

Motore Documentazione
Apache Spark Guida rapida: utilizza Spark e l'endpoint del catalogo REST Iceberg
Apache Hive Utilizzo con Spark e il catalogo Hive
Apache Flink Utilizzo con Apache Flink
Trino Utilizzare con Trino

Tipi di catalogo e configurazione dell'endpoint

Quando configuri i motori client per connettersi al metastore del catalogo runtime Lakehouse, seleziona un endpoint catalog specifico, ad esempio l'endpoint del catalogo REST di Apache Iceberg o l'endpoint Apache Hive. L'opzione migliore dipende dal tuo caso d'uso, come mostrato nella tabella seguente:

Caso d'uso Consiglio
Nuovi utenti del catalogo runtime lakehouse che vogliono che il proprio motore open source acceda ai dati in Cloud Storage e che hanno bisogno dell'interoperabilità con altri motori, inclusi BigQuery e AlloyDB per PostgreSQL. Utilizza l' endpoint del catalogo REST Apache Iceberg.
Utenti che eseguono carichi di lavoro Apache Hive o Spark che dipendono dall'interfaccia Hive Metastore e che vogliono un servizio di metastore completamente gestito. Utilizza l'endpoint del catalogo Apache Hive.
Utenti esistenti del catalogo runtime Lakehouse che hanno tabelle correnti create con l'endpoint del catalogo Apache Iceberg personalizzato per BigQuery. Continua a utilizzare l'endpoint del catalogo Apache Iceberg personalizzato per BigQuery, ma utilizza il catalogo REST di Apache Iceberg per i nuovi flussi di lavoro. Le tabelle create con l'endpoint del catalogo Apache Iceberg personalizzato per BigQuery sono visibili con l'endpoint del catalogo REST di Apache Iceberg tramite la federazione del catalogo BigQuery.

Come l'architettura lakehouse si integra con i servizi Google Cloud

Per capire come Lakehouse gestisce i tuoi dati, scopri in che modo l'architettura di Lakehouse for Apache Iceberg si integra con i servizi Google Cloud . Apache Iceberg non archivia i dati in tabelle monolitiche. Utilizza invece un'architettura a livelli di file di metadati per organizzare i file di dati in una struttura di tabella coesa con supporto delle transazioni ACID.

Il seguente diagramma illustra come i motori di calcolo come Managed Service for Apache Spark utilizzano il catalogo runtime Lakehouse per gestire i metadati delle tabelle per leggere e scrivere direttamente i file di dati Parquet sottostanti in Cloud Storage.

Componenti di un'architettura lakehouse, tra cui Managed Service for Apache Spark, Cloud Storage e il catalogo REST lakehouse.
Diagramma dell'architettura di lakehouse.

Quando utilizzi Lakehouse per Apache Iceberg, l'architettura tecnica è composta da tre livelli distinti:

  1. Livello del catalogo:

    • Concetto principale di Iceberg: il catalogo memorizza lo stato attuale della tabella mantenendo un puntatore all'ultimo file di metadati. Questo livello facilita la conformità ACID e l'isolamento delle transazioni per garantire che le scritture simultanee non interferiscano tra loro.
    • Implementazione di Lakehouse: il catalogo runtime Lakehouse funge da servizio metastore regionale di primo livello. All'interno di questo servizio, crei singoli cataloghi per gestire la gerarchia dei dati. I motori di query client si connettono a questi cataloghi utilizzando tipi di catalogo endpoint specifici, ad esempio l'endpoint catalogo REST di Apache Iceberg. Il metastore gestisce i commit delle transazioni, la distribuzione delle credenziali per la delega dell'accesso allo spazio di archiviazione e la gestione dei puntatori nei cataloghi.
  2. Livello dei metadati:

    • Concetto principale di Iceberg: questo livello tiene traccia della struttura della tabella, degli snapshot e delle posizioni dei file utilizzando una gerarchia di tre tipi di file:
      • File di metadati: archiviano lo schema della tabella, la specifica di partizione e un log dei puntatori snapshot.
      • Elenchi di manifest: rappresentano un singolo snapshot della tabella raggruppando una raccolta di file manifest.
      • File manifest: monitorano i dati a livello di singolo file, memorizzando i percorsi dei file, le informazioni sulle partizioni e le statistiche a livello di colonna, ad esempio i conteggi di righe e i valori minimo e massimo, che vengono utilizzati per l'ottimizzazione delle query e l'eliminazione delle partizioni.
    • Implementazione di Lakehouse: all'interno di un contenitore del catalogo, organizza i dati in spazi dei nomi logici (simili ai set di dati) e tabelle. Per ogni tabella, il catalogo del runtime Lakehouse genera e gestisce la gerarchia dei metadati Iceberg sottostanti, a partire da un file metadata.json radice che punta agli elenchi di manifest e ai file manifest. Il catalogo runtime Lakehouse archivia questi file direttamente nella posizione di archiviazione del warehouse designata.
  3. Livello dati:

    • Concetto di base di Iceberg: questo componente è lo spazio di archiviazione sottostante in cui risiedono i record di dati non elaborati effettivi, in genere in formati di file aperti colonnari o basati su righe ottimizzati, come Parquet, ORC o Avro.
    • Implementazione del lakehouse: il tuo magazzino della posizione di archiviazione è un bucket Cloud Storage con un percorso gs://. I file di dati fisici a cui fanno riferimento le tabelle rimangono al sicuro nel tuo bucket. Poiché il catalogo del runtime Lakehouse delega l'accesso allo spazio di archiviazione, i motori client possono leggere e scrivere questi file di dati senza richiedere autorizzazioni IAM dirette e ampie per il bucket.

Limitazioni del catalogo runtime Lakehouse

Le seguenti limitazioni si applicano alle tabelle nel catalogo del runtime Lakehouse:

Gestione delle tabelle

  • Non puoi creare o modificare tabelle con l'endpoint del catalogo REST di Apache Iceberg utilizzando le istruzioni Data Definition Language (DDL) o Data Manipulation Language (DML) di BigQuery. Puoi modificare queste tabelle utilizzando l'API BigQuery (con lo strumento a riga di comando bq o le librerie client), ma in questo modo rischi di apportare modifiche incompatibili con il motore esterno.
  • Le tabelle nel catalogo runtime Lakehouse non supportano operazioni di ridenominazione o l'istruzione ALTER TABLE ... RENAME TO Spark SQL.
  • Le tabelle nel catalogo runtime Lakehouse non supportano il clustering.
  • Le tabelle nel catalogo runtime Lakehouse non supportano nomi di colonne flessibili.
  • Il catalogo runtime Lakehouse non supporta le viste Apache Iceberg.

Fare query

  • Le prestazioni delle query per le tabelle nel catalogo di runtime Lakehouse dal motore BigQuery potrebbero essere lente rispetto all'esecuzione di query sui dati nelle tabelle BigQuery standard. In generale, la velocità delle query dovrebbe essere equivalente alla lettura dei dati da Cloud Storage.
  • Una simulazione di BigQuery di una query che utilizza una tabella nel catalogo del runtime Lakehouse potrebbe segnalare un limite inferiore di 0 byte di dati, anche se vengono restituite righe. Questo risultato si verifica perché la quantità di dati elaborati dalla tabella non può essere determinata finché non viene eseguita la query completa. L'esecuzione della query comporta un costo per l'elaborazione di questi dati.
  • Non puoi fare riferimento a una tabella nel catalogo runtime Lakehouse in una query tabella con funzione carattere jolly.

API e metadati

  • Non puoi utilizzare il metodo tabledata.list per recuperare i dati dalle tabelle nel catalogo del runtime Lakehouse. Puoi invece salvare i risultati della query in una tabella BigQuery e poi utilizzare il metodo tabledata.list su quella tabella.
  • La visualizzazione delle statistiche di archiviazione delle tabelle nel catalogo Lakehouse Runtime non è supportata.

Quote e limiti

  • Le tabelle nel catalogo runtime Lakehouse in BigQuery sono soggette alle stesse quote e limiti delle tabelle standard.

Differenze rispetto a BigLake Metastore (classico)

Le principali differenze tra il catalogo del runtime Lakehouse e il metastore BigLake (classico) includono quanto segue:

  • Il catalogo runtime Lakehouse supporta un'integrazione diretta con motori open source come Spark, il che contribuisce a ridurre la ridondanza quando memorizzi i metadati ed esegui i job. Le tabelle nel catalogo runtime Lakehouse sono accessibili direttamente da più motori open source e BigQuery.
  • Il catalogo runtime Lakehouse supporta l'endpoint del catalogo REST di Apache Iceberg, mentre il metastore BigLake (classico) non lo supporta.

Passaggi successivi