为了更快的定位您的问题,请提供以下信息,谢谢
【详述】我使用streamload写入时序数据,在应用程序中做攒批处理,间隔大概1秒一次写入streamload的http调用写入,一次streamload大概在600K左右的数据,序列化为string格式写入。发现在数据量越写越多(单表)后,streamload单次写入耗时较长,600K的数据需要1-2秒,有时候会达到5-10s。 这个是什么原因,应该如何分析。
我的duplicateKey表结构:
CREATE TABLE asset_fields
(
ts
datetime COMMENT “时间戳us”,
scope_id
varchar(256) NULL COMMENT “隔离ID”,
device
varchar(256) NULL COMMENT “设备编码”,
field
varchar(256) NULL COMMENT “属性编码”,
value_int
bigint(20) NULL COMMENT “int值”,
value_float
float NULL COMMENT “float值”,
value_string
varchar(256) NULL COMMENT “string值”,
quality
int(11) NULL DEFAULT “0” COMMENT “”,
INDEX idx_device_code (device
) USING BITMAP,
INDEX idx_field (field
) USING BITMAP
) ENGINE=OLAP
DUPLICATE KEY(ts
, scope_id
, device
, field
)
PARTITION BY date_trunc(“day”, ts)
DISTRIBUTED BY HASH(device
) BUCKETS 250
PROPERTIES (
“compression” = “LZ4”,
“replicated_storage” = “true”,
“replication_num” = “1”
);
【背景】
streamload的写入是直接写be的8040端口。
【业务影响】
【是否存算分离】:否,
【StarRocks版本】例如:3.3.2
【集群规模】单机allInOne的ubuntu版本,be,fe在同一个docker进程中.
【机器信息】CPU虚拟核/内存/网卡,例如:16C/64G/万兆 aliuyun ECS
【表模型】DuplicateKey模型
【导入或者导出方式】streamLoad http方式写入
【联系方式】微信:wuzhun1001, 邮箱: wuzhun1001@qq.com,。
【附件】
be-streamload-slow-0924.log (58.6 KB)
表数据量:
分区状态:
show-partitions (17.2 KB)
写入超时截图: