最近将Doris环境的版本从2.1.5升级到4.0.3,升级后验证功能是否都正常时发现使用streamload方式向一张聚合表批量导入数据时会超时ReadTimeOut, 表结构如下
sql
CREATE TABLE `instantaneous` (
`interval` bigint NOT NULL COMMENT "统计区间(年月日)",
`org_id` varchar(32) NULL DEFAULT "" COMMENT "工厂ID",
`device_code` varchar(64) NULL COMMENT "设备编码",
`point_name` varchar(128) NULL COMMENT "点位名称",
`max_value` decimal(21,5) MAX NULL COMMENT "最大值",
`min_value` decimal(21,5) MIN NULL COMMENT "最小值",
`avg_value` decimal(21,5) REPLACE_IF_NOT_NULL NULL COMMENT "平均值",
`diff_value` decimal(21,5) REPLACE_IF_NOT_NULL NULL COMMENT "累计型点位为当天的差值",
`instantaneous` varchar(64) REPLACE NULL COMMENT "瞬时值",
`last_update_time` datetime REPLACE NULL COMMENT "最后修改时间"
) ENGINE=OLAP AGGREGATE KEY(`interval`, `org_id`, `device_code`, `point_name`)
DISTRIBUTED BY HASH(`interval`) BUCKETS AUTO;
一开始怀疑是httpclient的问题,尝试过将http请求由hutool的HttpRequest换成HttpURLConnection、okHttp和apache的httpclient都不行,甚至还手动用apifox客户端发起请求,也是以失败告终。
为了不长时间影响业务,将streamload方式改为insert into方式批量插入。
然后在测试环境下尝试将上述的表改为UNIQUE模型的表,居然没有问题,也不知道是怎么回事。