我正在运行一个数据检索查询,它连接到一个内部运行innodb引擎的rds aurora mysql示例(大小为r5.2xlarge)。数据量超过6亿条记录。查询正在从表中检索很少的列,并通过emr上的pyspark运行。我将分区信息添加到jdbc read调用以并行化读取。分区列是一个自动递增的数值列,它被编入索引以更快地获取记录。结果,spark引擎根据分区列的值动态生成where子句。以下是查询:
SELECT <subset-of-columns>
FROM <db>.<table>
WHERE <index-column> BETWEEN <lower-bound> AND <max-value-of-the-partition>;
我将分区数指定为60。因此,将执行60个这样的查询,每个查询都具有where子句的不同值。几个月前还不错,但现在不行。cpu利用率超过90%,spark最多只能运行50个任务(相当于50个分区)。我现在还不知道是什么导致了这个问题。
暂无答案!
目前还没有任何答案,快来回答吧!