Migrazione da Apache Hive a BigQuery: panoramica
Questo documento confronta le differenze tra Apache Hive e BigQuery e illustra le principali considerazioni per la migrazione. Per maggiori informazioni su come completare la migrazione, consulta la guida alla migrazione di Apache Hive.
Puoi anche utilizzare traduzione SQL batch eseguire la migrazione collettiva degli script SQL traduzione SQL interattiva per tradurre query ad hoc. Apache HiveQL è completamente supportato Servizi di traduzione SQL.
Funzionalità
Hive e BigQuery sono entrambi sistemi di data warehouse distribuiti. La tabella seguente mette a confronto alcuni dei loro caratteristiche:
Funzionalità | Hive | BigQuery |
---|---|---|
Disponibilità | Dipende dall'implementazione | Uptime mensile >= 99,99% |
Quote | Dipende dall'implementazione | Quote BigQuery |
Formato supportato | Avro, Parquet, ORC, Testo | Avro, Parquet, ORC CSV, JSON, Google In auto |
Archiviazione delle tabelle gestite | HDFS | BigQuery archiviazione nel Condensatore formato |
Origini tabella esterne | HDFS, HBase | Google Cloud Storage, Google Fogli, Bigtable |
Transazione | Limitato. ACID a livello di partizione | Limitato a livello di partizione. Supporta multi- transazioni dell'estratto conto. |
Supporto API | JDBC, ODBC, Thrift | JDBC, ODBC, client libreria con molti lingue |
Partizionamento | Assistenza | colonna dell'unità di tempo, data e ora di importazione intervallo di numeri interi |
Clustering | Assistenza | Assistenza |
Replica | Dipende da HDFS. Nessuna riproduzione tra data center | Repliche tra data center affidabili gestite da Google |
Funzioni definite dall'utente | Tutte le lingue | SQL o JavaScript |
Carica dati | Batch, flussi di dati (limitato) | Batch, flussi di dati |
Operazioni sui dati | DDL, DML | DDL, DML, DCL, TCL |
Tipi di dati
Apache Hive e BigQuery hanno sistemi di tipi di dati diversi. Nella maggior parte dei casi, i tipi di dati in Hive possono essere mappati ai tipi di dati BigQuery con alcune eccezioni, come MAP
e UNION
. Apache Hive esegue un tipo di trasmissione implicita più elevato rispetto a BigQuery. Di conseguenza, il traduttore SQL batch
inserisce molti cast espliciti.
Hive | BigQuery |
---|---|
TINYINT | INT64 |
SMALLINT | INT64 |
INT | INT64 |
GRANDE | INT64 |
DECIMALE | NUMERIC |
FLOAT | FLOAT64 |
DOPPIO | FLOAT64 |
BOOLEANO | BOOL |
STRING | STRING |
VARCHAR | STRING |
CHAR | STRING |
BINARY | BYTES |
DATA | DATA |
- | DATETIME |
- | TEMPO |
TIMESTAMP | DATETIME/TIMESTAMP |
INTERVALLO | - |
ARRAY | ARRAY |
STRUCT | STRUCT |
MAPS | STRUCT con coppie chiave-valore (campo REPEAT) |
UNION | STRUCT con tipi diversi |
- | GEOGRAPHY |
- | JSON |
Funzioni definite dall'utente
Apache Hive supporta la scrittura di funzioni definite dall'utente (UDF) in Java. Puoi caricare le funzioni definite dall'utente in Hive per utilizzarle nelle query regolari. UDF BigQuery devono essere scritti in GoogleSQL o JavaScript. È consigliabile convertire le funzioni definite dall'utente Hive in funzioni definite dall'utente SQL perché hanno un rendimento migliore. Se devi utilizzare JavaScript, consulta Best practice per le funzioni JavaScript definite dall'utente. Per altri linguaggi, BigQuery supporta funzioni remote che ti consentono di richiamare le tue funzioni Funzioni di Cloud Run o Cloud Run da query GoogleSQL.
BigQuery non supporta le funzioni di aggregazione definite dall'utente (UDAF).
Sicurezza
Hive e BigQuery hanno modelli di sicurezza diversi, descritti nelle sezioni seguenti:
Controllo dell'accesso a Hive
Ai fini dell'autorizzazione, Hive ha introdotto Autorizzazione basata su standard SQL (introdotto in Hive 0.13.0) per abilitare un controllo dell'accesso granulare. Utilizza il controllo degli accessi basato su ruoli (RBAC) per gestire l'autorizzazione per un ampio insieme di utenti e oggetti dati in un tipico ambiente aziendale. Questo meccanismo di sicurezza si basa sulle identità Hadoop. Hadoop si basa su Kerberos per autenticare le identità.
Sicurezza con Apache Sentry e Apache Ranger
Apache Ranger e Apache Sentry sono progetti Apache che utilizzano plug-in forniti da Hive per implementare autorizzazione. La configurazione del RBAC di Hive non garantisce la sicurezza completa dei dati, in quanto i dati Hive vengono in genere archiviati su HDFS, dove un utente può raggiungere direttamente i dati che non dovrebbe vedere. Ranger e Sentry applicano inoltre i dati su HDFS con ACL POSIX tradotti dalle impostazioni RBAC di Hive.
Sicurezza di BigQuery
BigQuery utilizza Identity and Access Management per controllare l'accesso ai dati di un progetto. Puoi limitare l'accesso ai set di dati BigQuery. Tabelle e viste sono risorse figlio dei set di dati e le relative autorizzazioni sono ereditati dai set di dati. Puoi assegnare a livello di riga e la sicurezza a livello di colonna singole tabelle.
Puoi anche limitare l'accesso utilizzando Visualizzazioni autorizzate e Set di dati autorizzati.
BigQuery cripta i dati per impostazione predefinita. Per gestire la tua crittografia le chiavi, puoi usare Cloud KMS con BigQuery.
Passaggi successivi
Ricevi istruzioni passo passo per Esegui la migrazione di schema e dati da Apache Hive.
Fai riferimento al Guida alla traduzione SQL di Apache Hive.