Il catalogo di runtime Lakehouse consente di centralizzare i metadati delle tabelle in un metastore serverless completamente gestito che funge da unica fonte attendibile per i tuoi dati in Lakehouse senza confini. Con i metadati centralizzati, i motori di elaborazione, tra cui Apache Spark, Apache Flink, Apache Hive e BigQuery, possono condividere le tabelle direttamente senza duplicare i file.
Quando configuri un endpoint client come il catalogo REST di Apache Iceberg, funge da interfaccia di gestione che connette i motori di query al catalogo di runtime Lakehouse. L'endpoint gestisce i metadati della tabella e Cloud Storage archivia i file di dati e metadati sottostanti.
In quanto componente principale di Lakehouse, il catalogo di runtime di Lakehouse fornisce l'interoperabilità delle API aperte e supporta i workload di analisi, streaming e AI se abbinato a BigQuery. Per saperne di più su questi vantaggi architetturali, vedi Che cos'è Lakehouse senza confini?
In che modo Lakehouse si integra con Google Cloud
Per capire in che modo Lakehouse gestisce i tuoi dati, scopri come l'architettura Lakehouse 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 di runtime Lakehouse per gestire i metadati delle tabelle per leggere e scrivere direttamente i file di dati Parquet sottostanti in Cloud Storage.
Quando utilizzi Lakehouse, l'architettura tecnica è composta da tre livelli distinti:
Livello 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 di 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 di endpoint specifici, come l'endpoint del 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.
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 degli 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 minimi e massimi, che vengono utilizzati per l'ottimizzazione delle query e l'eliminazione delle partizioni.
- Implementazione di Lakehouse: all'interno di un contenitore del catalogo, organizzi i dati in spazi dei nomi logici (simili ai set di dati) e tabelle. Per ogni tabella, il catalogo di runtime Lakehouse genera e gestisce la gerarchia dei metadati Iceberg sottostanti, a partire da un file
metadata.jsonradice che punta agli elenchi di manifest e ai file manifest. Il catalogo di runtime Lakehouse rende persistenti questi file direttamente nella posizione di archiviazione del warehouse designata.
- 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:
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: quando configuri le posizioni del warehouse Cloud Storage (
gs://), i file di dati fisici a cui fanno riferimento le tabelle vengono archiviati in modo sicuro all'interno dei bucket. Il catalogo runtime Lakehouse gestisce l'accesso tramite delega dell'accesso allo spazio di archiviazione (distribuzione delle credenziali), distribuendo token di accesso di breve durata direttamente ai motori client. In questo modo, i motori possono leggere e scrivere file di dati in modo sicuro senza richiedere autorizzazioni IAM ampie e dirette sui bucket sottostanti.
Come Lakehouse implementa l'API del catalogo REST Apache Iceberg
Il catalogo di runtime Lakehouse implementa l'API del catalogo REST Apache Iceberg open source per gestire spazi dei nomi e tabelle. Fornisce inoltre un'API estensioni specifica per la gestione del catalogo.
I motori di query client interagiscono con il metastore utilizzando queste API REST standard del catalogo. Per informazioni dettagliate sulle risorse e sugli endpoint Google Cloud, consulta il riferimento dell'API REST Lakehouse.
Puoi creare, configurare e gestire queste risorse utilizzando la consoleGoogle Cloud , gcloud CLI, l'API REST o Terraform. Per saperne di più, consulta le pagine seguenti:
- Gestire le risorse del catalogo REST Iceberg
- Gestisci le tabelle Apache Iceberg
- Utilizzare Terraform con Lakehouse
- Utilizzare endpoint regionali con il catalogo di runtime Lakehouse
Compatibilità e configurazione del motore di query
Per analizzare e gestire i dati nel catalogo di runtime Lakehouse, puoi connettere diversi motori di query open source ed enterprise. A seconda dell'architettura esistente e dei requisiti del carico di lavoro, puoi scegliere tra diversi motori supportati e configurare l'endpoint del catalogo appropriato.
Motori supportati
Il catalogo di 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 ciascun motore:
| Motore | Documentazione |
|---|---|
| Apache Spark | Utilizzo con Apache Spark |
| 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 di runtime Lakehouse, seleziona un endpoint catalogo specifico, ad esempio l'endpoint del catalogo REST Apache Iceberg o l'endpoint Apache Hive. L'opzione migliore dipende dal caso d'uso, come mostrato nella tabella seguente:
| Caso d'uso | Consiglio |
|---|---|
| Nuovi utenti del catalogo di runtime Lakehouse che vogliono che il motore open source acceda ai dati in Cloud Storage e che hanno bisogno dell'interoperabilità con altri motori, tra cui 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 vogliono un servizio di metastore completamente gestito. | Utilizza l'endpoint del catalogo Apache Hive. |
| Utenti esistenti del catalogo di runtime Lakehouse che hanno tabelle attuali create con il catalogo Apache Iceberg personalizzato per l'endpoint BigQuery. | Continua a utilizzare l'endpoint del catalogo Apache Iceberg personalizzato per BigQuery, ma utilizza il catalogo REST Apache Iceberg per i nuovi flussi di lavoro. |
Limitazioni del catalogo di runtime Lakehouse
Le seguenti limitazioni generali si applicano alle tabelle nel catalogo di runtime Lakehouse quando vengono eseguite query tramite BigQuery. I singoli endpoint del catalogo (come Apache Iceberg REST o Apache Hive) potrebbero avere ulteriori limitazioni specifiche per l'endpoint.
Gestione delle tabelle
- Sono supportate le tabelle Apache Iceberg V2 (GA) e V3 (anteprima). Le tabelle Iceberg V1 non sono supportate. Prima di utilizzare le tabelle V1 esistenti con il catalogo di runtime Lakehouse, devi eseguire l'upgrade a una versione supportata. Per ulteriori informazioni, vedi Eseguire l'upgrade delle tabelle Iceberg V1 alla V2.
- Le tabelle nel catalogo runtime Lakehouse non supportano
le operazioni di ridenominazione o l'istruzione
ALTER TABLE ... RENAME TOSpark SQL. - Le tabelle nel catalogo di runtime Lakehouse non supportano il clustering.
- Il catalogo di runtime Lakehouse non supporta le viste di database o metastore.
- Il catalogo di 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 dry run di BigQuery di una query che utilizza una tabella nel catalogo di 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 di runtime Lakehouse in una query tabella con funzione carattere jolly.
API e metadati
- Non puoi utilizzare il
tabledata.listmetodo per recuperare i dati dalle tabelle nel catalogo di runtime Lakehouse. Puoi invece salvare i risultati della query in una tabella BigQuery e poi utilizzare il metodotabledata.listsu quella tabella. - La visualizzazione delle statistiche di archiviazione delle tabelle nel catalogo di runtime Lakehouse non è supportata.
Quote e limiti
- Le tabelle nel catalogo di runtime Lakehouse in BigQuery sono soggette alle stesse quote e limiti delle tabelle standard.
Differenze rispetto a BigLake Metastore (classico)
Le differenze principali tra il catalogo di runtime Lakehouse e il metastore BigLake (versione classica) 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 di runtime Lakehouse sono accessibili direttamente da più motori open source e BigQuery.
- Il catalogo di runtime Lakehouse supporta l'endpoint del catalogo REST Apache Iceberg, mentre il metastore BigLake (versione classica) non lo supporta.
Passaggi successivi
- Comprendi l'endpoint del catalogo REST Apache Iceberg.
- Configura gli endpoint regionali.