Różnice między Spark SQL a Presto
Presto w prostych słowach to „SQL Query Engine”, początkowo opracowany dla Apache Hadoop. Jest to rozproszony silnik zapytań SQL typu open source, zaprojektowany do uruchamiania interaktywnych zapytań analitycznych na zestawach danych wszystkich rozmiarów.
Spark SQL to rozproszony silnik obliczeniowy w pamięci z warstwą SQL na górze uporządkowanych i częściowo ustrukturyzowanych zestawów danych. Od czasu przetwarzania w pamięci przetwarzanie będzie szybkie w Spark SQL.
Bezpośrednie porównanie Spark Spark vs Presto (infografiki)
Poniżej znajduje się porównanie Top 7 między Spark SQL a Presto
Kluczowe różnice między Spark SQL a Presto
Poniżej znajduje się lista kluczowych różnic między Presto a Spark SQL
- Apache Spark wprowadza moduł programowania do przetwarzania danych strukturalnych o nazwie Spark SQL. Spark SQL zawiera abstrakcję kodowania o nazwie Data Frame, która może działać jako silnik zapytań rozproszonego SQL.
- Motywem przewodnim powstania Presto było umożliwienie interaktywnych analiz i podejść do prędkości komercyjnych hurtowni danych z możliwością skalowania wielkości organizacji pasujących do Facebooka.
- Podczas gdy Spark SQL jest składnikiem nad Spark Core, który wprowadza nową abstrakcję danych o nazwie SchemaRDD (Resilient Distributed Datasets), zapewnia obsługę danych strukturalnych / częściowo ustrukturyzowanych.
- Presto zostało zaprojektowane jako alternatywa dla narzędzi, które przeszukują dane HDFS za pomocą zadań MapReduce, takich jak Hive lub Pig, ale Presto nie ogranicza się do HDFS.
- Spark SQL następuje po przetwarzaniu w pamięci, co zwiększa szybkość przetwarzania. Spark jest zaprojektowany do przetwarzania szerokiego zakresu obciążeń, takich jak zapytania wsadowe, algorytmy iteracyjne, zapytania interaktywne, streaming itp.
- Presto jest w stanie wykonywać zapytania federacyjne. Poniżej znajduje się przykład zapytań federacyjnych Presto
Załóżmy dowolny RDBMS z tabelą sample1
I HIVE z tabelą sample2,
„Testdb” to baza danych zarówno w gałęzi, jak i MYSQL. Za pomocą Presto możemy oceniać dane za pomocą jednego zapytania, gdy ich konektory są poprawnie skonfigurowane, jak pokazano poniżej-
presto> hive.Testdb.sample2
Funkcja (wybierz / Grupuj według ..etc)> mysql.Testdb.sample1
- Architektura Spark SQL składa się ze Spark SQL, schematu RDD i ramki danych
- Ramka danych to zbiór danych; dane są uporządkowane w nazwane kolumny. Technicznie jest to to samo, co tabele relacyjnych baz danych.
- Schemat RDD: Spark Core zawiera specjalną strukturę danych o nazwie RDD. Spark SQL działa na schematach, tabelach i rekordach. Dlatego użytkownik może używać schematu RDD jako tabeli tymczasowej. Aby użytkownik mógł wywołać ten schemat RDD jako ramkę danych
- Możliwości ramki danych: ramka danych przetwarza dane o wielkości od kilobajtów do petabajtów w jednym klastrze węzłów do wielu klastrów węzłów,
- Ramka danych obsługuje różne formaty danych (CSV, elasticsearch, Cassandra itp.) I systemy pamięci masowej (HDFS, tabele HIVE, MySQL itp.). Może być zintegrowana ze wszystkimi narzędziami / strukturami Big Data za pośrednictwem Spark-Core i zapewnia API dla języków takich jak Programowanie w języku Python, Java, Scala i R.
- Podczas gdy Presto jest silnikiem rozproszonym, działa na konfiguracji klastra. Architektura Presto jest łatwa do zrozumienia i rozszerzalna. Klient Presto (CLI) przesyła instrukcje SQL do głównego koordynatora demona, który zarządza przetwarzaniem.
- Firmy korzystające z Presto: Facebook, Netflix, Airbnd, Dropbox itp.
- Przypadki użycia Apache Spark można znaleźć w branżach takich jak finanse, handel detaliczny, opieka zdrowotna i podróże itp. Wiele witryn e-commerce, takich jak eBay, Alibaba, Pinterest, używa Spark SQL do analizy setek petabajtów danych na swojej platformie e-commerce.
Tabela porównawcza Spark SQL vs Presto
Poniżej znajduje się najwyższe porównanie między SQL a Presto
Podstawa porównania SQL z Presto | Presto | Spark SQL |
Eko-systemy / platformy | Hadoop, przetwarzanie dużych zbiorów danych itp | Spark Framework, przetwarzanie dużych zbiorów danych itp |
Cel, powód | Presto jest przeznaczony do uruchamiania zapytań SQL w Big Data (ogromne obciążenia). Został zaprojektowany przez Facebooka do przetwarzania ich ogromnych obciążeń. | Spark SQL jest jednym ze składników Apache Spark Core. Spark Core to podstawowy silnik wykonawczy platformy Spark |
Ustawiać |
|
|
Możliwości / funkcje | Presto pozwala na wyszukiwanie danych w wielu źródłach danych; Na przykład dane mogą znajdować się w magazynach danych: Hive, Cassandra, RDBMS i niektórych innych zastrzeżonych magazynach danych. | Spark SQL zapewnia elastyczność integracji z innymi źródłami danych za pomocą ramek danych i konektorów JDBC. |
Wsparcie dla złączy | Presto obsługuje złącza wtykowe. Te konektory zapewniają zestawy danych dla zapytań.
Poniżej znajduje się kilka wcześniej istniejących złączy dostępnych w wersji Presto, a Presto zapewnia również możliwość łączenia się z niestandardowymi złączami.
| Interfejs Data Frame pozwala różnym źródłom danych pracować na Spark SQL. Spark SQL obejmuje tryb serwera ze standardową w branży łącznością JDBC i ODBC. |
Zapytania stowarzyszone | Presto obsługuje zapytania federacyjne. Presto można skonfigurować do łączenia się z różnymi bazami danych i po skonfigurowaniu; jego interfejs CLI może być używany do uruchamiania „zapytań federacyjnych”. W jednym zapytaniu Presto użytkownik może połączyć dane z wielu źródeł danych i uruchomić zapytanie. | Spark SQL ma wbudowaną funkcję łączenia się z innymi bazami danych za pomocą JDBC, czyli „JDBC do innych baz danych”, pomaga w funkcji federacji. Spark tworzy ramki danych przy użyciu funkcji bazy danych JDBC: wykorzystując API scala / python, ale działa również bezpośrednio z serwerem Spark SQL Thrift i pozwala użytkownikom bez trudu wyszukiwać zewnętrzne tabele JDBC, podobnie jak inne tabele gałęzi / iskier. |
Kto używa? | Analityk danych, inżynier danych, naukowiec itp | Analitycy danych, inżynierowie danych, naukowcy danych, Spark Developer itp |
Wnioski -Spark SQL vs Presto
Spark SQL i Presto, oba są silnikami rozproszonymi SQL dostępnymi na rynku.
Presto jest bardzo pomocne, jeśli chodzi o zapytania typu BI, a Spark SQL prowadzi pod względem wydajności w dużych zapytaniach analitycznych. Porównując konfigurację, Presto konfiguruje łatwe niż Spark SQL. Zarówno Spark SQL, jak i Presto stoją równo na rynku i rozwiązują różnego rodzaju problemy biznesowe.
Polecany artykuł
Jest to przewodnik po Spark SQL vs Presto, ich znaczeniu, porównaniu bezpośrednim, kluczowych różnicach, tabeli porównawczej i wnioskach. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -
- Apache Spark vs Apache Flink - 8 przydatnych rzeczy, które musisz wiedzieć
- Apache Hive vs Apache Spark SQL - 13 niesamowitych różnic
- Najlepsze 6 porównań między Hadoop a SQL
- Hadoop vs Teradata - Wartościowe różnice