【详述】一个sql,bitmap数量为580w左右,对这个bitmap先bitmap_andnot了一个空bitmap,然后进行bitmap_to_string,然后将其unnest,最终对数据进行count。发现每次的结果竟然不一致。
【背景】做过哪些操作?
【业务影响】
【StarRocks版本】例如:2.3.3
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be分部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【附件】
sql
WITH pack_filter_result AS (
SELECT
split(bitmap_to_string(_t.seq_id_bitmap),
',') AS `values`
FROM
(SELECT bitmap_andnot(s1.seq_id_bitmap,s2.seq_id_bitmap) AS seq_id_bitmap
FROM
(
SELECT
seq_id_bitmap
FROM
entity_80_pack_summary
WHERE
pack_id =793
AND update_time = '2022-12-20 19:23:37') s1,
(
SELECT
bitmap_empty() AS seq_id_bitmap) s2) _t),
pack_filter_result_split AS (
SELECT
unnest element
FROM
pack_filter_result
CROSS JOIN unnest(pack_filter_result.`values`))
SELECT
COUNT(*) AS total
FROM
pack_filter_result_split
WHERE
element != '';
结果: