Différences entre Spark SQL et Presto
Presto en termes simples est «SQL Query Engine», initialement développé pour Apache Hadoop. C'est un moteur de requête SQL distribué et open source conçu pour exécuter des requêtes analytiques interactives sur des ensembles de données de toutes tailles.
Spark SQL est un moteur de calcul distribué en mémoire avec une couche SQL au-dessus d'ensembles de données structurés et semi-structurés. Depuis son traitement en mémoire, le traitement sera rapide dans Spark SQL.
Comparaison directe entre Spark SQL et Presto (infographie)
Voici la comparaison du Top 7 entre Spark SQL et Presto
Différences clés entre Spark SQL et Presto
Ci-dessous la liste, sur la différence clé entre Presto et Spark SQL
- Apache Spark introduit un module de programmation pour le traitement des données structurées appelé Spark SQL. Spark SQL comprend une abstraction de codage appelée Data Frame qui peut agir comme moteur de requête SQL distribué.
- Le motif derrière le début de Presto était de permettre des analyses et des approches interactives de la vitesse des entrepôts de données commerciaux avec le pouvoir de dimensionner les organisations correspondant à Facebook.
- Alors que Spark SQL est un composant au-dessus de Spark Core qui introduit une nouvelle abstraction de données appelée SchemaRDD (Resilient Distributed Datasets), il prend en charge les données structurées / semi-structurées.
- Presto a été conçu comme une alternative aux outils qui interrogent les données HDFS à l'aide de travaux MapReduce tels que Hive ou Pig, mais Presto n'est pas limité à HDFS.
- Spark SQL suit le traitement en mémoire, ce qui augmente la vitesse de traitement. Spark est conçu pour traiter un large éventail de charges de travail telles que les requêtes par lots, les algorithmes itératifs, les requêtes interactives, le streaming, etc.
- Presto est capable d'exécuter les requêtes fédératives. Ci-dessous, l'exemple des requêtes fédérées Presto
Supposons que tout SGBDR avec la table sample1
Et HIVE avec table sample2,
'Testdb' est la base de données dans les ruches et MYSQL. En utilisant Presto, nous pouvons évaluer les données en utilisant une seule requête une fois que leurs connecteurs sont correctement configurés comme indiqué ci-dessous-
presto> hive.Testdb.sample2
Fonction (sélectionner / Grouper par ..etc)> mysql.Testdb.sample1
- L'architecture Spark SQL comprend Spark SQL, Schema RDD et Data Frame
- Une trame de données est une collection de données; les données sont organisées en colonnes nommées. Techniquement, c'est la même chose que les tables de base de données relationnelles.
- Schéma RDD: Spark Core contient une structure de données spéciale appelée RDD. Spark SQL fonctionne sur les schémas, les tables et les enregistrements. Par conséquent, un utilisateur peut utiliser le RDD du schéma comme table temporaire. Pour que cet utilisateur puisse appeler ce schéma RDD en tant que trame de données
- Capacités de trame de données: la trame de données traite les données de la taille de kilo-octets à pétaoctets sur un cluster de noeud unique à plusieurs clusters de noeud
- Data Frame prend en charge différents formats de données (CSV, elasticsearch, Cassandra, etc.) et des systèmes de stockage (HDFS, tables HIVE, MySQL, etc.), il peut être intégré à tous les outils / frameworks Big Data via Spark-Core et fournit une API pour des langages tels que Programmation Python, Java, Scala et R.
- Alors que Presto est un moteur distribué, fonctionne sur une configuration de cluster. L'architecture Presto est simple à comprendre et extensible. Le client Presto (CLI) soumet les instructions SQL à un coordinateur de démon maître qui gère le traitement.
- Entreprises utilisant Presto: Facebook, Netflix, Airbnd, Dropbox etc.
- Les cas d'utilisation d'Apache Spark peuvent être trouvés dans des secteurs comme la finance, la vente au détail, les soins de santé et les voyages, etc. De nombreux sites Web de commerce électronique comme eBay, Alibaba et Pinterest utilisent Spark SQL pour analyser des centaines de pétaoctets de données sur sa plateforme de commerce électronique.
Tableau de comparaison Spark SQL vs Presto
Ci-dessous, la comparaison la plus élevée entre SQL et Presto
Base de comparaison entre SQL vs Presto | Presto | Spark SQL |
Éco-systèmes / plateformes | Hadoop, Big Data Processing, etc. | Cadre Spark, traitement de Big Data, etc. |
Objectif | Presto est conçu pour exécuter des requêtes SQL sur des Big Data (charges de travail énormes). Il a été conçu par Facebook pour traiter leurs énormes charges de travail. | Spark SQL est l'un des composants d'Apache Spark Core. Spark Core est le moteur d'exécution fondamental de la plateforme spark |
Installer |
|
|
Capacités / fonctionnalités | Presto permet l'interrogation de données sur de nombreuses sources de données; Par exemple, les données peuvent résider dans des magasins de données: Hive, Cassandra, RDBMS et certains autres magasins de données propriétaires. | Spark SQL offre une flexibilité d'intégration avec d'autres sources de données à l'aide des trames de données et des connecteurs JDBC. |
Prise en charge des connecteurs | Presto prend en charge les connecteurs enfichables. Ces connecteurs fournissent des ensembles de données pour les requêtes.
Vous trouverez ci-dessous plusieurs connecteurs préexistants disponibles dans presto, tandis que Presto offre également la possibilité de se connecter avec des connecteurs personnalisés.
| Une interface Data Frame permet à différentes sources de données de fonctionner sur Spark SQL. Spark SQL comprend un mode serveur avec une connectivité JDBC et ODBC standard. |
Requêtes fédérées | Presto prend en charge les requêtes fédérées. Presto peut être configuré pour se connecter à différentes bases de données et une fois configuré; sa CLI peut être utilisée pour lancer des «requêtes fédérées». Dans une requête Presto, l'utilisateur peut combiner des données provenant de plusieurs sources de données et exécuter la requête. | Spark SQL est livré avec une fonctionnalité intégrée pour se connecter à d'autres bases de données à l'aide de JDBC qui est «JDBC à d'autres bases de données», il facilite la fonctionnalité de fédération. Spark crée les trames de données à l'aide de la fonctionnalité JDBC: base de données en exploitant l'API scala / python, mais il fonctionne également directement avec le serveur Spark SQL Thrift et permet aux utilisateurs d'interroger des tables JDBC externes sans effort comme les autres tables ruche / étincelle. |
Qui utilise? | Analystes de données, ingénieurs de données, scientifiques des données, etc. | Analystes de données, ingénieurs de données, scientifiques des données, développeur Spark, etc. |
Conclusions -Spark SQL vs Presto
Spark SQL et Presto, les deux sont des moteurs distribués SQL disponibles sur le marché.
Presto est très utile en ce qui concerne les requêtes de type BI, et Spark SQL mène en termes de performances dans les requêtes d'analyse volumineuses. Lors de la comparaison en ce qui concerne la configuration, Presto s'installe plus facilement que Spark SQL. Spark SQL et Presto sont tous deux sur un même marché et résolvent un type différent de problèmes commerciaux.
Article recommandé
Cela a été un guide pour Spark SQL vs Presto, leur signification, leur comparaison directe, leurs principales différences, leur tableau de comparaison et leur conclusion. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Apache Spark vs Apache Flink - 8 choses utiles que vous devez savoir
- Apache Hive vs Apache Spark SQL - 13 différences étonnantes
- Les 6 meilleures comparaisons entre Hadoop et SQL
- Hadoop vs Teradata - Différences de valeur