¿Cómo se compara Apache Drill con el Presto de Facebook?

En esta publicación, compartiré la diferencia en los objetivos de diseño. La implementación real de Presto versus Drill para su caso de uso es realmente un ejercicio que le queda a usted. No he jugado con Presto para poder hablar de su robustez, uso, etc., ¡así que supongo que todo es genial!

Facebook creó Hive y también crearon Presto. Según la página de ingeniería de Facebook -Presto: interactuando con petabytes de datos en Facebook

“Presto es un motor de consulta SQL distribuido optimizado para análisis ad-hoc a velocidad interactiva. Admite SQL ANSI estándar, que incluye consultas complejas, agregaciones, uniones y funciones de ventana”.

Las cosas que se destacan para mí son

  • ANSI SQL en lugar de Hive QL
  • Salida del clásico MapReduce a un motor más personalizado diseñado para admitir la semántica de SQL
  • Está construido en Java – para un desarrollo más rápido
  • Compilación dinámica para bytecode
  • Construido con la idea de que HDFS es solo una fuente, se pueden consultar otros como HBase, etc. construyendo complementos de almacenamiento (conectores)

Ahora hablemos de Apache Drill.

Apache Drill tenía suposiciones similares al comenzar a construir un motor de consulta SQL. Por lo tanto, se aplican todos los puntos anteriores.

Hay un objetivo principal de diseño adicional con el que Apache Drill comenzó. La diferencia fundamental es que Apache Drill (en muchas circunstancias) no necesita un esquema para consultar y descubrir datos. Esto permite reducir la demora en obtener información de nuevos conjuntos de datos en su proceso de toma de decisiones.

La forma en que Apache Drill logra esto es modelando conceptualmente como un JSON. Esto le permite representar varios tipos de datos y consultarlos, incluidas las estructuras que evolucionan rápidamente y las estructuras no relacionales.

SQL sin esquema para Hadoop, NoSQL y Cloud Storage

Otro punto a tener en cuenta es que Drill está integrado con varias herramientas de BI de la industria (Presto también lo hace, según el comentario de Nezih a continuación)

Por lo que he comprobado, creo que Drill se ejecuta con Zookeeper mientras que Presto tiene su propio rastreador de nodos. Ambos están destinados a consultar el sistema de archivos / base de datos mediante la consulta SQL. Además, Presto requiere Java 8 para ejecutarse, mientras que Drill necesitará Java 7 o más.

https://prestodb.io
https://drill.apache.org/