Connecteur Hive-BigQuery

Le connecteur Hive-BigQuery Open Source 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 un espace de stockage BigQuery ou dans des formats de données Open Source sur Cloud Storage.

Le connecteur Hive-BigQuery met en œuvre 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, tandis que 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 montre comment le connecteur Hive-BigQuery s'intègre entre les couches de calcul et de données.

Architecture des connecteurs Hive-BigQuery

Cas d'utilisation

Voici quelques-unes des façons dont le connecteur Hive-BigQuery peut vous aider dans des scénarios courants basés sur les données:

  • Migration des données. Vous prévoyez de déplacer votre entrepôt de données Hive vers BigQuery, puis de traduire de manière incrémentielle vos requêtes Hive dans le 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:

    1. Vous transférez vos données vers BigQuery
    2. À l'aide du connecteur, vous accédez à vos requêtes Hive d'origine et les exécutez pendant que vous les convertissez progressivement en dialecte SQL compatible avec BigQuery ANSI.
    3. Une fois la migration et la traduction terminées, vous retirez Hive.
  • 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. Il vous permet de joindre des tables Hive à vos tables BigQuery.

  • Utilisation d'une pile logicielle Open Source (OSS) Pour éviter la dépendance vis-à-vis d'un fournisseur, vous utilisez une pile OSS complète pour votre entrepôt de données. Voici votre forfait Internet:

    1. Vous migrez vos données dans leur format OSS d'origine, tel que Avro, Parquet ou ORC, vers des buckets Cloud Storage à l'aide d'une connexion BigLake.

    2. Vous continuez à utiliser Hive pour exécuter et traiter vos requêtes en dialecte SQL Hive.

    3. Utilisez le connecteur selon vos besoins pour vous connecter à BigQuery afin de bénéficier des fonctionnalités suivantes:

Fonctionnalités

Vous pouvez utiliser le connecteur Hive-BigQuery pour exploiter 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éez et supprimez des tables BigQuery dans Hive.
  • Joignez des tables BigQuery et BigLake aux tables Hive.
  • Effectuer des lectures rapides à partir de tables BigQuery à l'aide des flux de l'API Storage Read et du format Apache Arrow
  • Écrivez des données dans BigQuery à l'aide des méthodes suivantes :
    • Écritures directes à l'aide de l'API Storage Write en mode en attente de BigQuery. Utilisez cette méthode pour les charges de travail qui nécessitent une faible latence en écriture, telles que les tableaux de bord en temps quasi réel avec de courtes périodes d'actualisation.
    • Écritures indirectes en préparant 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 aucuns frais. Cette méthode étant plus lente, elle peut être utilisée de manière optimale pour les charges de travail non urgentes.
  • Accédez aux tables BigQuery partitionnées dans le temps et en cluster. L'exemple suivant définit la relation entre une table Hive et une table partitionnée et mise 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'
    );
    
  • Réduisez les colonnes pour éviter de récupérer les colonnes inutiles dans la couche de données.

  • Utilisez des fonctions pushdown de prédicat pour pré-filtrer les lignes de données dans la couche de stockage BigQuery. Cette technique peut considérablement améliorer les performances globales des requêtes en réduisant la quantité de données traversant le réseau.

  • Convertissez automatiquement les types de données Hive en types de données BigQuery.

  • Consultez les vues et les instantanés de table BigQuery.

  • Intégrer à Spark SQL

  • Intégrer Apache Pig et HCatalog

Premiers pas

Consultez les instructions pour installer et configurer le connecteur Hive-BigQuery sur un cluster Hive.