通过jdbc执行sql查询, 把结果insert到数据表时,结果数不确定

Viewed 55

重现步骤:
0, 原始表数据未发生变化

1, sql执行查询,结果数是确定的29614,前后多次执行结果不变

SELECT
	count(*),count(distinct base_id)
from
	cdp_tech_load_test.customer_profile_5e_zy_target p
where
	(p.attr_integer1 >0
		and p.attr_integer1 <46600)
	and EXISTS (
	select
		1
	from
		cdp_tech_load_test.customer_order_zy_target o
	where
		o.base_id = p.base_id
		and o.hash_partition_id = p.hash_partition_id)

image.png
2, sql执行查询插入,结果数是不确定的(数据量变少)
测过不同的sql写法,exists或join之后写入数据都有这个问题

create table customer_group_test0829012 as
SELECT
	base_id ,attr_integer1
from
	cdp_tech_load_test.customer_profile_5e_zy_target p
where
	(p.attr_integer1 >0
		and p.attr_integer1 <46600)
	and EXISTS (
	select
		1
	from
		cdp_tech_load_test.customer_order_zy_target o
	where
		o.base_id = p.base_id
		and o.hash_partition_id = p.hash_partition_id)

image.png

数据库版本:doris 2.1.5
jdbc版本:mysql-connector-j-8.2.0.jar和mysql-connector-java-5.1.49.jar

请问一下怎么处理或者如何进一步排查这个问题?

2 Answers

show variables like "%experimental_enable_nereids_dml_with_pipeline%";

看下这个参数打开了不

1、对应基础表的数据查询结果是否正常
2、将exists改为其它方式例如in 对比看看