Spark SQL против Presto - узнайте 7 полезных сравнений

Содержание:

Anonim

Различия между Spark SQL и Presto

Проще говоря, это «SQL Query Engine», изначально разработанный для Apache Hadoop. Это механизм распределенных SQL-запросов с открытым исходным кодом, предназначенный для выполнения интерактивных аналитических запросов к наборам данных любых размеров.

Spark SQL - это распределенный механизм вычислений в памяти со слоем SQL поверх структурированных и полуструктурированных наборов данных. После обработки в памяти обработка будет быстрой в Spark SQL.

Сравнение лицом к лицу между Spark SQL и Presto (Инфографика)

Ниже приведены 7 лучших сравнений Spark SQL и Presto.

Ключевые различия между Spark SQL и Presto

Ниже приведен список ключевых различий между Presto и Spark SQL.

  • Apache Spark представляет программный модуль для обработки структурированных данных, который называется Spark SQL. Spark SQL включает в себя абстракцию кодирования под названием Data Frame, которая может выступать в качестве механизма распределенного SQL-запроса.
  • Мотивом начала работы Presto было обеспечение интерактивной аналитики и подходов к скорости коммерческих хранилищ данных с возможностью масштабирования организаций, соответствующих Facebook.
  • Принимая во внимание, что Spark SQL является компонентом поверх Spark Core, который представляет новую абстракцию данных под названием SchemaRDD (устойчивые распределенные наборы данных), он обеспечивает поддержку структурированных / полуструктурированных данных.
  • Presto был разработан в качестве альтернативы инструментам, которые запрашивают данные HDFS с помощью заданий MapReduce, таких как Hive или Pig, но Presto не ограничивается HDFS.
  • Spark SQL выполняет обработку в памяти, что увеличивает скорость обработки. Spark предназначен для обработки широкого спектра рабочих нагрузок, таких как пакетные запросы, итерационные алгоритмы, интерактивные запросы, потоковая передача и т. Д.
  • Presto способен выполнять федеративные запросы. Ниже приведен пример запросов Presto Federated.

Предположим, что любая РСУБД с таблицей sample1

И HIVE с таблицей sample2,

Testdb - это база данных в кустах и ​​MYSQL. Используя Presto, мы можем оценить использование данных в одном запросе, если их соединители настроены правильно, как показано ниже:

presto> hive.Testdb.sample2

Функция (выберите / Группировать по ..etc)> mysql.Testdb.sample1

  • Архитектура Spark SQL состоит из Spark SQL, схемы RDD и фрейма данных
    • Фрейм данных - это набор данных; данные организованы в именованные столбцы. Технически, это то же самое, что и таблицы реляционных баз данных.
    • Схема RDD: Spark Core содержит специальную структуру данных, которая называется RDD. Spark SQL работает со схемами, таблицами и записями. Следовательно, пользователь может использовать схему RDD в качестве временной таблицы. Так что пользователь может назвать эту схему RDD как фрейм данных
  • Возможности фрейма данных: фрейм данных обрабатывает данные размером от килобайта до петабайта в кластере с одним узлом и в кластерах из нескольких узлов,
  • Фрейм данных поддерживает различные форматы данных (CSV, asticsearch, Cassandra и т. Д.) И системы хранения (HDFS, таблицы HIVE, MySQL и т. Д.). Он может быть интегрирован со всеми инструментами / средами больших данных через Spark-Core и предоставляет API для таких языков, как Программирование на Python, Java, Scala и R
  • В то время как Presto - это распределенный движок, он работает на кластере. Архитектура Presto проста для понимания и расширяема. Клиент Presto (CLI) отправляет операторы SQL координатору главного демона, который управляет обработкой.
  • Компании, использующие Presto: Facebook, Netflix, Airbnd, Dropbox и т. Д.
  • Примеры использования Apache Spark можно найти в таких отраслях, как финансы, розничная торговля, здравоохранение, путешествия и т. Д. Многие веб-сайты электронной коммерции, такие как eBay, Alibaba, Pinterest, используют Spark SQL для анализа сотен петабайт данных на своей платформе электронной коммерции.

Таблица сравнений Spark SQL против Presto

Ниже приведено самое лучшее сравнение между SQL и Presto.

Основа сравнения SQL с Presto престо Spark SQL
Экосистемы / ПлатформыHadoop, обработка больших данных и т. Д.Spark Framework, обработка больших данных и т. Д.
ЦельPresto предназначен для выполнения запросов SQL через большие данные (огромные рабочие нагрузки).
Он был разработан Facebook для обработки их огромных рабочих нагрузок.
Spark SQL является одним из компонентов Apache Spark Core.
Spark Core - основной движок исполнения для искровой платформы
Настроить
  • Presto - это распределенный механизм SQL-запросов для обработки мелких байтов данных, который работает в кластере, подобном настроенному с набором машин.
  • Полная настройка кластера Presto включает координатора (узел диспетчера) и нескольких сотрудников. Пользователь отправляет запросы от клиента, который является интерфейсом Presto CLI, координатору. Координатор анализирует, анализирует и планирует выполнение запроса, а затем распространяет обработку запроса среди рабочих.
  • Установка Spark SQL будет из коробки, если вы установите и настроите Apache Spark Cluster
  • Apache Spark - это подпроект Hadoop.
  • Apaches Spark - это технология обработки больших данных на основе кластера, предназначенная для быстрых вычислений.
Возможности / ОсобенностиPresto позволяет запрашивать данные из многих источников; Например, данные могут находиться в хранилищах данных: Hive, Cassandra, RDBMS и некоторых других проприетарных хранилищах данных.Spark SQL обеспечивает гибкость интеграции с другими источниками данных с использованием фреймов данных и коннекторов JDBC.
Поддержка коннекторовPresto поддерживает подключаемые разъемы. Эти соединители предоставляют наборы данных для запросов.

Ниже представлено несколько уже существующих разъемов, доступных в Presto, в то время как Presto также предоставляет возможность подключения с помощью пользовательских разъемов.
Ниже приведены некоторые из поддерживаемых разъемов.

  • Hadoop / Hive
  • Cassandra
  • Teradata
  • PostgreSQL
  • Oracle и т. Д.

Интерфейс Data Frame позволяет различным источникам данных работать на Spark SQL.
Spark SQL включает режим сервера со стандартным соединением JDBC и ODBC.
Федеративные ЗапросыPresto поддерживает федеративные запросы. Presto может быть настроен для подключения к различным БД и настроен один раз; его CLI можно использовать для запуска «Федеративных запросов».
В одном запросе Presto пользователь может объединить данные из нескольких источников данных и выполнить запрос.
Spark SQL поставляется со встроенной функцией для соединения с другими базами данных с использованием JDBC, которая называется «JDBC to other Databases», что способствует интеграции.
Spark создает фреймы данных с помощью функции JDBC: база данных, используя API Scala / Python, но он также работает напрямую с сервером Spark SQL Thrift и позволяет пользователям легко запрашивать внешние таблицы JDBC, как и другие таблицы кустов / искр.
Кто пользуетсяАналитики данных, инженеры данных, ученые данных и т. Д.Аналитики данных, инженеры данных, ученые, разработчики Spark и т. Д.

Выводы -Spark SQL против Presto

Spark SQL и Presto, оба являются распределенными движками SQL, доступными на рынке.

Presto очень полезен, когда речь идет о запросах типа BI, а Spark SQL лидирует по производительности в больших аналитических запросах. По сравнению с конфигурацией Presto настраивается проще, чем Spark SQL. И Spark SQL, и Presto одинаково стоят на рынке и решают разные бизнес-задачи.

Рекомендуемая статья

Это было руководство по Spark SQL против Presto, их значению, сравнению «голова к голове», ключевым различиям, сравнительной таблице и выводу. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Apache Spark против Apache Flink - 8 полезных вещей, которые нужно знать
  2. Apache Hive против Apache Spark SQL - 13 удивительных отличий
  3. Лучшие 6 сравнений между Hadoop и SQL
  4. Hadoop vs Teradata - Значимые различия