一个 Spark 工作线程中的数据库查询
Database Queries in One Spark Worker Thread
最近开始学习Spark来加速处理。在我的情况下,Spark 应用程序的输入 RDD 不包含批处理所需的所有数据。因此,我必须在每个工作线程中执行一些 SQL 查询。
可以对所有输入数据进行预处理,但时间太长。
我知道下面的问题可能太"general",但任何经验都会有所帮助。
- 是否可以在工作线程中执行一些 SQL 查询?
- 如果单个查询比较复杂,数据服务器上的调度会不会是瓶颈?
- 哪个数据库适合这种情况(也许具有良好的并发能力)? MongoDB? *SQL?
如果没有具体的 use-case,很难回答您的一些问题。但以下通用答案可能会有所帮助
- 是的。您可以访问外部数据源(RDBMS、Mongo 等)。您甚至可以使用
mapPartitions
通过创建一次连接来提高性能。看到 example here
- 不看具体例子就无法回答
- 数据库选择取决于 use-cases。
最近开始学习Spark来加速处理。在我的情况下,Spark 应用程序的输入 RDD 不包含批处理所需的所有数据。因此,我必须在每个工作线程中执行一些 SQL 查询。
可以对所有输入数据进行预处理,但时间太长。
我知道下面的问题可能太"general",但任何经验都会有所帮助。
- 是否可以在工作线程中执行一些 SQL 查询?
- 如果单个查询比较复杂,数据服务器上的调度会不会是瓶颈?
- 哪个数据库适合这种情况(也许具有良好的并发能力)? MongoDB? *SQL?
如果没有具体的 use-case,很难回答您的一些问题。但以下通用答案可能会有所帮助
- 是的。您可以访问外部数据源(RDBMS、Mongo 等)。您甚至可以使用
mapPartitions
通过创建一次连接来提高性能。看到 example here - 不看具体例子就无法回答
- 数据库选择取决于 use-cases。