Spark SQL vs Presto - Descubra as 7 comparações úteis

Índice:

Anonim

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 / PlataformasHadoop, Big Data Processing etcSpark Framework, Big Data Processing etc
ObjetivoO 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
  • O Presto é um mecanismo de consulta SQL distribuído para processamento de bytes de dados de estimação e é executado em um cluster como configurado com um conjunto de máquinas.
  • Uma configuração completa do cluster Presto inclui um coordenador (nó do gerente) e vários trabalhadores. O usuário envia as consultas de um cliente que é a CLI do Presto ao coordenador. O coordenador analisa, analisa e planeja a execução da consulta e depois distribuirá o processamento da consulta aos trabalhadores.
  • A instalação do Spark SQL estará pronta para uso se você instalar e configurar o Apache Spark Cluster
  • O Apache Spark é o subprojeto do Hadoop.
  • O Apaches Spark é uma tecnologia de processamento de Big Data baseada em cluster, projetada para computação rápida.
Recursos / RecursosO 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 conectoresO 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.
Abaixo estão alguns dos conectores suportados

  • Hadoop / Hive
  • Cassandra
  • Teradata
  • PostgreSQL
  • Oracle etc

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 federadasO 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 -

  1. Apache Spark vs Apache Flink - 8 coisas úteis que você precisa saber
  2. Apache Hive vs Apache Spark SQL - 13 diferenças surpreendentes
  3. 6 melhores comparações entre o Hadoop e o SQL
  4. Hadoop vs Teradata - Diferenças valiosas