Spark SQL vs Presto - Descubra las 7 comparaciones útiles

Tabla de contenido:

Anonim

Diferencias entre Spark SQL y Presto

Presto en términos simples es 'Motor de consultas SQL', desarrollado inicialmente para Apache Hadoop. Es un motor de consulta SQL distribuido de código abierto diseñado para ejecutar consultas analíticas interactivas contra conjuntos de datos de todos los tamaños.

Spark SQL es un motor de cálculo distribuido en memoria con una capa SQL sobre conjuntos de datos estructurados y semiestructurados. Desde su procesamiento en memoria, el procesamiento será rápido en Spark SQL.

Comparación cabeza a cabeza entre Spark SQL y Presto (infografía)

A continuación se presentan las 7 principales comparaciones entre Spark SQL y Presto

Diferencias clave entre Spark SQL y Presto

A continuación se muestra la lista, sobre la diferencia clave entre Presto y Spark SQL

  • Apache Spark presenta un módulo de programación para procesar datos estructurados llamado Spark SQL. Spark SQL incluye una abstracción de codificación llamada Data Frame que puede actuar como motor de consulta SQL distribuido.
  • El motivo detrás del comienzo de Presto fue permitir análisis y enfoques interactivos de la velocidad de los almacenes de datos comerciales con el poder de escalar el tamaño de las organizaciones que coinciden con Facebook.
  • Mientras que Spark SQL es un componente además de Spark Core que presenta una nueva abstracción de datos llamada SchemaRDD (Conjuntos de datos distribuidos resilientes), proporciona soporte para datos estructurados / semiestructurados.
  • Presto fue diseñado como una alternativa a las herramientas que consultan datos HDFS utilizando trabajos de MapReduce como Hive o Pig, pero Presto no se limita a HDFS.
  • Spark SQL sigue el procesamiento en memoria, que aumenta la velocidad de procesamiento. Spark está diseñado para procesar una amplia gama de cargas de trabajo, como consultas por lotes, algoritmos iterativos, consultas interactivas, transmisión, etc.
  • Presto es capaz de ejecutar las consultas federativas. A continuación se muestra el ejemplo de consultas federadas de Presto

Supongamos cualquier RDBMS con la tabla sample1

Y HIVE con la tabla sample2,

'Testdb' es la base de datos en Hive y MYSQL. Usando Presto podemos evaluar los datos usando en una sola consulta una vez que sus conectores están configurados correctamente como se muestra a continuación:

presto> hive.Testdb.sample2

Función (select / Group by ..etc)> mysql.Testdb.sample1

  • La arquitectura de Spark SQL consta de Spark SQL, Schema RDD y Data Frame
    • Un marco de datos es una colección de datos; Los datos se organizan en columnas con nombre. Técnicamente, es lo mismo que las tablas de bases de datos relacionales.
    • Esquema RDD: Spark Core contiene una estructura de datos especial llamada RDD. Spark SQL funciona en esquemas, tablas y registros. Por lo tanto, un usuario puede usar el esquema RDD como una tabla temporal. Para que ese usuario pueda llamar a este esquema RDD como marco de datos
  • Capacidades del marco de datos: el marco de datos procesa los datos en el tamaño de kilobytes a petabytes en un solo clúster de nodo a clústeres de múltiples nodos,
  • Data Frame admite diferentes formatos de datos (CSV, elasticsearch, Cassandra, etc.) y sistemas de almacenamiento (HDFS, tablas HIVE, MySQL, etc.). Se puede integrar con todas las herramientas / marcos de Big Data a través de Spark-Core y proporciona API para idiomas como Programación en Python, Java, Scala y R.
  • Mientras que Presto es un motor distribuido, funciona en una configuración de clúster. La arquitectura Presto es simple de entender y extensible. El cliente Presto (CLI) envía sentencias SQL a un coordinador de daemon maestro que gestiona el procesamiento.
  • Empresas que usan Presto: Facebook, Netflix, Airbnd, Dropbox, etc.
  • Los casos de uso de Apache Spark se pueden encontrar en industrias como finanzas, comercio minorista, atención médica y viajes, etc. Muchos sitios web de comercio electrónico como eBay, Alibaba, Pinterest están utilizando Spark SQL para analizar cientos de petabytes de datos en su plataforma de comercio electrónico.

Comparaciones Table Spark SQL vs Presto

A continuación se muestra la comparación más alta entre SQL vs Presto

Bases de comparación entre SQL vs Presto Presto Spark SQL
Ecosistemas / PlataformasHadoop, Big Data Processing, etc.Spark Framework, Big Data Processing, etc.
PropósitoPresto está diseñado para ejecutar consultas SQL sobre Big Data (enormes cargas de trabajo).
Fue diseñado por Facebook para procesar sus enormes cargas de trabajo.
Spark SQL es uno de los componentes de Apache Spark Core.
Spark Core es el motor de ejecución fundamental para la plataforma spark
Preparar
  • Presto es un motor de consulta SQL distribuido para procesar bytes de datos favoritos y se ejecuta en un clúster como configurado con un conjunto de máquinas.
  • Una configuración completa del clúster Presto incluye un coordinador (nodo de administrador) y varios trabajadores. El usuario envía las consultas de un cliente que es la CLI de Presto al coordinador. El coordinador analiza, analiza y planifica la ejecución de la consulta y luego distribuirá el procesamiento de la consulta a los trabajadores.
  • La configuración de Spark SQL estará lista para usar si instala y configura Apache Spark Cluster
  • Apache Spark es el subproyecto de Hadoop.
  • Apaches Spark es una tecnología de procesamiento de Big Data basada en clúster, diseñada para un cálculo rápido.
Capacidades / CaracterísticasPresto permite la consulta de datos en muchas fuentes de datos; Por ejemplo, los datos pueden residir en almacenes de datos: Hive, Cassandra, RDBMS y algunos otros almacenes de datos propietarios.Spark SQL brinda flexibilidad en la integración con otras fuentes de datos utilizando los marcos de datos y los conectores JDBC.
Soporte para conectoresPresto admite conectores enchufables. Estos conectores proporcionan conjuntos de datos para consultas.

A continuación hay varios conectores preexistentes disponibles en presto, mientras que Presto también ofrece la posibilidad de conectarse con conectores personalizados.
A continuación se muestran algunos de los conectores que admite.

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

Una interfaz de marco de datos permite que diferentes fuentes de datos funcionen en Spark SQL.
Spark SQL incluye un modo de servidor con conectividad JDBC y ODBC estándar de la industria.
Consultas federadasPresto es compatible con las consultas federadas. Presto se puede configurar para conectarse con diferentes bases de datos y una vez configurado; su CLI se puede usar para lanzar 'Consultas federadas'.
En una consulta de Presto, el usuario puede combinar datos de múltiples fuentes de datos y ejecutar la consulta.
Spark SQL viene con una función incorporada para conectarse con otras bases de datos utilizando JDBC que es "JDBC a otras bases de datos", ayuda en la función de federación.
Spark crea los marcos de datos utilizando la función de base de datos JDBC: aprovechando la API scala / python, pero también funciona directamente con el servidor Spark SQL Thrift y permite a los usuarios consultar tablas JDBC externas sin esfuerzo como otras tablas de colmena / chispa.
Quien usaAnalistas de datos, ingenieros de datos, científicos de datos, etc.Analistas de datos, ingenieros de datos, científicos de datos, desarrolladores de chispas, etc.

Conclusiones -Spark SQL vs Presto

Spark SQL y Presto, ambos son motores distribuidos SQL disponibles en el mercado.

Presto es muy útil cuando se trata de consultas de tipo BI, y Spark SQL lidera el rendimiento en grandes consultas analíticas. Al comparar con respecto a la configuración, Presto configuró fácilmente que Spark SQL. Tanto Spark SQL como Presto están en pie de igualdad en un mercado y resuelven un tipo diferente de problemas comerciales.

Artículo recomendado

Esta ha sido una guía para Spark SQL vs Presto, su significado, comparación directa, diferencias clave, tabla de comparación y conclusión. También puede consultar los siguientes artículos para obtener más información:

  1. Apache Spark vs Apache Flink - 8 cosas útiles que debes saber
  2. Apache Hive vs Apache Spark SQL - 13 diferencias asombrosas
  3. Las 6 mejores comparaciones entre Hadoop Vs SQL
  4. Hadoop vs Teradata: diferencias valiosas