Conector de Hive-BigQuery

El conector de Hive-BigQuery de código abierto permite que tus cargas de trabajo de Apache Hive lean y escriban datos desde y hacia las tablas de BigQuery y BigLake. Puedes almacenar datos en el almacenamiento de BigQuery o en formatos de datos de código abierto en Cloud Storage.

El conector de Hive-BigQuery implementa la API del controlador de almacenamiento de Hive para permitir que las cargas de trabajo de Hive se integren a las tablas de BigQuery y BigLake. El motor de ejecución de Hive controla las operaciones de procesamiento, como las agregaciones y las uniones, y el conector administra las interacciones con los datos almacenados en BigQuery o en los buckets de Cloud Storage conectados con BigLake.

En el siguiente diagrama, se ilustra cómo se adapta el conector de Hive-BigQuery entre las capas de procesamiento y de datos.

Arquitectura del conector de Hive-BigQuery

Casos de uso

Estas son algunas de las formas en que el conector de Hive-BigQuery puede ayudarte en situaciones comunes basadas en datos:

  • Migración de datos Planeas mover tu almacén de datos de Hive a BigQuery y, luego, traducir de forma incremental tus consultas de Hive al dialecto SQL de BigQuery. Esperas que la migración demore una cantidad de tiempo significativa debido al tamaño de tu almacén de datos y la gran cantidad de aplicaciones conectadas, y necesitas garantizar la continuidad durante las operaciones de migración. Este es el flujo de trabajo:

    1. Mueve tus datos a BigQuery
    2. Mediante el conector, puedes acceder a tus consultas originales de Hive y ejecutarlas mientras traduces de forma gradual las consultas de Hive al dialecto SQL compatible con ANSI de BigQuery.
    3. Después de completar la migración y la traducción, debes retirar Hive.
  • Flujos de trabajo de Hive y BigQuery Planeas usar Hive para algunas tareas y BigQuery para cargas de trabajo que se beneficien de sus funciones, como BigQuery BI Engine o BigQuery ML. Usas el conector para unir tablas de Hive a tus tablas de BigQuery.

  • Dependencia de una pila de software de código abierto (OSS) A fin de evitar depender de un solo proveedor, usa una pila de OSS completa para tu almacén de datos. Este es tu plan de datos:

    1. Migras los datos en su formato OSS original, como Avro, ORC o Parquet, a los buckets de Cloud Storage con una conexión de BigLake.

    2. Seguirás usando Hive para ejecutar y procesar tus consultas de dialecto SQL de Hive.

    3. Usa el conector según sea necesario para conectarte a BigQuery y así beneficiarte de las siguientes funciones:

Atributos

Puedes usar el conector de Hive-BigQuery para trabajar con tus datos de BigQuery y realizar las siguientes tareas:

  • Ejecutar consultas con los motores de ejecución MapReduce y Tez
  • Crear y borrar tablas de BigQuery en Hive
  • Unir tablas de BigQuery y BigLake con tablas de Hive
  • Realizar lecturas rápidas desde las tablas de BigQuery con las transmisiones de la API de Storage Read y el formato Apache Arrow
  • Escribe datos en BigQuery mediante los siguientes métodos:
    • Escrituras directas mediante la API de Storage Write en modo pendiente de BigQuery. Usa este método para las cargas de trabajo que requieren una latencia de escritura baja, como paneles casi en tiempo real con períodos de actualización cortos.
    • Escrituras indirectas mediante la etapa de pruebas de archivos Avro temporales en Cloud Storage y, luego, la carga de los archivos en una tabla de destino con la API de Load Job. Este método es menos costoso que el método directo, ya que los trabajos de carga de BigQuery no acumulan cargos. Dado que este método es más lento y se usa mejor en cargas de trabajo
  • Acceder a tablas particionadas por tiempo y agrupadas en clústeres de BigQuery En el siguiente ejemplo, se define la relación entre una tabla de Hive y una tabla particionada y agrupada en clústeres en 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'
    );
    
  • Reduce las columnas para evitar recuperar columnas innecesarias de la capa de datos.

  • Usa pushdowns de predicado para filtrar previamente las filas de datos en la capa de almacenamiento de BigQuery. Esta técnica puede mejorar significativamente el rendimiento general de las consultas, ya que reduce la cantidad de datos que recorren la red.

  • Convierte automáticamente los tipos de datos de Hive en tipos de datos de BigQuery.

  • Leer las vistas y las instantáneas de tablas de BigQuery

  • Intégrate con Spark SQL.

  • Integra en Apache Pig y HCatalog.

Comenzar

Consulta las instrucciones para instalar y configurar el conector de Hive-BigQuery en un clúster de Hive.