Conector Hive-BigQuery

O código aberto Conector do Hive-BigQuery permite que o Apache Hive as cargas de trabalho leem e gravam dados no BigQuery e Tabelas do BigLake. É possível armazenar dados no armazenamento do BigQuery ou em formatos de dados de código aberto Cloud Storage.

O conector Hive-BigQuery implementa a API Hive Storage Handler para permitir a integração de cargas de trabalho do Hive com o BigQuery e o BigLake tabelas. O mecanismo de execução Hive lida com operações de computação, como como agregações e mesclagens, e o conector gerencia as interações dados armazenados no BigQuery ou em conexões com o BigLake buckets do Cloud Storage.

O diagrama a seguir ilustra como o conector Hive-BigQuery se encaixa entre as camadas de computação e de dados.

Arquitetura do conector do Hive-BigQuery

Casos de uso

Aqui estão algumas das maneiras pelas quais o conector Hive-BigQuery pode ajudá-lo na cenários comuns orientados por dados:

  • Migração de dados. Você planeja mover o data warehouse Hive para o BigQuery, e depois converter de modo incremental suas consultas do Hive para o dialeto SQL do BigQuery. Você espera que a migração leve um tempo significativo devido ao tamanho do seu data warehouse e do grande número de aplicativos conectados, e você precisa garantir a continuidade durante as operações de migração. Estes são os fluxo de trabalho:

    1. Você move seus dados para o BigQuery
    2. Usando o conector, você acessa e executa suas consultas originais do Hive, enquanto você converte gradualmente as consultas do Hive para o BigQuery Dialeto SQL compatível com ANSI.
    3. Depois de concluir a migração e a tradução, desative o Hive.
  • Fluxos de trabalho do Hive e do BigQuery. Você planeja usar Hive para algumas tarefas e BigQuery para cargas de trabalho que se beneficiam de recursos, como o BigQuery BI Engine ou BigQuery ML: Você usa o conector para mesclar tabelas do Hive às suas tabelas do BigQuery.

  • dependência de uma pilha de software de código aberto (OSS, na sigla em inglês). Para evitar a dependência de fornecedores, você usa uma pilha OSS completa para seu data warehouse. Este é seu plano de dados:

    1. Você migra seus dados no formato OSS original, como Avro, Parquet ou ORC, para buckets do Cloud Storage usando uma conexão do BigLake.

    2. Você continua a usar o Hive para executar e processar suas consultas de dialeto SQL do Hive.

    3. Use o conector conforme necessário para se conectar ao BigQuery e aproveitar os seguintes recursos:

Recursos

Você pode usar o conector Hive-BigQuery para trabalhar com sua dados do BigQuery e realize as seguintes tarefas:

  • Execute consultas com os mecanismos de execução MapReduce e Tez.
  • Criar e excluir tabelas do BigQuery do Hive.
  • Mesclar tabelas do BigQuery e do BigLake com tabelas do Hive.
  • Execute leituras rápidas de tabelas do BigQuery usando o streams da API Storage Read e a Formato Apache Arrow
  • Grave dados no BigQuery usando os seguintes métodos:
    • Gravações diretas usando a API BigQuery Storage Write no modo pendente. Usar esse método para cargas de trabalho que exigem baixa latência de gravação, como cargas painéis com janelas de tempo de atualização curtas.
    • Gravações indiretas ao organizar arquivos Avro temporários no Cloud Storage e, em seguida, carregar os arquivos em uma tabela de destino usando a API Load Job. Esse método é mais barato do que o método direto, já que o BigQuery carrega trabalhos não acumulem cobranças. Como esse método é mais lento e tem o melhor uso em cargas de trabalho que não são urgentes
  • Acessar o BigQuery particionado por tempo e em cluster. O exemplo a seguir define a relação entre uma tabela do Hive e uma tabela que está particionada e agrupada em cluster no 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'
    );
  • Remova colunas para evitar a recuperação de colunas desnecessárias da camada de dados.

  • Usar push-downs de predicado para pré-filtrar linhas de dados no armazenamento do BigQuery camada Essa técnica pode melhorar significativamente a performance geral da consulta, reduzindo a quantidade de dados que atravessam a rede.

  • Converter automaticamente os tipos de dados do Hive em tipos de dados do BigQuery.

  • Leia as visualizações do BigQuery e snapshots da tabela.

  • Integrar com o Spark SQL.

  • Integrar com Apache Pig e HCatalog.

Primeiros passos

Veja as instruções para instalar e configurar o conector do Hive-BigQuery em um cluster do Hive.