L'integrazione di Apache Spark e Apache Hive con il catalogo di runtime Lakehouse tramite l'endpoint del catalogo Apache Hive consente di condividere metadati unificati e di eseguire query sulle tabelle direttamente in BigQuery senza dover gestire un Hive Metastore (HMS) in hosting autonomo.
Prima di eseguire la migrazione o creare pipeline di database open source nel catalogo di runtime di Lakehouse, esamina i vincoli funzionali e le considerazioni sul servizio in questo documento per determinare se l'integrazione soddisfa i tuoi requisiti tecnici. Per istruzioni sulla configurazione e sulle query, consulta Configura 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 di Metastore
- Per i workload batch serverless, Managed Service for Apache Spark supporta solo i job PySpark quando si connette all'endpoint del catalogo Apache Hive.
- Per i workload serverless, l'API Dataproc non supporta le proprietà del metastore
hive.*ohive:*nel campoproperties. Specifica invece le proprietàspark.hive.metastore.*(o configura i flag/etc/hive/conf/hive-site.xmlo--hiveconfquando utilizzi l'interfaccia a riga di comando di Hive su un cluster). - Non puoi creare cluster Managed Service for Apache Spark che utilizzano Kerberos, perché il catalogo di runtime di Lakehouse non supporta le API del token di delega o della chiave primaria.
- I database e le tabelle possono utilizzare un
location_uriCloud Storage diverso dal catalogo Hive, purché 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 comporta la rimozione dei 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 l'interfaccia a riga di comando di Hive) 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 Configura Spark con tabelle Delta.
Dimensione del batch di partizione
Il catalogo di runtime Lakehouse supporta l'archiviazione e il recupero delle informazioni di partizionamento da utilizzare nella eliminazione delle partizioni. È ottimizzato per le letture rispetto alle scritture, il che si traduce in prestazioni delle query più rapide tramite la potatura delle partizioni.
Per ottimizzare le prestazioni di importazione delle partizioni, la dimensione della partizione batch è limitata a 900.
Imposta la seguente configurazione per le proprietà Hive e Spark che determinano le dimensioni 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 perMAPdeve essere aggiunto a una lista consentita. Contatta biglake-help@google.com se i tuoi workload utilizzanoMAPin modo estensivo. - I tipi di chiave
MAPsupportano solo 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 della posizione della tabella non possono includere un carattere jolly (
*). - Gli URI della posizione della tabella devono essere directory.
- Gli URI della posizione della tabella non possono includere un carattere jolly (
Limitazioni della replica tra regioni e del ripristino di emergenza
Il catalogo di runtime Lakehouse fornisce replica tra regioni e 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
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 principale utilizzando un'operazione di failover. - Durante un failover, il timestamp
replication_timemonitora solo la 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 multiregionali del bucket, che sono separate dalla replica dei metadati del catalogo di runtime di Lakehouse.
Considerazioni
Il catalogo di runtime Lakehouse supporta un sottoinsieme dell'interfaccia del metastore Hive. Questo design dà la priorità alla compatibilità con Spark
ExternalCatalog, che non richiede la compatibilità completa con Hive
Metastore.
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 Hive Metastore | Risorsa del catalogo di runtime Lakehouse | Autorizzazioni IAM |
|---|---|---|
| Catalogo | Catalogo | biglake.catalogs.* |
| Database | Database | biglake.namespaces.* |
| Tabella | Tabella | biglake.tables.* |
Governance
Hive Metastore (HMS) fornisce la governance a livello di tabella, colonna e partizione. Il catalogo di runtime Lakehouse fornisce autorizzazioni IAM a livello di tabella e di 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.
- I metodi API
BatchCreatePartitions,BatchDeletePartitionseBatchUpdatePartitionslimitano le chiamate a 900 partizioni per batch.
Passaggi successivi
- Utilizza Spark e Hive con il catalogo di runtime Lakehouse.