doris数据库批量插入数据超过限制解决

业务场景

在批量插入数据至 Apache Doris 数据库时,我们遇到数据包大小 (max_allowed_packet) 超过限制的问题。这种情况下,Doris 默认的 max_allowed_packet 配置为 1048576(1MB),这在批量数据插入时容易导致失败。为了解决此问题,我们需要调高该配置。
查看命令:SHOW VARIABLES LIKE 'max_allowed_packet';
在这里插入图片描述

Doris中 max_allowed_packet 配置调整

max_allowed_packet 是限制单次请求数据包大小的参数,默认值为 1048576(即1MB)。可以通过两种方式调整该值,使其满足批量插入需求。我们建议将 max_allowed_packet 设置为 32MB,即 33554432,以提高插入效率。

  1. 临时调整 max_allowed_packet
    在 Doris 中可以使用 SQL 语句临时调整该值:
SET GLOBAL max_allowed_packet = 33554432;

注意,此设置为临时调整,仅在当前会话中有效,重启后将恢复默认值。如果需要长期调整,可以使用以下持久化修改方式。

  1. 配置文件持久化修改
    为了持久化该配置,修改 Doris 配置文件 fe.conf:

打开 fe.conf 文件,找到 max_allowed_packet 参数(如果不存在,则新建一行),并设置如下:

max_allowed_packet = 33554432

保存并重启 Doris 服务,以应用新配置。

  1. 其他批量插入优化建议
    拆分批次
    若插入的数据量非常大,建议将数据拆分成多个小批次,每批数据量不超过 max_allowed_packet 限制值。此举可显著降低出错几率,尤其在数据量较大时效果显著。

运行调试
在修改完 max_allowed_packet 配置后,可通过批量插入操作进行测试,确保调整后的设置满足业务需求。如问题仍存在,可以进一步增大该值至 64MB 或更高。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐