L'integrazione di Spark e Hive con il catalogo di runtime Lakehouse elimina il sovraccarico operativo della gestione di un metastore Hive (HMS) self-hosted e consente la condivisione unificata dei metadati e le query dirette sulle tabelle in BigQuery.
Questo documento evidenzia i vincoli funzionali e le considerazioni sul servizio di questa integrazione. Prima di eseguire la migrazione o creare le pipeline di database open source nel catalogo di runtime Lakehouse, esamina queste limitazioni per determinare se questa integrazione soddisfa i tuoi requisiti tecnici.
Per le istruzioni di configurazione e query anziché per i limiti, consulta Utilizzare Spark e Hive con il catalogo di runtime Lakehouse.
Limitazioni del catalogo di runtime Lakehouse
Questa sezione elenca le limitazioni dell'utilizzo del catalogo di runtime Lakehouse con vari servizi.
Limitazioni del metastore
- Managed Service for Apache Spark supporta solo i job PySpark con il metastore Lakehouse senza bordi.
- L'API Dataproc non supporta l'impostazione delle proprietà del metastore Lakehouse nel campo
properties. - Non puoi creare cluster Managed Service for Apache Spark che utilizzano Kerberos, perché il catalogo di runtime Lakehouse non supporta i token di delega o le API delle chiave primaria.
- I database e le tabelle possono utilizzare un
location_uridi Cloud Storage distinto dal catalogo Hive, a condizione che il bucket Cloud Storage si trovi nella stessa regione del catalogo Hive. - Il catalogo Hive non può contenere spazi dei nomi e tabelle Iceberg. Per creare e utilizzare spazi dei nomi e tabelle Iceberg, utilizza invece il catalogo di runtime Lakehouse.
- Le eliminazioni a cascata non sono supportate per i database e i cataloghi Hive.
- Il supporto di Trino non è disponibile.
Limitazioni delle tabelle
- La ridenominazione delle tabelle non è supportata.
- La ridenominazione delle partizioni non è supportata.
- L'eliminazione di tabelle o database non rimuove i file associati da Cloud Storage.
- La ricerca senza distinzione tra maiuscole e minuscole non è supportata.
- Il clustering e il bucketing non sono supportati.
- Sono supportate solo le visualizzazioni virtuali.
- Le tabelle Delta Lake sono supportate tramite Apache Spark (lettura e scrittura) e BigQuery (sola lettura). I client Hive (come Hive CLI) non supportano le tabelle Delta Lake. Si applicano tutte le limitazioni delle tabelle esterne Delta Lake di BigQuery e le limitazioni delle tabelle BigLake. Per ulteriori dettagli e limitazioni specifiche, consulta Configurare Spark con le tabelle Delta.
Dimensione del batch di partizioni
Il catalogo di runtime Lakehouse supporta l'archiviazione e il recupero delle informazioni di partizionamento per l'utilizzo nel pruning delle partizioni. È ottimizzato per le letture rispetto alle scritture, il che comporta prestazioni delle query più rapide tramite il pruning delle partizioni.
Per ottimizzare il rendimento dell'importazione delle partizioni, la dimensione del batch di partizioni è limitata a 900.
Imposta la seguente configurazione per le proprietà Hive e Spark che determinano la dimensione del batch delle operazioni di partizionamento:
SET hive.msck.repair.batch.size = 900;SET spark.sql.addPartitionInBatch.size = 900;
Limitazioni di BigQuery
- Per impostazione predefinita, BigQuery non supporta i tipi di dati
ARRAY<ARRAY<>>oARRAY<MAP<>>. Il supporto diMAPdeve essere aggiunto a una lista consentita. Contatta biglake-help@google.com se i tuoi carichi di lavoro utilizzanoMAPin modo intensivo. - I tipi di chiavi
MAPsupportano solo i tipi di dati primitivi. Non puoi utilizzareARRAY,STRUCToMAPcome tipi di chiavi. BigQuery può eseguire query solo sui dati di Cloud Storage. Si applicano le seguenti limitazioni:
- Gli URI delle località delle tabelle non possono includere un carattere jolly (
*). - Gli URI delle località delle tabelle devono essere directory.
- Gli URI delle località delle tabelle non possono includere un carattere jolly (
Limitazioni della replica tra regioni e del ripristino di emergenza
Il catalogo di runtime Lakehouse fornisce la replica tra regioni e il disaster recovery per migliorare la disponibilità e la resilienza del catalogo.
Quando utilizzi il catalogo di runtime Lakehouse con i cataloghi Hive, si applicano le seguenti limitazioni:
- Quando crei un catalogo Hive, devi impostare il relativo
primary_locationin modo che corrisponda alla regione del bucket Cloud Storage. Il catalogo di runtime Lakehouse copia automaticamente i metadati in una regione secondaria in base alla configurazione a due regioni o multiregionale del bucket. Questa copia secondaria dei metadati è di sola lettura finché non la promuovi a primaria utilizzando un'operazione di failover. - Durante un failover, il timestamp
replication_timetiene traccia solo della replica dei metadati del catalogo, non se i file di dati di Cloud Storage sottostanti hanno terminato la replica nella regione secondaria. La ridondanza dei dati si basa sulle impostazioni a due regioni o multiregione del bucket, che è separata dalla replica dei metadati del catalogo di runtime Lakehouse.
Considerazioni
Il catalogo di runtime Lakehouse supporta un sottoinsieme dell'interfaccia del metastore Hive. Questa progettazione dà la priorità alla compatibilità con ExternalCatalog di Spark, che non richiede la piena compatibilità con il metastore Hive.
Mappatura delle risorse
La seguente tabella mappa le risorse del metastore Hive alle risorse del catalogo di runtime Lakehouse e alle relative autorizzazioni Identity and Access Management (IAM) richieste.
| Risorsa del metastore Hive | Risorsa del catalogo di runtime Lakehouse | Autorizzazione IAM |
|---|---|---|
| Catalogo | Catalogo | biglake.catalogs.* |
| Database | Database | biglake.namespaces.* |
| Tabella | Tabella | biglake.tables.* |
Governance
Il metastore Hive (HMS) fornisce la governance a livello di tabella, colonna e partizione. Il catalogo di runtime Lakehouse fornisce autorizzazioni IAM a livello di tabella e partizione. La governance a livello di colonna non è supportata.
Limitazioni dello spazio di archiviazione
- Si applicano tutte le limitazioni delle tabelle esterne di BigQuery.
Limitazioni delle partizioni
- Il monitoraggio delle statistiche a livello di colonna a livello di partizione non è supportato.
- Il limite API
BatchCreateHivePartitionslimita le chiamate a 900 partizioni.
Passaggi successivi
- Utilizza Spark e Hive con il catalogo di runtime Lakehouse.