Impala - Visão geral
O que é Impala?
Impala é um mecanismo de consulta MPP (Massive Parallel Processing) SQL para processar grandes volumes de dados armazenados no cluster do Hadoop. É um software de código aberto escrito em C ++ e Java. Ele fornece alto desempenho e baixa latência em comparação com outros mecanismos SQL para Hadoop.
Em outras palavras, o Impala é o mecanismo SQL de melhor desempenho (proporcionando experiência semelhante a RDBMS), que fornece a maneira mais rápida de acessar dados armazenados no Hadoop Distributed File System.
Por que Impala?
O Impala combina o suporte SQL e o desempenho multiusuário de um banco de dados analítico tradicional com a escalabilidade e flexibilidade do Apache Hadoop, utilizando componentes padrão como HDFS, HBase, Metastore, YARN e Sentry.
Com o Impala, os usuários podem se comunicar com o HDFS ou HBase usando consultas SQL de maneira mais rápida em comparação com outros mecanismos SQL como o Hive.
O Impala pode ler quase todos os formatos de arquivo, como Parquet, Avro, RCFile usados pelo Hadoop.
O Impala usa os mesmos metadados, sintaxe SQL (Hive SQL), driver ODBC e interface de usuário (Hue Beeswax) que o Apache Hive, fornecendo uma plataforma familiar e unificada para consultas em lote ou em tempo real.
Ao contrário do Apache Hive, Impala is not based on MapReduce algorithms. Ele implementa uma arquitetura distribuída baseada emdaemon processes que são responsáveis por todos os aspectos da execução da consulta que são executados nas mesmas máquinas.
Portanto, ele reduz a latência de utilização do MapReduce e torna o Impala mais rápido do que o Apache Hive.
Vantagens do Impala
Aqui está uma lista de algumas vantagens notáveis do Cloudera Impala.
Usando o impala, você pode processar dados armazenados no HDFS na velocidade da luz com conhecimento de SQL tradicional.
Como o processamento de dados é realizado onde os dados residem (no cluster Hadoop), a transformação e movimentação de dados não são necessárias para os dados armazenados no Hadoop, durante o trabalho com o Impala.
Usando o Impala, você pode acessar os dados armazenados no HDFS, HBase e Amazon s3 sem o conhecimento de Java (trabalhos MapReduce). Você pode acessá-los com uma ideia básica de consultas SQL.
Para escrever consultas em ferramentas de negócios, os dados devem passar por um complicado ciclo de extração-transformação-carregamento (ETL). Mas, com o Impala, esse procedimento é abreviado. Os estágios demorados de carregamento e reorganização são superados com as novas técnicas, comoexploratory data analysis & data discovery tornando o processo mais rápido.
A Impala é pioneira no uso do formato de arquivo Parquet, um layout de armazenamento colunar que é otimizado para consultas em grande escala típicas em cenários de data warehouse.
Características do Impala
A seguir estão as características do cloudera Impala -
O Impala está disponível gratuitamente como código aberto sob a licença Apache.
O Impala oferece suporte ao processamento de dados na memória, ou seja, ele acessa / analisa os dados armazenados nos nós de dados do Hadoop sem movimentação de dados.
Você pode acessar dados usando o Impala usando consultas semelhantes a SQL.
O Impala fornece acesso mais rápido aos dados no HDFS quando comparado a outros mecanismos SQL.
Usando o Impala, você pode armazenar dados em sistemas de armazenamento como HDFS, Apache HBase e Amazon s3.
Você pode integrar o Impala com ferramentas de inteligência de negócios como Tableau, Pentaho, Micro estratégia e dados de Zoom.
O Impala oferece suporte a vários formatos de arquivo, como LZO, Sequence File, Avro, RCFile e Parquet.
O Impala usa metadados, driver ODBC e sintaxe SQL do Apache Hive.
Bancos de dados relacionais e Impala
O Impala usa uma linguagem de consulta semelhante a SQL e HiveQL. A tabela a seguir descreve algumas das principais diferenças entre as linguagens SQL e Impala Query.
Impala | Bancos de dados relacionais |
---|---|
O Impala usa uma linguagem de consulta semelhante ao SQL que é semelhante ao HiveQL. | Os bancos de dados relacionais usam a linguagem SQL. |
No Impala, você não pode atualizar ou excluir registros individuais. | Em bancos de dados relacionais, é possível atualizar ou excluir registros individuais. |
O Impala não oferece suporte a transações. | Bancos de dados relacionais oferecem suporte a transações. |
Impala não oferece suporte para indexação. | Bancos de dados relacionais suportam indexação. |
O Impala armazena e gerencia grandes quantidades de dados (petabytes). | Os bancos de dados relacionais lidam com quantidades menores de dados (terabytes) quando comparados ao Impala. |
Hive, Hbase e Impala
Embora o Cloudera Impala use a mesma linguagem de consulta, metastore e a interface do usuário do Hive, ele difere do Hive e do HBase em certos aspectos. A tabela a seguir apresenta uma análise comparativa entre HBase, Hive e Impala.
HBase | Colmeia | Impala |
---|---|---|
HBase é um banco de dados de armazenamento de coluna ampla baseado no Apache Hadoop. Ele usa os conceitos de BigTable. | Hive é um software de data warehouse. Usando isso, podemos acessar e gerenciar grandes conjuntos de dados distribuídos, construídos no Hadoop. | Impala é uma ferramenta para gerenciar e analisar dados armazenados no Hadoop. |
O modelo de dados do HBase é um amplo armazenamento de colunas. | O Hive segue o modelo relacional. | Impala segue o modelo relacional. |
O HBase é desenvolvido em linguagem Java. | O Hive é desenvolvido em linguagem Java. | O Impala é desenvolvido em C ++. |
O modelo de dados do HBase não tem esquema. | O modelo de dados do Hive é baseado em esquema. | O modelo de dados do Impala é baseado em esquema. |
HBase fornece APIs Java, RESTful e Thrift. | O Hive fornece JDBC, ODBC, APIs Thrift. | A Impala fornece APIs JDBC e ODBC. |
Suporta linguagens de programação como C, C #, C ++, Groovy, Java PHP, Python e Scala. | Suporta linguagens de programação como C ++, Java, PHP e Python. | O Impala oferece suporte a todos os idiomas com suporte a JDBC / ODBC. |
HBase fornece suporte para gatilhos. | O Hive não oferece suporte para gatilhos. | O Impala não oferece suporte para gatilhos. |
Todos esses três bancos de dados -
São bancos de dados NOSQL.
Disponível como código aberto.
Suporte a scripts do lado do servidor.
Siga as propriedades do ACID, como durabilidade e simultaneidade.
Usar sharding para partitioning.
Desvantagens do Impala
Algumas das desvantagens de usar o Impala são as seguintes -
- O Impala não oferece suporte para serialização e desserialização.
- O Impala só pode ler arquivos de texto, não arquivos binários personalizados.
- Sempre que novos registros / arquivos são adicionados ao diretório de dados no HDFS, a tabela precisa ser atualizada.