Embora muitos es­pe­ci­a­lis­tas em software vejam o sistema de data warehouse Apache Hive começando a de­sa­pa­re­cer, ele ainda é usado re­gu­lar­mente para gerenciar grandes conjuntos de dados. Muitos recursos do Apache Hive também podem ser en­con­tra­dos em seus su­ces­so­res. Por esse motivo, vale a pena dar uma olhada mais de perto no Hive e em seus usos mais im­por­tan­tes.

O que é o Apache Hive?

O Apache Hive é uma extensão di­men­si­o­ná­vel do servidor Apache e da ar­qui­te­tura de memória Apache Hadoop. Nas ar­qui­te­tu­ras do Hadoop, as tarefas complexas de com­pu­ta­ção são divididas em pequenos processos e, ao mesmo tempo, dis­tri­buí­das em clusters de nós usando clus­te­ring. Isso permite que grandes quan­ti­da­des de dados sejam pro­ces­sa­das com ar­qui­te­tu­ras padrão, como ser­vi­do­res e com­pu­ta­do­res. 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 se­me­lhante ao SQL, graças ao Hive. Graças a isso, os dados do Hadoop são dis­po­ni­bi­li­za­dos até mesmo para grandes grupos de usuários.

Com o Hive, você usa uma sintaxe se­me­lhante à do SQL:1999 para es­tru­tu­rar programas, apli­ca­ti­vos e bancos de dados ou integrar scripts. Antes do sur­gi­mento do Hive, era ne­ces­sá­rio entender de pro­gra­ma­ção Java e de processos de pro­gra­ma­çã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 apli­ca­ti­vos 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 es­pe­ci­a­lis­tas com bancos de dados e grandes quan­ti­da­des de dados.

Como o Hive funciona?

Antes de o Apache Hive expandir a estrutura do Hadoop, o ecos­sis­tema do Hadoop ainda usava a estrutura MapReduce de­sen­vol­vida pelo Google. No caso do Hadoop 1, isso ainda era im­ple­men­tado como um mecanismo autônomo para gerenciar, monitorar e controlar recursos e processos de com­pu­ta­ção di­re­ta­mente na estrutura. Isso, por sua vez, exigia co­nhe­ci­mento de Java para consultar com êxito os arquivos do Hadoop.

As prin­ci­pais 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 se­me­lhante 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 com­pa­tí­veis com o HDFS. HDFS é a abre­vi­a­ção de Hadoop Dis­tri­bu­ted File System. As consultas de dados di­re­ci­o­na­das podem então ser re­a­li­za­das por meio de clusters e nós es­pe­cí­fi­cos no sistema Hadoop. Ele também tem recursos padrão, como filtros, agre­ga­ções e junções.

Hive baseado em Schema-on-Read

Ao contrário dos bancos de dados re­la­ci­o­nais, 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 ar­ma­ze­na­dos, antes de tudo, sem edição e não são salvos em um esquema pre­de­fi­nido. Somente quando uma consulta do Hive for enviada pela primeira vez, os dados serão atri­buí­dos a um esquema. Uma das vantagens disso está prin­ci­pal­mente na com­pu­ta­ção em nuvem, ofe­re­cendo mais es­ca­la­bi­li­dade, fle­xi­bi­li­dade e tempos de car­re­ga­mento mais rápidos para os bancos de dados dis­tri­buí­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 clas­si­fi­car os dados nessas tabelas em unidades pequenas e de­ta­lha­das 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 se­me­lhante ao SQL. As tabelas Hive podem ser gravadas e anexadas, bem como se­ri­a­li­za­das em bancos de dados, entre outras coisas. Para isso, cada tabela do Hive tem seu próprio diretório HDFS.

Dica

Mantenha seu banco de dados sob controle com Linux hosting da IONOS - com de­sem­pe­nho flexível e escalável, SSL, proteção DDoS e ser­vi­do­res seguros.

Os recursos mais im­por­tan­tes do Hive

Os prin­ci­pais recursos do Hive incluem a consulta e a análise de grandes quan­ti­da­des 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 im­por­tan­tes do Hive:

  • Salvar metadados em sistemas de ge­ren­ci­a­mento de bancos de dados re­la­ci­o­nais
  • Usar dados com­pac­ta­dos em sistemas Hadoop
  • UDFs (funções definidas pelo usuário) para pro­ces­sa­mento 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ên­cia o termo “se­me­lhante 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 con­si­de­rado como um tipo de SQL ou dialeto do MySQL. Apesar de todas as outras se­me­lhan­ças, as lin­gua­gens diferem em alguns aspectos es­sen­ci­ais. Isso significa que o HiveQL não oferece suporte a muitos recursos SQL para tran­sa­ções ou sub­con­sul­tas, apenas par­ci­al­mente. Por outro lado, ele tem suas próprias expansões, como inserções mul­ti­es­tá­veis, que oferecem melhor es­ca­la­bi­li­dade e de­sem­pe­nho na estrutura do Hadoop. O Apache Hive Compiler traduz as consultas HiveQL em MapReduce, Tez e Spark.

Dica

Use um servidor dedicado com poderosos pro­ces­sa­do­res Intel ou AMD e economize em sua própria TI com um servidor ge­ren­ci­ado da IONOS.

Segurança de dados e Apache Hive

Ao integrar o Apache Hive aos sistemas Hadoop, você também pode se be­ne­fi­ciar do serviço de au­ten­ti­ca­ção Kerberos. Isso pro­por­ci­ona au­ten­ti­ca­ção e ve­ri­fi­ca­ção con­fiá­veis e mútuas entre ser­vi­do­res e usuários. Como o HDFS es­pe­ci­fica as per­mis­sões para novos arquivos do Hive, a au­to­ri­za­ção de usuários e grupos depende de você. Outro aspecto de segurança im­por­tante é que o Hive oferece a re­cu­pe­ra­ção de fluxos de trabalho críticos, caso você precise.

Quais são os be­ne­fí­cios do Apache Hive?

Se você estiver tra­ba­lhando com grandes quan­ti­da­des de dados na com­pu­ta­çã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, re­la­ci­o­nais e arit­mé­ti­cos
  • Mo­ni­to­ra­mento e ve­ri­fi­ca­ção de tran­sa­ções
  • Re­la­tó­rios de fim de dia
  • O car­re­ga­mento dos re­sul­ta­dos da consulta nos di­re­tó­rios do HDFS
  • A trans­fe­rên­cia dos dados da tabela para os di­re­tó­rios locais

Os prin­ci­pais be­ne­fí­cios dessa solução incluem:

  • Des­co­ber­tas qua­li­ta­ti­vas em grandes quan­ti­da­des de dados, por exemplo, para data mining e apren­di­zado de máquina
  • Di­men­si­o­na­mento otimizado, efi­ci­ên­cia de custo e ca­pa­ci­dade de expansão para grandes es­tru­tu­ras do Hadoop
  • Seg­men­ta­ção de círculos de usuários devido à análise de fluxo de cliques
  • Não é ne­ces­sá­rio co­nhe­ci­mento profundo dos processos de pro­gra­ma­ção Java graças ao HiveQL
  • Vantagens com­pe­ti­ti­vas devido a tempos de reação e de­sem­pe­nho mais rápidos e di­men­si­o­ná­veis
  • Per­mi­tindo que você salve centenas de petabytes de dados, bem como até 100.000 consultas de dados por hora, sem in­fra­es­tru­tura de ponta
  • Melhores cargas de recursos e tempos de com­pu­ta­ção e car­re­ga­mento mais rápidos, de­pen­dendo da carga de trabalho, graças às ca­pa­ci­da­des de vir­tu­a­li­za­ção
  • Segurança de dados boa e à prova de erros graças às opções apri­mo­ra­das de res­tau­ra­ção de emer­gên­cia e ao serviço de au­ten­ti­ca­ção Kerberos
  • Um aumento na entrada de dados, pois não há ne­ces­si­dade 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 des­van­ta­gens do Apache Hive?

Uma das des­van­ta­gens do Apache Hive é o fato de já existirem muitos su­ces­so­res que oferecem melhor de­sem­pe­nho. Os es­pe­ci­a­lis­tas con­si­de­ram o Hive menos relevante no ge­ren­ci­a­mento e uso de bancos de dados.

Outras des­van­ta­gens incluem:

  • Não há acesso a dados em tempo real
  • Pro­ces­sa­mento e atu­a­li­za­çã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 con­cor­ren­tes

Uma visão geral da ar­qui­te­tura do Hive

Os com­po­nen­tes mais im­por­tan­tes da ar­qui­te­tura do Hive incluem:

  • Metastore: o local de ar­ma­ze­na­mento central do Hive que contém todos os dados e in­for­ma­ções, como de­fi­ni­çõ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 in­for­ma­ções), o Optimizer ( que define os métodos de pro­ces­sa­mento 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 co­mu­ni­quem com o Hive e permite que pro­to­co­los se­me­lhan­tes a JDBC e ODBC se integrem e se co­mu­ni­quem por meio da rede
Imagem: Diagrama da arquitetura do Hive
O Hive oferece à sua empresa muitos be­ne­fí­cios ao processar e consultar grandes quan­ti­da­des de dados.

Como surgiu o Apache Hive?

O objetivo do Apache Hive é facilitar o trabalho de usuários sem co­nhe­ci­mento profundo de SQL com petabytes de dados. Ele foi de­sen­vol­vido pelos fun­da­do­res Joydeep Sen Sharma e Ashish Thusoo, que de­sen­vol­ve­ram o Hive em 2007, durante o de­sen­vol­vi­mento da estrutura do Hadoop do Facebook. Com centenas de petabytes de dados, ele é um dos maiores do mundo. Em 2008, o Facebook concedeu à co­mu­ni­dade de código aberto acesso ao Hive e, em fevereiro de 2015, a versão 1.0 foi publicada.

Ir para o menu principal