为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】 按天分区,每天千万级数据量,使用tispark读取,越跑越慢
【应用框架及开发适配业务逻辑】tispak 方式连接到tidb ,通过写sql获取tidb数据表取数。tidb数据表使用默认方式。
【背景】 该tidb数据表,使用spark jdbc append方式写入。并使用tispark方式读取使用。写入与读取是两套代码。
【现象】 spark管理页面的task 由一开始的2000个,逐步上升到9000个。在资源不变的情况下,越跑越慢。
1亿条数据,大概25G的样子,使用tisprark 写sql 读取到spark中 现在大概需要12分钟。
【问题】 每10分钟读一次,大概不到两天的数据量,使用时间字段取数(不超过两天,最近两天),跑了半年,为啥spark的计算任务(task),越来越多?
【业务影响】
【TiDB 版本】 5.7.25-TiDB-v5.2.1
【附件】
tidb 建表语句:
CREATE TABLE final_result_tabl1 (
col1 varchar(100) DEFAULT NULL,
col2 varchar(100) DEFAULT NULL,
col3 varchar(100) DEFAULT NULL,
…
createTime timestamp NULL DEFAULT NULL,
KEY index_a (createTime),
KEY index_b (createTime,col1),
KEY index_c (createTime,col2),
KEY index_d (createTime,col1,col2)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT=‘********’
PARTITION BY RANGE ( UNIX_TIMESTAMP(createTime) ) (
PARTITION 20220201_09 VALUES LESS THAN (1643677200),
PARTITION 20220202_09 VALUES LESS THAN (1643763600),
PARTITION 20220203_09 VALUES LESS THAN (1643850000),
…
PARTITION 20230101 VALUES LESS THAN (1672588800),
PARTITION 20230102 VALUES LESS THAN (1672675200),
PARTITION 20230103 VALUES LESS THAN (1672761600)
)
;

