O que é o Apache Hive e quando ele é usado?
Embora muitos especialistas em software vejam o sistema de data warehouse Apache Hive começando a desaparecer, ele ainda é usado regularmente para gerenciar grandes conjuntos de dados. Muitos recursos do Apache Hive também podem ser encontrados em seus sucessores. Por esse motivo, vale a pena dar uma olhada mais de perto no Hive e em seus usos mais importantes.
O que é o Apache Hive?
O Apache Hive é uma extensão dimensionável do servidor Apache e da arquitetura de memória Apache Hadoop. Nas arquiteturas do Hadoop, as tarefas complexas de computação são divididas em pequenos processos e, ao mesmo tempo, distribuídas em clusters de nós usando clustering. Isso permite que grandes quantidades de dados sejam processadas com arquiteturas padrão, como servidores e computadores. Ao fazer isso, o Apache Hive é um sistema integrado de consulta e análise para seu data warehouse em uma base de código aberto. Você pode analisar, consultar e resumir dados usando o HiveQL, uma linguagem de banco de dados semelhante ao SQL, graças ao Hive. Graças a isso, os dados do Hadoop são disponibilizados até mesmo para grandes grupos de usuários.
Com o Hive, você usa uma sintaxe semelhante à do SQL:1999 para estruturar programas, aplicativos e bancos de dados ou integrar scripts. Antes do surgimento do Hive, era necessário entender de programação Java e de processos de programação para usar o programa de consulta de dados do Hadoop. Podemos agradecer ao Hive por tornar as consultas fáceis de traduzir para o sistema de banco de dados. Isso poderia ser, por exemplo, trabalhos de MapReduce. Também é possível integrar outros aplicativos baseados em SQL na estrutura do Hadoop usando o Hive. Devido ao fato de o SQL ser tão difundido, o fato de o Hive ser uma expansão do Hadoop facilita o trabalho de não especialistas com bancos de dados e grandes quantidades de dados.
Como o Hive funciona?
Antes de o Apache Hive expandir a estrutura do Hadoop, o ecossistema do Hadoop ainda usava a estrutura MapReduce desenvolvida pelo Google. No caso do Hadoop 1, isso ainda era implementado como um mecanismo autônomo para gerenciar, monitorar e controlar recursos e processos de computação diretamente na estrutura. Isso, por sua vez, exigia conhecimento de Java para consultar com êxito os arquivos do Hadoop.
As principais funções do Hadoop para usar e gerenciar grandes conjuntos de dados podem ser resumidas da seguinte forma:
- Resumos de dados
- Queries
- Analysis
A maneira como o Hive funciona baseia-se em um princípio simples, que é o uso de uma interface semelhante ao SQL para traduzir consultas e analisar arquivos do Hadoop com HiveQL em trabalhos MapReduce, Spark ou Tez. Para fazer isso, o Hive organiza os dados da estrutura do Hadoop em formatos de tabela compatíveis com o HDFS. HDFS é a abreviação de Hadoop Distributed File System. As consultas de dados direcionadas podem então ser realizadas por meio de clusters e nós específicos no sistema Hadoop. Ele também tem recursos padrão, como filtros, agregações e junções.
Hive baseado em Schema-on-Read
Ao contrário dos bancos de dados relacionais, que funcionam com base no princípio SoW (Schema-on-Write) , o Hive baseia-se no princípio SoR (Schema-on-Read) principle. Isso significa que os dados na estrutura do Hadoop são armazenados, antes de tudo, sem edição e não são salvos em um esquema predefinido. Somente quando uma consulta do Hive for enviada pela primeira vez, os dados serão atribuídos a um esquema. Uma das vantagens disso está principalmente na computação em nuvem, oferecendo mais escalabilidade, flexibilidade e tempos de carregamento mais rápidos para os bancos de dados distribuídos em clusters.
Como trabalhar com dados no Hive
Para consultar e analisar dados com o Hive, você usaria as tabelas do Apache Hive de acordo com o princípio Schema-on-Read. Você usa o Hive para organizar e classificar os dados nessas tabelas em unidades pequenas e detalhadas ou grandes e gerais. Essas tabelas do Hive são separadas em “buckets”, em outras palavras, conjuntos de dados. Para acessar os dados, você usa o HiveQL, uma linguagem de banco de dados semelhante ao SQL. As tabelas Hive podem ser gravadas e anexadas, bem como serializadas em bancos de dados, entre outras coisas. Para isso, cada tabela do Hive tem seu próprio diretório HDFS.
Mantenha seu banco de dados sob controle com Linux hosting da IONOS - com desempenho flexível e escalável, SSL, proteção DDoS e servidores seguros.
Os recursos mais importantes do Hive
Os principais recursos do Hive incluem a consulta e a análise de grandes quantidades de dados e conjuntos de dados que são salvos como arquivos do Hadoop em uma estrutura do Hadoop. Uma segunda tarefa principal realizada pelo Hive é traduzir as consultas em HiveQL em trabalhos MapReduce, Sparks e Tez.
Aqui está um resumo de outras funções importantes do Hive:
- Salvar metadados em sistemas de gerenciamento de bancos de dados relacionais
- Usar dados compactados em sistemas Hadoop
- UDFs (funções definidas pelo usuário) para processamento e mineração de dados
- Suporte para tipos de memória, como RCFile, Text ou HBase
- Uso de MapReduce e suporte a ETL
O que é HiveQL?
Ao falar sobre o Hive, você ouvirá com frequência o termo “semelhante ao SQL”. Isso se refere à linguagem de banco de dados HiveQL do Hive, que é baseada em SQL, mas não é 100% igual aos padrões, como o SQL-92. Portanto, o HiveQL pode ser considerado como um tipo de SQL ou dialeto do MySQL. Apesar de todas as outras semelhanças, as linguagens diferem em alguns aspectos essenciais. Isso significa que o HiveQL não oferece suporte a muitos recursos SQL para transações ou subconsultas, apenas parcialmente. Por outro lado, ele tem suas próprias expansões, como inserções multiestáveis, que oferecem melhor escalabilidade e desempenho na estrutura do Hadoop. O Apache Hive Compiler traduz as consultas HiveQL em MapReduce, Tez e Spark.
Use um servidor dedicado com poderosos processadores Intel ou AMD e economize em sua própria TI com um servidor gerenciado da IONOS.
Segurança de dados e Apache Hive
Ao integrar o Apache Hive aos sistemas Hadoop, você também pode se beneficiar do serviço de autenticação Kerberos. Isso proporciona autenticação e verificação confiáveis e mútuas entre servidores e usuários. Como o HDFS especifica as permissões para novos arquivos do Hive, a autorização de usuários e grupos depende de você. Outro aspecto de segurança importante é que o Hive oferece a recuperação de fluxos de trabalho críticos, caso você precise.
Quais são os benefícios do Apache Hive?
Se você estiver trabalhando com grandes quantidades de dados na computação em nuvem ou no caso de Big Data as a Service, o Hive oferece muitos recursos úteis, como:
- Consultas ad-hoc
- Análise de dados
- Criação de tabelas e partições
- Suporte para links lógicos, relacionais e aritméticos
- Monitoramento e verificação de transações
- Relatórios de fim de dia
- O carregamento dos resultados da consulta nos diretórios do HDFS
- A transferência dos dados da tabela para os diretórios locais
Os principais benefícios dessa solução incluem:
- Descobertas qualitativas em grandes quantidades de dados, por exemplo, para data mining e aprendizado de máquina
- Dimensionamento otimizado, eficiência de custo e capacidade de expansão para grandes estruturas do Hadoop
- Segmentação de círculos de usuários devido à análise de fluxo de cliques
- Não é necessário conhecimento profundo dos processos de programação Java graças ao HiveQL
- Vantagens competitivas devido a tempos de reação e desempenho mais rápidos e dimensionáveis
- Permitindo que você salve centenas de petabytes de dados, bem como até 100.000 consultas de dados por hora, sem infraestrutura de ponta
- Melhores cargas de recursos e tempos de computação e carregamento mais rápidos, dependendo da carga de trabalho, graças às capacidades de virtualização
- Segurança de dados boa e à prova de erros graças às opções aprimoradas de restauração de emergência e ao serviço de autenticação Kerberos
- Um aumento na entrada de dados, pois não há necessidade de adaptá-los para bancos de dados internos (O Hive lê e analisa os dados sem nenhuma alteração manual de formato)
- Funciona sob o princípio de código aberto
Quais são as desvantagens do Apache Hive?
Uma das desvantagens do Apache Hive é o fato de já existirem muitos sucessores que oferecem melhor desempenho. Os especialistas consideram o Hive menos relevante no gerenciamento e uso de bancos de dados.
Outras desvantagens incluem:
- Não há acesso a dados em tempo real
- Processamento e atualização complexos de conjuntos de dados com a estrutura do Hadoop com MapReduce
- Latência, o que significa que é muito mais lento do que os sistemas concorrentes
Uma visão geral da arquitetura do Hive
Os componentes mais importantes da arquitetura do Hive incluem:
- Metastore: o local de armazenamento central do Hive que contém todos os dados e informações, como definições de tabela, esquema e locais de diretório, bem como metadados sobre partições no formato RDBMS
- Driver: o HiveQL aceita comandos e os processa com o Compiler (coletando informações), o Optimizer ( que define os métodos de processamento ideais) e o Executor ( que executa a tarefa)
- Linha de comando + Interface do usuário: Interface para usuários externos
- Thrift Server: Permite que clientes externos se comuniquem com o Hive e permite que protocolos semelhantes a JDBC e ODBC se integrem e se comuniquem por meio da rede

Como surgiu o Apache Hive?
O objetivo do Apache Hive é facilitar o trabalho de usuários sem conhecimento profundo de SQL com petabytes de dados. Ele foi desenvolvido pelos fundadores Joydeep Sen Sharma e Ashish Thusoo, que desenvolveram o Hive em 2007, durante o desenvolvimento da estrutura do Hadoop do Facebook. Com centenas de petabytes de dados, ele é um dos maiores do mundo. Em 2008, o Facebook concedeu à comunidade de código aberto acesso ao Hive e, em fevereiro de 2015, a versão 1.0 foi publicada.