Conector Hive-BigQuery

O conector do Hive-BigQuery de código aberto permite que as cargas de trabalho do Apache Hive leiam e gravem dados de e para as tabelas do BigQuery e do BigLake. É possível armazenar dados no armazenamento do BigQuery ou em formatos de dados de código aberto no Cloud Storage.

O conector Hive-BigQuery implementa a API Hive Storage Handler para permitir que as cargas de trabalho do Hive sejam integradas às tabelas do BigQuery e do BigLake. O mecanismo de execução do Hive lida com 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 Hive-BigQuery

Casos de uso

Veja algumas das maneiras como o conector Hive-BigQuery pode ajudar você em cenários comuns orientados a dados:

  • Migração de dados. Você planeja mover o data warehouse do Hive para o BigQuery e depois converter incrementalmente as consultas do Hive para o dialeto SQL do BigQuery. Você espera que a migração demore uma quantidade significativa de tempo devido ao tamanho do seu data warehouse e ao grande número de aplicativos conectados e precisa garantir a continuidade durante as operações de migração. Veja o fluxo de trabalho:

    1. Você migra seus dados para o BigQuery
    2. Com o conector, você acessa e executa suas consultas originais do Hive enquanto traduz gradualmente as consultas do Hive para o dialeto SQL compatível com ANSI do BigQuery.
    3. Depois de concluir a migração e a tradução, você desativa 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. O conector é usado para unir as tabelas do Hive às tabelas do BigQuery.

  • confiança em uma pilha de software de código aberto (OSS); Para evitar a dependência de fornecedores, use uma pilha de OSS completa para seu data warehouse. Veja seu plano de dados:

    1. Os dados são migrados no formato OSS original, como Avro, Parquet ou OC, para os buckets do Cloud Storage usando uma conexão do BigLake.

    2. Você continua usando 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 seus dados do BigQuery e realizar as seguintes tarefas:

  • Executar consultas com mecanismos de execução MapReduce e Tez.
  • Criar e excluir tabelas do BigQuery no Hive.
  • Mesclar tabelas do BigQuery e do BigLake com tabelas do Hive.
  • Faça leituras rápidas nas tabelas do BigQuery usando os streams da API Storage Read e o formato Apache Arrow
  • Grave dados no BigQuery usando os seguintes métodos:
    • Gravações diretas usando a API Storage Write do BigQuery 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 curtas de tempo de atualização.
    • Gravações indiretas testando arquivos Avro temporários no Cloud Storage e carregando os arquivos em uma tabela de destino usando a API Load Job. Esse método é mais barato que o método direto, porque os jobs de carregamento do BigQuery não acumulam cobranças. Como esse método é mais lento e encontra o melhor uso em cargas de trabalho que não são críticas em termos de tempo,
  • acessar tabelas particionadas por tempo e em cluster do BigQuery; No exemplo a seguir, definimos a relação entre uma tabela Hive e uma tabela particionada e 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'
    );
    
  • Elimine colunas para evitar a recuperação de colunas desnecessárias da camada de dados.

  • Use push-downs de predicado para pré-filtrar linhas de dados na camada de armazenamento do BigQuery. Essa técnica pode melhorar significativamente o desempenho 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.

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

  • Integre com o Spark SQL.

  • Integre com o Apache Pig e o HCatalog.

Começar

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