Em dezembro de 2012, enquanto o Cloudera Impala ainda estava em fase beta, fornecemos um roteiro para a funcionalidade planejada na versão de produção. No mesmo espírito de manter os usuários, clientes e entusiastas do Impala bem informados, este post fornece um roteiro atualizado para os próximos lançamentos no final deste ano e no início de 2014.
Mas primeiro, um obrigado:desde o lançamento beta inicial, recebemos uma tremenda quantidade de feedback e validação sobre o Impala - abundante em qualidade e quantidade. Pelo menos uma pessoa em aproximadamente 4.500 organizações únicas em todo o mundo baixou o binário Impala, até o momento. E mesmo após apenas alguns meses de GA, vimos clientes Cloudera Enterprise de vários setores implantarem o Impala 1.x em ambientes críticos de negócios com suporte por meio de uma assinatura Cloudera RTQ (Real-Time Query) — incluindo organizações líderes em seguros, bancos, varejo, saúde, jogos, governo, telecomunicações e publicidade.
Além disso, com base na reação de outros fornecedores no espaço de gerenciamento de dados, poucos observadores contestariam a noção de que a Impala tornou as consultas SQL interativas de baixa latência para o Hadoop um requisito do cliente tão importante quanto as consultas SQL orientadas a lotes de alta latência habilitado pelo Apache Hive. Esse é um ótimo desenvolvimento para usuários do Hadoop em todos os lugares!
O que foi entregue no Impala 1.0/1.1
Vamos começar com um boletim sobre o roteiro do Impala 1.0/1.1 publicado anteriormente. Aqui está a lista de recursos, agrupados por status de entrega:
Entregue:
| Adiado com base no feedback do cliente:
|
Além disso, graças à adição do módulo Apache Sentry (incubação), o Impala 1.1 e posteriores agora também fornecem autorização granular baseada em função, garantindo que os usuários e aplicativos certos tenham acesso aos dados certos. (Com a recente contribuição do Sentry para o Apache Incubator e do HiveServer2 para o Hive da Cloudera, o Hive 0.11 e posteriores também possuem essa funcionalidade.)
Muito trabalho foi feito, mas ainda há muito trabalho a fazer. Agora, vamos para a onda Impala 2.0.
Roteiro de curto prazo
A nova funcionalidade Impala a seguir será lançada de forma incremental em versões futuras de curto prazo, começando com Impala 1.2 no final de 2013 e terminando com Impala 2.0 no primeiro terço de 2014. Além disso, você verá mais ganhos de desempenho e aprimoramentos de funcionalidade SQL em cada lançamento – com o objetivo de expandir a liderança de desempenho do Impala sobre as abordagens alternativas SQL-on-Hadoop de fornecedores de bancos de dados relacionais legados, bem como fornecedores de distribuição Hadoop.
Observe que, como sempre acontece com os roteiros, as linhas do tempo e os recursos estão sempre sujeitos a alterações. No entanto, o que você vê abaixo captura nosso plano de registro atual.
Impala 1.2
- UDFs e extensibilidade – permite que os usuários adicionem suas próprias funcionalidades personalizadas; O Impala suportará UDFs Java Hive existentes, bem como UDFs e UDAFs nativos de alto desempenho
- Atualização automática de metadados – permite que novas tabelas e dados estejam perfeitamente disponíveis para consultas Impala à medida que são adicionadas sem ter que emitir uma atualização manual em cada nó Impala
- Cache HDFS na memória – permite acesso a dados Hadoop acessados com frequência em velocidades na memória
- Otimização da ordem de junção com base em custo – libera o usuário de ter que adivinhar a ordem de junção correta
- Visualização do gerenciador de recursos integrado ao YARN — permite a priorização de cargas de trabalho em uma granularidade mais fina do que o isolamento de nível de serviço atualmente fornecido no Cloudera Manager
Impala 2.0
A lista abaixo captura apenas os recursos maiores e mais solicitados; não é de forma alguma completo.
- Funções de janela analítica compatíveis com SQL 2003 (agregação OVER PARTITION) – para fornecer recursos analíticos SQL mais avançados
- Mecanismos de autenticação adicionais – incluindo a capacidade de especificar nome de usuário/senhas, além da autenticação Kerberos já compatível
- UDTFs (funções de tabela definidas pelo usuário) – para funções de usuário mais avançadas e extensibilidade
- Agregações e junções paralelizadas intra-nós – para fornecer junções e agregações ainda mais rápidas além dos ganhos de desempenho do Impala
- Dados aninhados – permite consultas em estruturas aninhadas complexas, incluindo mapas, estruturas e matrizes
- Gerenciador de recursos aprimorado, pronto para produção e integrado ao YARN
- Aprimoramentos do parquet – ganhos contínuos de desempenho, incluindo páginas de índice
- Tipos de dados adicionais – incluindo tipos de data e decimal
- ORDER BY sem cláusulas LIMIT
Além do Impala 2.0
A lista a seguir de recursos são aqueles que atualmente prevemos que estarão presentes na versão 2.1 ou em uma versão logo em seguida:
- Funcionalidade analítica adicional do SQL – ROLLUP, CUBE e GROUPING SET
- Apache HBase CRUD – permite o uso do Impala para inserções e atualizações no HBase
- Junções externas usando disco – permite que as junções entre tabelas se espalhem para o disco para junções que exigem tabelas de junção maiores que o tamanho da memória agregada
- Subconsultas dentro de cláusulas WHERE
À medida que aprendemos mais sobre os requisitos de clientes e parceiros, essa lista se expandirá.
Conclusão
Como você pode ver, o Impala evoluiu consideravelmente desde seu lançamento beta e continuará a evoluir à medida que coletamos mais feedback de usuários, clientes e parceiros.
Em última análise, acreditamos que o Impala já possibilitou nosso objetivo geral de permitir que os usuários armazenem todos os seus dados em formatos de arquivo nativos do Hadoop e executem simultaneamente todas as cargas de trabalho em lote, aprendizado de máquina, SQL/BI interativo, matemática, pesquisa e outras cargas de trabalho nesses dados. no lugar. A partir daqui, é apenas uma questão de continuar a construir sobre essa base muito sólida com funcionalidades mais ricas e desempenho aprimorado.
Justin Erickson é diretor de gerenciamento de produtos da Cloudera.