Impala vs Hive vs Spark SQL: Escolhendo o mecanismo SQL certo para funcionar corretamente no Cloudera Data Warehouse



Sempre nos faltam dados. E não queremos apenas mais dados ... queremos novos tipos de dados que nos permitam entender melhor nossos produtos, clientes e mercados. Estamos sempre em busca de novos dados, dados de todas as formas e tamanhos, estruturados e não muito. Queremos abrir nossas portas para uma nova geração de profissionais de negócios e especialistas técnicos que abrirão entusiasticamente novos bancos de dados e tecnologias conosco, que posteriormente mudarão a natureza de como interagimos com os dados e o impacto que eles têm em nossas vidas.

Vou dar um exemplo de vida para que você entenda melhor o que quero dizer. Cerca de dois anos atrás, os dados salvaram a vida da filha de meu amigo. Quando ela nasceu, ela foi diagnosticada com sete defeitos cardíacos. Graças a novas tecnologias, como gráficos 3D interativos, modelagem virtual, análises ECG mais inteligentes, soluções modernas para monitorar pacientes em repouso no leito e graças a outros procedimentos médicos avançados baseados em dados, ela conseguiu sobreviver a duas cirurgias cardíacas abertas e agora vive uma vida saudável . Os dados salvaram sua vida. É isso que me impulsiona todos os dias a procurar novas soluções inovadoras e maneiras de transferir dados mais rapidamente para aqueles que precisam mais do que outros.

Tenho orgulho de fazer parte da equipe do Cloudera Data Warehouse (CDW), desenvolvida pela Cloudera Data Platform (CDP). O CDP foi criado do zero como uma nuvem de dados corporativos ou Enterprise Data Cloud (EDC). O EDC é uma ferramenta multifuncional para implementar muitas tarefas em uma plataforma. Graças ao uso de sistemas híbridos e com várias nuvens, o CDP pode funcionar em qualquer lugar - em uma plataforma sem sistema operacional e em uma nuvem pública e privada. À medida que mais soluções em nuvem são introduzidas como parte de nosso plano de desenvolvimento digital, vemos soluções híbridas e com várias nuvens se tornando a nova norma. No entanto, essas soluções combinadas criam problemas para gerenciá-las, o que, por sua vez, cria novos riscos de segurança, a probabilidade de vigilância do usuário e, posteriormente, uma violação da lei. Para resolver esses problemas, o CDP possui recursos avançados de segurança e controle que abrirão o acesso aos dados sem arriscar violar a política de segurança de ninguém ou mesmo a lei.

O CDW no CDP é um novo serviço que permite criar um data warehouse de autoatendimento para equipes de análise de BI. Você pode criar rapidamente novos data warehouses e usá-los você mesmo, ou dar acesso a um grupo de pessoas e usar um único banco de dados com eles. Você se lembra dos momentos em que podia gerenciar seu armazém de dados por conta própria? Gerenciar sem a participação de plataformas e a infraestrutura necessária para sua operação? Isso nunca aconteceu antes. O CDW tornou isso possível.

Graças ao CDW, vários mecanismos SQL foram disponibilizados, mas a confusão vem com ótimas opções. Vamos examinar os mecanismos SQL disponíveis no CDW no CDP e discutir qual opção SQL é mais adequada para uma tarefa específica.

Uma ótima escolha! Impala? Colmeia LLAP? Spark? O que usar e quando? Vamos descobrir.

Impala sql engine


O Impala é um popular mecanismo MPP de código aberto com uma ampla variedade de recursos no Cloudera Distribution Hadoop (CDH) e CDP. A Impala ganhou confiança no mercado com suas consultas SQL altamente interativas e de baixa latência. Os recursos do Impala são muito amplos, o Impala não apenas suporta o Sistema de Arquivos Distribuídos Hadoop (HDFS - Sistema de Arquivos Distribuídos Hadoop) com Parquet, Colunas de Linhas Otimizadas (ORC - Nó de Armazenamento Otimizado), Notação de Objetos JavaScript (JSON), Avro e formatos de texto, mas também possui suporte interno para Kudu, ADLS (Data Lake Storage) do Microsoft Azure e Amazon Simple Storage Service (S3). O Impala tem um alto nível de segurança usando sentinela ou guarda florestal e, como você sabe, pode oferecer suporte a milhares de usuários com clusters de centenas de nós em conjuntos de dados com vários petabytes. Vejamos a arquitetura geral do Impala.



A Impala usa o StateStore para verificar a integridade do cluster. Se, por algum motivo, o nó Impala ficar offline, o StateStore enviará uma mensagem sobre isso para todos os nós e pulará o nó inacessível. O Impala Directory Service gerencia metadados para todas as instruções SQL de todos os nós no cluster. O StateStore e o serviço de diretório trocam dados com o Hive MetaStore para armazenar blocos e arquivos e depois transferir os metadados para os nós de trabalho. Quando uma solicitação chega, ela é passada para um dos muitos programas correspondentes em que a compilação é executada e o planejamento iniciado. Fragmentos do plano são devolvidos e o programa de coordenação organiza sua implementação. Os resultados intermediários são passados ​​entre os serviços Impala e retornados.

Essa arquitetura é ideal para casos em que precisamos de data marts para business intelligence para receber respostas para consultas com baixa latência, como geralmente ocorre nos tipos ad-hoc, de autoatendimento e de descoberta. Nesse cenário, temos clientes nos dizendo respostas para consultas complexas de menos de um segundo a cinco segundos.

Para dados da Internet das Coisas (IoT) e cenários relacionados, a Impala, juntamente com soluções de streaming como NiFi, Kafka ou Spark Streaming e data warehouses relacionados como Kudu, pode fornecer pipelining contínuo com um tempo de atraso de menos de dez segundos . Com recursos de leitura / gravação integrados no S3, ADLS, HDFS, Hive, HBase e mais, o Impala é um excelente mecanismo SQL a ser usado ao iniciar um cluster de até 1000 nós e mais de 100 trilhões de linhas em tabelas ou conjuntos de dados de 50BP ou mais.

Hive LLAP


O Live Long And Process, ou Long Delay Analytics Processing, também conhecido como LLAP, é um mecanismo de execução baseado em Hive que suporta processos de longa execução usando os mesmos recursos de armazenamento em cache e processamento. Esse mecanismo de processamento nos fornece uma resposta do SQL com uma latência muito baixa, pois não temos tempo para iniciar os recursos solicitados.



Além disso, o LLAP fornece e estabelece controle sobre a execução das políticas de segurança, para que todo o trabalho do LLAP seja transparente, o que ajuda a Hive a competir em termos de desempenho da carga de trabalho, mesmo com a mídia de armazenamento mais popular e tradicionalmente usada atualmente.

O Hive LLAP oferece o mecanismo SQL mais avançado no ecossistema de big data. O Hive LLAP foi criado para uma enorme quantidade de dados, fornecendo aos usuários os amplos recursos do Enterprise Data Warehouse (EDW), que suporta a conversão de grandes volumes de dados, a execução de consultas longas ou consultas SQL pesadas com centenas de junções. O Hive suporta visualizações materializadas, chaves substitutas e várias restrições semelhantes aos sistemas tradicionais de gerenciamento de banco de dados relacional, incluindo cache interno para consulta de resultados e consulta de dados. O Hive LLAP pode reduzir a carga de solicitações repetidas, reduzindo o tempo de resposta para uma fração de segundo. O Hive LLAP pode suportar solicitações federadas para HDFS (Hadoop Distributed File System) e armazenamentos de objetos, bem como streaming em tempo real, trabalhando com Kafka e Druid.

Assim, o Hive LLAP é ideal como uma solução Enterprise Data Warehouse (EDW), na qual enfrentaremos um grande número de consultas longas que exigem grandes transformações ou junções múltiplas entre tabelas e grandes conjuntos de dados. Graças à tecnologia de cache incluída no Hive LLAP, agora temos clientes que podem ingressar em 330 bilhões de registros com 92 bilhões de outros registros com ou sem chave de partição e obter resultados em segundos.

Spark sq



O Spark é um mecanismo de processamento de dados de alto desempenho e uso geral que suporta o processamento e a distribuição de dados e possui uma ampla variedade de aplicativos. Existem muitas bibliotecas de dados Spark para especialistas em ciência de dados e aprendizado de máquina que suportam o modelo de programação de nível superior para desenvolvimento rápido. Parentemente acima do Spark estão o Spark SQL, o MLlib, o Spark Streaming e o GrapX.



O Spark SQL é um módulo para processamento de dados estruturado, compatível com várias fontes de dados, com suporte para Hive, Avro, Parquet, ORC, JSON e JDBC. O Spark SQL é eficiente em conjuntos de dados semiestruturados e integra-se aos repositórios Hive MetaStore e NoSQL, como o HBase. O Spark é frequentemente usado com várias APIs de software em nossas linguagens de programação favoritas, como Java, Python, R e Scala.

O Spark pode ser muito útil se você precisar incorporar consultas SQL aos programas Spark, se funcionar com grandes quantidades de dados e alta carga. O Spark ajuda muitos de nossos usuários que trabalham nas empresas da Global 100 a reduzir o processamento de dados de streaming. Combinando isso com o MLlib, vemos quantos de nossos clientes respondem positivamente ao Spark como um excelente sistema de aprendizado de máquina ao trabalhar com aplicativos de data warehouse. Com alto desempenho, baixa latência e excelente integração de ferramentas de terceiros, o Spark SQL fornece as melhores condições para alternar entre programação e SQL.

Então, qual mecanismo SQL usar?



Como você pode combinar os mesmos dados no CDW para CDP, você pode escolher o mecanismo certo para cada tipo de carga de trabalho, como engenharia de dados, EDW tradicional, análise ad hoc, painéis de BI, Online Analytical Processing (OLAP) ou Online Processamento de transações (OLTP). O diagrama abaixo mostra alguns princípios que visam simplificar a seleção, segundo os quais os mecanismos e seus mecanismos são adequados para cada uma das metas estabelecidas.



Conclusão


Se você usa EDW com suporte a painéis de BI, o Hive LLAP fornecerá os melhores resultados. Quando precisar de armazenamento de dados ad-hoc, de autoatendimento e de pesquisa, volte os olhos para os benefícios do Impala. Se você observar a Engenharia de dados com consultas de longa execução e sem alta simultaneidade, o Spark SQL é uma ótima opção. Se você precisar de suporte de alta simultaneidade, consulte o Hive on Tez. Procure suporte OLAP com dados de séries temporais, adicione Druid e, se você estiver procurando por OLTP com baixa latência e alta simultaneidade, talvez seja necessário adicionar o Phoenix.

Total - existem muitos mecanismos SQL no CDW para CDP, e isso é feito de propósito. Fazer escolhas antes de tomar uma decisão é a melhor maneira de otimizar processos para aplicativos de alto desempenho com processamento multiencadeado em grandes data warehouses. O CDW no CDP fornece compartilhamento e compartilhamento de dados em um único sistema de segurança, gerenciamento, rastreamento de dados e metadados, o que permite combinar componentes SQL em repositórios otimizados. Assim, isso dá ao usuário a liberdade de escolher o melhor mecanismo SQL, dependendo de suas cargas de trabalho.

Source: https://habr.com/ru/post/pt486124/


All Articles