Le connecteur Open Source Hive-BigQuery permet à vos charges de travail Apache Hive de lire et d'écrire des données depuis et vers des tables BigQuery et BigLake. Vous pouvez stocker des données dans le stockage BigQuery ou dans des formats de données Open Source sur Cloud Storage.
Le connecteur Hive-BigQuery implémente l' API Hive Storage Handler pour permettre aux charges de travail Hive de s'intégrer aux tables BigQuery et BigLake. Le moteur d'exécution Hive gère les opérations de calcul, telles que les agrégations et les jointures, et le connecteur gère les interactions avec les données stockées dans BigQuery ou dans des buckets Cloud Storage connectés à BigLake.
Le schéma suivant illustre la place du connecteur Hive-BigQuery entre les couches de calcul et de données.

Cas d'utilisation
Voici quelques exemples de cas où le connecteur Hive-BigQuery peut vous aider dans des scénarios courants axés sur les données :
Migration de données. Vous prévoyez de déplacer votre entrepôt de données Hive vers BigQuery, puis de traduire progressivement vos requêtes Hive en dialecte SQL BigQuery. Vous vous attendez à ce que la migration prenne beaucoup de temps en raison de la taille de votre entrepôt de données et du grand nombre d'applications connectées, et vous devez assurer la continuité pendant les opérations de migration. Voici le workflow :
- Vous déplacez vos données vers BigQuery.
- À l'aide du connecteur, vous accédez à vos requêtes Hive d'origine et les exécutez pendant que vous traduisez progressivement les requêtes Hive en dialecte SQL conforme à la norme ANSI de BigQuery.
- Une fois la migration et la traduction terminées, vous mettez Hive hors service.
Workflows Hive et BigQuery. Vous prévoyez d'utiliser Hive pour certaines tâches et BigQuery pour les charges de travail qui bénéficient de ses fonctionnalités, telles que BigQuery BI Engine ou BigQuery ML. Vous utilisez le connecteur pour joindre des tables Hive à vos tables BigQuery.
Dépendance à une pile logicielle Open Source (OSS). Pour éviter l'enfermement propriétaire, vous utilisez une pile OSS complète pour votre entrepôt de données. Voici votre plan de données :
Vous migrez vos données dans leur format OSS d'origine, tel qu'Avro, Parquet ou ORC, vers des buckets Cloud Storage à l'aide d'une connexion BigLake.
Vous continuez à utiliser Hive pour exécuter et traiter vos requêtes en dialecte SQL Hive.
Vous utilisez le connecteur si nécessaire pour vous connecter à BigQuery et bénéficier des fonctionnalités suivantes :
- Mise en cache des métadonnées pour améliorer les performances des requêtes
- Protection contre la perte de données
- Contrôle des accès au niveau des colonnes
- Masquage dynamique des données pour la sécurité et la gouvernance à grande échelle.
Fonctionnalités
Vous pouvez utiliser le connecteur Hive-BigQuery pour travailler avec vos données BigQuery et effectuer les tâches suivantes :
- Exécuter des requêtes avec les moteurs d'exécution MapReduce et Tez.
- Créer et supprimer des tables BigQuery à partir de Hive.
- Joindre des tables BigQuery et BigLake à des tables Hive.
- Effectuer des lectures rapides à partir de tables BigQuery à l'aide des flux de l'API Storage Read et du format Apache Arrow.
- Écrire des données dans BigQuery à l'aide des méthodes suivantes :
méthodes :
- Écritures directes à l'aide de l'API BigQuery Storage Write en mode "en attente". Utilisez cette méthode pour les charges de travail qui nécessitent une faible latence d'écriture, telles que les tableaux de bord en temps quasi réel avec de courtes fenêtres de délai d'actualisation.
- Écritures indirectes en transférant des fichiers Avro temporaires vers Cloud Storage, puis en chargeant les fichiers dans une table de destination à l'aide de l'API Load Job. Cette méthode est moins coûteuse que la méthode directe, car les tâches de chargement BigQuery n'entraînent pas de frais. Cette méthode est plus lente et est plus adaptée aux charges de travail qui ne sont pas urgentes.
Accéder aux tables BigQuery partitionnées par date et heure et aux tables en cluster. L'exemple suivant définit la relation entre une table Hive et une table partitionnée et en cluster dans BigQuery.
CREATE TABLE my_hive_table (int_val BIGINT, text STRING, ts TIMESTAMP) STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler' TBLPROPERTIES ( 'bq.table'='myproject.mydataset.mytable', 'bq.time.partition.field'='ts', 'bq.time.partition.type'='MONTH', 'bq.clustered.fields'='int_val,text' );
Éliminer les colonnes pour éviter de récupérer des colonnes inutiles à partir de la couche de données.
Utiliser des pushdowns de prédicats pour préfiltrer les lignes de données au niveau de la couche de stockage BigQuery. Cette technique peut améliorer considérablement les performances globales des requêtes en réduisant la quantité de données transitant sur le réseau.
Convertir automatiquement les types de données Hive en types de données BigQuery.
Lire les vues BigQuery et les instantanés de table.
S'intégrer à Spark SQL.
S'intégrer à Apache Pig et HCatalog.
Premiers pas
Consultez les instructions pour installer et configurer le connecteur Hive-BigQuery sur un cluster Hive.