Відмінності між Spark SQL та Presto
Просто кажучи, 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
Припустимо будь-яку RDBMS з таблицею sample1
І НЕЖЕ з таблицею sample2,
'Testdb' - це база даних як у вулику, так і в MYSQL. Використовуючи Presto, ми можемо оцінити дані за допомогою одного запиту, як тільки їх коннектори налаштовані правильно, як показано нижче-
presto> hive.Testdb.sample2
Функція (виберіть / Групувати по ..etc)> mysql.Testdb.sample1
- Архітектура іскри SQL складається з Spark SQL, RDD-схеми та фрейму даних
- Кадр даних - це набір даних; дані впорядковані у названі стовпці. Технічно це те саме, що таблиці реляційних баз даних.
- Схема RDD: Spark Core містить спеціальну структуру даних, що називається RDD. Spark SQL працює над схемами, таблицями та записами. Тому користувач може використовувати схему RDD як тимчасову таблицю. Таким чином, користувач може називати цю схему RDD як фрейм даних
- Можливості кадру даних: кадр даних обробляє дані розміром від кілобайт до петабайт на одному кластерному вузлі до декількох кластерних вузлів,
- Data Frame підтримує різні формати даних (CSV, elasticsearch, Cassandra тощо) та системи зберігання (HDFS, таблиці HIVE, MySQL тощо). Він може бути інтегрований з усіма інструментами / рамками Big Data через 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 vs Presto
Нижче наведено найвище порівняння між SQL та Presto
Основи порівняння між SQL та Presto | Престо | Іскровий SQL |
Екосистеми / Платформи | Hadoop, обробка великих даних тощо | Spark Framework, обробка великих даних тощо |
Призначення | Presto призначений для запуску SQL запитів над великими даними (величезні навантаження). Він був розроблений Facebook для обробки їх величезних навантажень .. | Spark SQL - одна з складових Apache Spark Core. Spark Core - це основний механізм виконання іскрової платформи |
Налаштуйте |
|
|
Можливості / Особливості | Presto дозволяє здійснювати запит даних у багатьох джерелах даних; Наприклад, дані можуть перебувати в сховищах даних: вулик, Кассандра, RDBMS та деякі інші власні сховища даних. | Spark SQL надає гнучкість в інтеграції з іншими джерелами даних за допомогою фреймів даних та роз'ємів JDBC. |
Підтримка роз'ємів | Presto підтримує роз'ємні роз'єми. Ці роз'єми надають набори даних для запитів.
Нижче наведено декілька наявних роз'ємів, доступних у програмі presto, в той час як Presto надає можливість також з'єднуватися зі спеціальними роз'ємами.
| Інтерфейс Data Frame дозволяє різним джерелам даних працювати на Spark SQL. Spark SQL включає серверний режим із стандартним підключенням JDBC та ODBC. |
Федеративні запити | Presto підтримує об'єднані запити. Presto може бути налаштований на з'єднання з різними БД і одноразово налаштований; його CLI можна використовувати для запуску "Федеративних запитів". В одному запиті Presto користувач може об'єднати дані з декількох джерел даних та запустити запит. | Spark SQL оснащений вбудованою функцією для з'єднання з іншими базами даних за допомогою JDBC, яка є "JDBC до інших баз даних", вона допомагає у функції федерації. Spark створює кадри даних за допомогою функції бази даних JDBC: використовуючи API scala / python, але він також працює безпосередньо з сервером Spark SQL Thrift і дозволяє користувачам без особливих зусиль запитувати зовнішні таблиці JDBC, як і інші таблиці вуликів / іскри. |
Хто використовує? | Аналітики даних, Інженери даних, Вчені та ін | Аналітики даних, Інженери даних, Вчені даних, Spark Developer тощо |
Висновки -Spark SQL vs Presto
Іскрові SQL і Presto, обидва є розподіленими двигунами SQL, доступними на ринку.
Presto дуже корисний, коли мова йде про запити типу BI, а Spark SQL веде за собою ефективність у великих запитах аналітики. Порівнюючи конфігурацію, Presto налаштовується просто, ніж Spark SQL. І Spark SQL, і Presto однаково стоять на ринку та вирішують різного роду бізнес-проблеми.
Рекомендована стаття
Це керівництво щодо Spark SQL vs Presto, їх значення, порівняння «голова до голови», ключових відмінностей, таблиці порівняння та висновку. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Apache Spark vs Apache Flink - 8 корисних речей, які потрібно знати
- Apache Hive vs Apache Spark SQL - 13 дивовижних відмінностей
- Найкращі 6 порівнянь між Hadoop Vs SQL
- Hadoop vs Teradata - мінливі відмінності