Diferenças entre o Spark SQL e o Presto
O Presto, em termos simples, é o 'SQL Query Engine', desenvolvido inicialmente para o Apache Hadoop. É um mecanismo de consulta SQL distribuído de código aberto projetado para executar consultas analíticas interativas em conjuntos de dados de todos os tamanhos.
O Spark SQL é um mecanismo de computação distribuído na memória com uma camada SQL em cima de conjuntos de dados estruturados e semiestruturados. Desde o processamento na memória, o processamento será rápido no Spark SQL.
Comparação cara a cara entre Spark SQL vs Presto (Infográficos)
Abaixo estão as 7 principais comparações entre Spark SQL e Presto
Principais diferenças entre o Spark SQL e o Presto
Abaixo está a lista, sobre a principal diferença entre o Presto e o Spark SQL
- O Apache Spark apresenta um módulo de programação para o processamento de dados estruturados chamado Spark SQL. O Spark SQL inclui uma abstração de codificação chamada Data Frame, que pode atuar como mecanismo de consulta SQL distribuído.
- O motivo por trás do início do Presto foi permitir análises e abordagens interativas para a velocidade dos data warehouses comerciais, com o poder de escalar o tamanho das organizações que correspondem ao Facebook.
- Enquanto o Spark SQL é um componente no topo do Spark Core que introduz uma nova abstração de dados chamada SchemaRDD (Conjuntos de dados distribuídos resilientes), ele fornece suporte para dados estruturados / semiestruturados.
- O Presto foi projetado como uma alternativa às ferramentas que consultam dados do HDFS usando tarefas do MapReduce, como Hive ou Pig, mas o Presto não se limita ao HDFS.
- O Spark SQL segue o processamento na memória, o que aumenta a velocidade de processamento. O Spark foi projetado para processar uma ampla gama de cargas de trabalho, como consultas em lote, algoritmos iterativos, consultas interativas, streaming etc.
- O Presto é capaz de executar as consultas federativas. Abaixo está o exemplo de consultas federadas do Presto
Vamos assumir qualquer RDBMS com tabela sample1
E HIVE com amostra da tabela2,
'Testdb' é o banco de dados no hive e no MYSQL. Usando o Presto, podemos avaliar os dados usando uma única consulta, uma vez que seus conectores estejam configurados corretamente, como mostrado abaixo:
presto> hive.Testdb.sample2
Função (selecione / Agrupar por ..etc)> mysql.Testdb.sample1
- A arquitetura Spark SQL consiste em Spark SQL, Schema RDD e Data Frame
- Um quadro de dados é uma coleção de dados; os dados são organizados em colunas nomeadas. Tecnicamente, é o mesmo que tabelas de banco de dados relacionais.
- Esquema RDD: Spark Core contém uma estrutura de dados especial chamada RDD. O Spark SQL funciona em esquemas, tabelas e registros. Portanto, um usuário pode usar o RDD do esquema como uma tabela temporária. Para que o usuário possa chamar esse Esquema RDD como Data Frame
- Recursos do quadro de dados: o quadro de dados processa os dados no tamanho de Kilobytes a Petabytes em um cluster de nó único para vários agrupamentos de nós,
- O Data Frame suporta diferentes formatos de dados (CSV, elasticsearch, Cassandra etc.) e sistemas de armazenamento (HDFS, tabelas HIVE, MySQL, etc.). Pode ser integrado a todas as ferramentas / estruturas de Big Data via Spark-Core e fornece API para idiomas como Programação em Python, Java, Scala e R.
- Enquanto o Presto é um mecanismo distribuído, funciona em uma configuração de cluster. A arquitetura do Presto é simples de entender e extensível. O cliente Presto (CLI) envia instruções SQL para um coordenador principal de daemon que gerencia o processamento.
- Empresas que usam o Presto: Facebook, Netflix, Airbnd, Dropbox etc.
- Os Casos de Uso Apache Spark podem ser encontrados em setores como Finanças, Varejo, Assistência Médica e Viagens etc. Muitos sites de comércio eletrônico como eBay, Alibaba, Pinterest estão usando o Spark SQL para analisar centenas de petabytes de dados em sua plataforma de comércio eletrônico.
Comparações Tabela Spark SQL vs Presto
Abaixo está a comparação mais alta entre SQL vs Presto
Base de comparação entre SQL e Presto | Presto | Spark SQL |
Ecossistemas / Plataformas | Hadoop, Big Data Processing etc | Spark Framework, Big Data Processing etc |
Objetivo | O Presto foi projetado para executar consultas SQL em Big Data (enormes cargas de trabalho). Foi projetado pelo Facebook para processar suas enormes cargas de trabalho. | O Spark SQL é um dos componentes do Apache Spark Core. Spark Core é o mecanismo de execução fundamental para a plataforma spark |
Configuração |
|
|
Recursos / Recursos | O Presto permite a consulta de dados em muitas fontes de dados; Por exemplo, os dados podem residir em repositórios de dados: Hive, Cassandra, RDBMS e alguns outros repositórios de dados proprietários. | O Spark SQL oferece flexibilidade na integração com outras fontes de dados usando os quadros de dados e os conectores JDBC. |
Suporte para conectores | O Presto suporta conectores conectáveis. Esses conectores fornecem conjuntos de dados para consultas.
Abaixo estão vários conectores pré-existentes disponíveis em presto, enquanto o Presto também oferece a capacidade de conectar-se com conectores personalizados.
| Uma interface Data Frame permite que diferentes fontes de dados funcionem no Spark SQL. O Spark SQL inclui um modo de servidor com conectividade JDBC e ODBC padrão do setor. |
Consultas federadas | O Presto suporta as consultas federadas. O Presto pode ser configurado para conectar-se a diferentes bancos de dados e uma vez configurado; sua CLI pode ser usada para iniciar 'Consultas Federadas'. Em uma consulta de consulta Presto, o usuário pode combinar dados de várias fontes de dados e executar a consulta. | O Spark SQL vem com um recurso embutido para conectar-se a outros bancos de dados usando o JDBC que é "JDBC to other Databases", auxilia no recurso de federação. O Spark cria os quadros de dados usando o recurso JDBC: database, aproveitando a API scala / python, mas também trabalha diretamente com o servidor Spark SQL Thrift e permite que os usuários consultem tabelas JDBC externas sem esforço, como outras tabelas hive / spark. |
Quem usa? | Analistas de dados, engenheiros de dados, cientistas de dados etc. | Analistas de dados, engenheiros de dados, cientistas de dados, desenvolvedor Spark etc. |
Conclusões -Spark SQL vs Presto
Spark SQL e Presto, ambos são mecanismos distribuídos por SQL disponíveis no mercado.
O Presto é muito útil quando se trata de consultas do tipo BI, e o Spark SQL lidera em termos de desempenho em grandes consultas de análise. Ao comparar com relação à configuração, o Presto é fácil de configurar que o Spark SQL. O Spark SQL e o Presto estão igualmente no mercado e resolvem um tipo diferente de problemas de negócios.
Artigo recomendado
Este foi um guia para Spark SQL vs Presto, seu significado, comparação cara a cara, diferenças principais, tabela de comparação e conclusão. Você também pode consultar os seguintes artigos para saber mais -
- Apache Spark vs Apache Flink - 8 coisas úteis que você precisa saber
- Apache Hive vs Apache Spark SQL - 13 diferenças surpreendentes
- 6 melhores comparações entre o Hadoop e o SQL
- Hadoop vs Teradata - Diferenças valiosas