Apache Hive: diferenças entre revisões
nova página: {{Info/Software | name = Apache Hive | logo = 150px|Apache Hive | screenshot = | caption = Apache Hive | developer = [https://hive.apache.org/people.ht... Etiqueta: Inserção de predefinição obsoleta |
(Sem diferenças)
|
Revisão das 19h22min de 21 de agosto de 2019
Apache Hive | |
---|---|
Gênero(s) | Data warehouse |
Estado do desenvolvimento | Ativo |
Página oficial | hive |
Apache Hive é um software de Data Warehouse desenvolvido em cima do Apache Hadoop para consulta e análise de dados.[1] O Hive oferece uma interface semelhante ao SQL para consulta de dados em diferentes bancos de dados e sistemas de arquivos integrados ao Hadoop. Comandos tradicionais de SQL são implementados na API Java para serem executados em dados distribuídos. O Hive fornece as abstrações necessárias para integrar comandos do tipo SQL(em uma linguagem chamada HiveQL). Como a maioria das aplicações de Data Warehousing trabalham com consultas baseadas em linguagens SQL, o Apache Hive facilita a portabilidade dessas aplicações para o Hadoop.[2] Embora tenha sido inicialmente desenvolvido pelo Facebook, atualmente é também usado e desenvolvido por outras organizações, como a Netflix e a Amazon.[3][4]
Comparação com Bancos de Dados tradicionais
Embora A linguagem HiveQL seja um dialeto de SQL, existem muitas diferenças de estrutura e funcionamento entre o Hive e os bancos de dados relacionais. As diferenças se devem, em grande parte, ao fato de que o Hive foi desenvolvido para uso com o ecossistema Hadoop, e portanto precisa obedecer as restrições do Hadoop e do MapReduce and has to comply with the restrictions of Hadoop and MapReduce.
Em bancos de dados tradicionais, um esquema de banco de dados é utilizado. Em tais bancos, o esquema é aplicado quando os dados são carregados, assegurando que os dados inseridos seguem os formatos especificados pelas definições de tabela. O Apache Hive, por outro lado, não verifica a compatibilidade dos dados com o esquema no momento do registro. Ao invés disso, são feitas checagens quando os dados são lidos.[5] Cada uma dessas abordagens tem suas vantagens e desvantagens. Conferir os dados com o esquema no momento do registro exige mais processamento, fazendo com que os bancos relacionais demorem mais tempo para o carregamento de dados. No entanto, checagens de qualidade executadas no momento do registro asseguram que os dados não estão corrompidos. A detecção precoce de dados corruptos permite um manejo de exceções mais eficiente, e consultas subsequentes serão mais rápidas. O Hive, por outro lado, permite o registro dinâmico de dados, assegurando um carregamento muito mais rápido, mas com a desvantagem de consultas mais lentas. Hive leva vantagem se o esquema não estiver disponível no momento do registro, sendo gerado posteriormente.[5]
Transações são operações muito importantes em bancos de dados. Como em qualquer sistema gerenciador de banco de dados (SGBD), O Hive permite todas as quatro operações básicas de transação ([[ACID]): Atomicidade, Consistência, Isolamento e and Durabilidade. As transações foram introduzida no Hive na versão 0.13, mas eram limitadas a nível de partição.[6] Nas versões mais recentes do Hive 0.14 essas funções foram incorporadas de forma completa, mantendo as propriedades ACID. As versões subsequentes fornecem transações de linha como INSERT, DELETE and UPDATE.[7] Habilitar transações de INSERT, UPDATE, DELETE requer a configuração adequada de propriedades como hive.support.concurrency
, hive.enforce.bucketing
, and hive.exec.dynamic.partition.mode
.[8]
Segurança
A versão 0.7.0 adicionou integração com a segurança do Hadoop. Hadoop passou a usar o protocolo Kerberos para maior segurança de autorizações. Kerberos permite autenticação mútua entre cliente e servidor. In this system, the client’s request for a ticket is passed along with the request. Versões anteriores do Hadoop tinham alguns problemas de segurança, como por exemplo a possibilidade de falsificar nomes de usuário configurando a propriedade hadoop.job.ugi
e também o fato das operações MapReduce serem executadas pelo mesmo nome de usuário: hadoop ou mapred. A integração do Hive 0.7.0 com a segurança Hadoop, esses problemas foram resolvidos. Permissões para novos arquivos criados são reguladas pelo HDFS. O model de autorização HDFS tem três entidades(user,group e other) com três possíveis permissões(read, write e execute).
Ver Também
Referências
- ↑ Venner, Jason (2009). Pro Hadoop. [S.l.]: Apress. ISBN 978-1-4302-1942-2
- ↑ Programming Hive [Book]. [S.l.: s.n.]
- ↑ OSCON Data 2011, Adrian Cockcroft, "Data Flow at Netflix" no YouTube
- ↑ Amazon Elastic MapReduce Developer Guide
- ↑ a b Erro de citação: Etiqueta
<ref>
inválida; não foi fornecido texto para as refs de nome:4
- ↑ «Introduction to Hive transactions». datametica.com. Consultado em 12 de setembro de 2016
- ↑ «Hive Transactions - Apache Hive - Apache Software Foundation». cwiki.apache.org. Consultado em 12 de setembro de 2016
- ↑ «Configuration Properties - Apache Hive - Apache Software Foundation». cwiki.apache.org. Consultado em 12 de setembro de 2016