【问题标题】:Apache Drill vs Spark [closed]Apache Drill 与 Spark [关闭]
【发布时间】:2015-06-29 16:52:28
【问题描述】:
【问题讨论】:
标签:
hadoop
apache-spark
bigdata
apache-drill
【解决方案1】:
这是我看到的一篇文章,讨论了一些 SQL 技术:http://www.zdnet.com/article/sql-and-hadoop-its-complicated/
Drill 在用户体验和架构上都有根本的不同。例如:
- Drill 是一个无模式的查询引擎。例如,您可以将其指向 JSON 或 Parquet 日志文件的目录(在本地机器上、NFS 共享、S3、HDFS、MapR-FS 等)并运行查询。您不必加载数据、创建和管理架构或预处理数据。
- Drill 在内部使用 JSON 文档模型,允许它查询任何结构的数据。许多现代数据很复杂,这意味着记录可以包含嵌套结构和数组,并且字段名称实际上可能对值进行编码,例如时间戳或网页 URL。 Drill 允许普通的 BI 工具对此类数据进行无缝操作,而无需提前对数据进行展平。
- Drill 适用于各种非关系数据存储,包括 Hadoop、NoSQL 数据库(MongoDB、HBase)和云存储。将添加其他数据存储。
Drill 1.0 刚刚发布(2015 年 5 月 19 日)。您可以轻松地将其下载到您的笔记本电脑上并在没有任何基础架构(Hadoop、NoSQL 等)的情况下使用它。
【解决方案2】:
Drill 让您能够使用 ANSI SQL 查询不同类型的数据集。这使得它非常适合临时数据探索,以及通过 ODBC 将 BI 工具连接到数据集。你甚至可以使用 Drill 来 SQL JOIN 不同类型的数据集。例如,您可以将 MySQL 表中的记录与 JSON 文件、CSV 文件、OpenTSDB 或 MapR-DB 中的行连接起来……不胜枚举。 Drill 可以连接到许多不同类型的数据。
当我考虑使用 Spark 时,我通常希望将其用于 RDD(弹性分布式数据集)。 RDD 可以轻松快速地处理大量数据。 Spark 还有一堆用于 ML 和流式传输的库。 Drill 根本不处理数据。它只是让您访问所述数据。您可以使用 Drill 将数据拉入 Spark、Tensorflow、PySpark 或 Tableau 等。
【解决方案3】:
Apache Spark-SQL:
- 您需要编写代码(Scala、Java 或 Python)来访问和处理数据。
- 可以针对 Dataframe 执行 SQL 查询。
- 可以分布式方式(集群)执行。
- 几乎每个数据存储都有 Spark 驱动程序或连接器。
- 用于大规模并行计算/数据分析。
- 支持流处理。
- 拥有更大的支持社区。li>
阿帕奇钻头:
- 无需编写代码,Drill 将探索数据源并创建自己的数据目录。
- 更易于使用,只需 SQL。
- 可以分布式方式(集群)执行。
- 它可用于从多种数据源读取数据,例如 MongoDB、Parquet 文件、MySQL 和任何 JDBC 数据库。
- 用于临时数据探索。
- 不支持流处理。
- 它的支持社区较小。