相关配置
本文介绍您在执行数据导入之前,需要关注的一些系统限制和参数配置。
内存限制
您可以通过设置参数来限制单个导入作业的内存使用,以防止导入作业占用过多内存,特别是在导入并发较高的情况下。同时,您也需要注意避免设置过小的内存使用上限,因为内存使用上限过小,导入过程中可能会因为内存使用量达到上限而频繁地将内存中的数据刷出到磁盘,进而可能影响导入效率。建议您根据具体的业务场景要求,合理地设置内存使用上限。
不同的导入方式限制内存的方式略有不同,具体请参见 Stream Load、Broker Load、Routine Load、Spark Load 和 INSERT。需要注意的是,一个导入作业通常都会分布在多个 BE(或 CN)上执行,这些内存参数限制的是一个导入作业在单个 BE(或 CN)上的内存使用,而不是在整个集群上的内存使用总和。
您还可以通过设置一些参数来限制在单个 BE(或 CN)上运行的所有导入作业的总的内存使用上限。可参考下面的“系统配置”章节。
系统配置
本节解释对所有导入方式均适用的参数配置。
FE 配置
您可以通过修改每个 FE 的配置文件 fe.conf 来设置如下参数:
-
max_load_timeout_second和min_load_timeout_second设置导入超时时间的最大、最小值,单位均为秒。默认的最大超时时间为 3 天,默认的最小超时时间为 1 秒。自定义的导入超时时间不能超过这个最大、最小值范围。该参数配置适用于所有模式的导入作业。
-
desired_max_waiting_jobs等待队列可以容纳的导入作业的最大个数,默认值为 1024 (2.4 及之前版本默认值为 100;2.5 及以后版本默认值变为 1024)。如果 FE 中处于 PENDING 状态的导入作业数目达到最大个 数限制时,FE 会拒绝新的导入请求。该参数配置仅对异步执行的导入有效。
-
max_running_txn_num_per_dbStarRocks 集群每个数据库中正在进行的导入事务的最大个数(一个导入作业可能包含多个事务),默认值为 1000 (自 3.1 版本起,默认值由 100 变为 1000。)。当数据库中正在运行的导入事务达到最大个数限制时,后续提交的导入作业不会执行。如果是同步的导入作业,作业会被拒绝;如果是异步的导入作业,作业会在队列中等待。
备注所有模式的作业均包含在内、统一计数。
-
label_keep_max_second已经完成、且处于 FINISHED 或 CANCELLED 状态的导入作业记录在 StarRocks 系统的保留时长,默认值为 3 天。该参数配置适用于所有模式的导入作业。