【发布时间】:2017-06-09 22:37:33
【问题描述】:
来自apache-spark-makes-slow-mysql-queries-10x-faster
对于长期运行的(即报告或 BI)查询,可能需要很多 由于 Spark 是一个大规模并行系统,因此速度更快。 MySQL 只能使用一个 每个查询的 CPU 核心,而 Spark 可以使用所有集群上的所有核心 节点。在下面的示例中,MySQL 查询在 Spark 中执行 并且运行速度提高 5-10 倍(基于相同的 MySQL 数据)。
看起来不错,但我想不出实际的查询示例,其中查询可以划分为子查询,而多核 van 使其更快 在一个核心上运行它?
【问题讨论】:
-
这完全取决于数据的大小。如果只是选择前 10 行,也许纯 SQL 会更快。但是,当您谈论以大表的形式获取大量数据,然后对其执行一些操作(如连接等)时,那么普通的旧 SQL 就会筋疲力尽。 SparkSQL 将这些操作转换为使用多个内核的 map-reduce 作业,并最终提高了执行速度。你不需要大炮来杀死一只苍蝇,但你不能用铲子淹死一艘船!
-
@satnam 我的问题是 join 之类的操作如何在 spark 中比 MySQL 之类的 RelationDB 执行得更好,在 MySQL 中我们也可以使用索引,但首先我们必须执行诸如排序和查找之类的额外任务(只是一个示例) ?
标签: java apache-spark apache-spark-sql