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 les tables BigQuery et BigLake. Vous pouvez stocker des données dans l'espace de 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 diagramme suivant illustre l'emplacement du connecteur Hive-BigQuery entre les couches de calcul et de données.

Architecture du connecteur Hive-BigQuery

Cas d'utilisation

Voici quelques-unes des façons dont 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 migrer votre entrepôt de données Hive vers BigQuery, puis de traduire progressivement vos requêtes Hive en dialecte SQL BigQuery. Vous prévoyez que la migration prendra un certain temps en raison de la taille de votre entrepôt de données et du grand nombre d'applications connectées. Vous devez également assurer la continuité pendant les opérations de migration. Voici le workflow:

    1. Vous déplacez vos données vers BigQuery.
    2. Grâce au connecteur, vous accédez à vos requêtes Hive d'origine et les exécutez tout en les traduisant progressivement en dialecte SQL BigQuery conforme à la norme ANSI.
    3. Une fois la migration et la traduction terminées, vous pouvez supprimer 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. Vous utilisez le connecteur pour joindre des tables Hive à vos tables BigQuery.

  • Recours à une pile logicielle Open Source (OSS). Pour éviter l'enfermement par le fournisseur, vous utilisez une pile OSS complète pour votre entrepôt de données. Voici votre forfait de données:

    1. 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.

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

    3. Vous utilisez le connecteur si nécessaire pour vous connecter à BigQuery et profiter des fonctionnalités suivantes:

Fonctionnalités

Vous pouvez utiliser le connecteur Hive-BigQuery pour travailler avec vos données BigQuery et effectuer les tâches suivantes:

  • Exécutez des requêtes avec les moteurs d'exécution MapReduce et Tez.
  • Créez et supprimez des tables BigQuery à partir de Hive.
  • Associez 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
  • Écrivez des données dans BigQuery à l'aide des méthodes suivantes :
    • Écritures directes à l'aide de l'API BigQuery Storage Write en mode 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 quasi-temps réel avec des périodes d'actualisation courtes.
    • Écritures indirectes en mettant en scène des fichiers Avro temporaires dans Cloud Storage, puis en les chargeant 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. Étant donné que cette méthode est plus lente, elle est plus adaptée aux charges de travail qui ne sont pas critiques en termes de temps.
  • Accédez aux tables BigQuery partitionnées par date et en cluster. L'exemple suivant définit la relation entre une table Hive et une table partitionnée et groupée 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'
    );
  • Élaguer les colonnes pour éviter de récupérer des colonnes inutiles à partir de la couche de données

  • Utilisez des pushdowns de prédicat pour préfiltrer les lignes de données au niveau de 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égrez-le à Spark SQL.

  • Intégration à Apache Pig et HCatalog.

Commencer

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