insert into 后,查询有时候查不到数据

Viewed 107

doris 2.1.7
执行 insert into A表select * from B 表,执行结束后。 立马执行 select 1 from A表。发现有几率查不到。这是为什么呢 。通过设置 sessionVariables=group_commit=sync_mode 可以解决这个问题吗

1 Answers

是立马查询查询不到,后续会查到吗?是数据延迟还是导入没数据呢?

可以加我主页微信查看下


遇到这个问题,可以查看下insert into select 任务返回的是什么状态,比如:

Query OK, 5 rows affected (0.308 sec)
{'label':'label_3e52da787aab4222_9126d2fce8f6d1e5', 'status':'VISIBLE', 'txnId':'9081'}

status = VISIBLE 的话是立即可见的,如果 是 committed的话,可能会有这个问题。
可以调整以下参数 insert_visible_timeout_ms,:
image.png

这个参数这样理解:insert 任务后超过默认超时时间后,后无论是否 visible 都会返回给客户端,这个参数调大后,等待 visible的时间也会变长,所以返回到客户端的就是 visible 的,也不会导致立马查询查不出数据。