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 do Hive processa operações de computação, como agregações e junções, e o conector gerencia interações com dados armazenados no BigQuery ou em buckets do Cloud Storage conectados ao BigLake.

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 armazenamento de dados do Hive para o BigQuery e, em seguida, traduzir as consultas do Hive para o dialeto SQL do BigQuery de forma incremental. 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 o Hive para algumas tarefas e o BigQuery para cargas de trabalho que se beneficiam dos recursos dele, como o BigQuery BI Engine ou o 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. Confira seu plano de dados:

    1. Migre 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 Hive SQL.

    3. Você usa o conector conforme necessário para se conectar ao BigQuery para aproveitar os seguintes recursos:

Recursos

Você pode usar o conector Hive-BigQuery para trabalhar com seus dados do BigQuery e realizar 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. Use esse método para cargas de trabalho que exigem baixa latência de gravação, como painéis quase em tempo real com janelas de atualização curtas.
    • Gravações indiretas ao armazenar 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 que o método direto, já que o BigQuery carrega trabalhos não acumulem cobranças. Como esse método é mais lento e é mais útil em cargas de trabalho que não são críticas ao tempo
  • Acesse as tabelas particionadas por tempo e em cluster do BigQuery. O exemplo a seguir define a relação entre uma tabela do Hive e uma tabela particionada e agrupada 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'
    );
  • Eliminar 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.

  • Converta automaticamente os tipos de dados do Hive nos tipos de dados do BigQuery.

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

  • Integrar com o Spark SQL.

  • Integração com o Apache Pig e o HCatalog.

Primeiros passos

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