SELECT
t.*,
c.CODENAME
FROM
SMS_SEND_REPORT t
LEFT JOIN SMS_CODE c ON c.CODE = t.MCODE
WHERE
SENDTIME >= STR_TO_DATE(‘2018-03-01’, ‘%Y-%m-%d’ )
AND SENDTIME <= STR_TO_DATE(‘2022-03-30’, ‘%Y-%m-%d’)
ORDER BY
SENDTIME DESC,
t.PKNUMBER,
t.ID
LIMIT 1,10
已上sql查询的时候,报了这个错:Not Found string in global dict: 2:1,目前不知道啥原因,求助。
之前sql都是好的,没问题,但是清空表之后,重新导入数据之后,就出问题了。
相关的报错信息
2022-06-23 14:39:09,189 WARN (thrift-server-pool-854|25497) [Coordinator.updateFragmentExecStatus():1606] one instance report fail errorCode INTERNAL_ERROR Not Found string in global dict: 2:1 , query_id=2f808631-f2bf-11ec-9d68-fa163e6c0a0e instance_id=2f808631-f2bf-11ec-9d68-fa163e6c0a10
2022-06-23 14:39:09,189 WARN (thrift-server-pool-854|25497) [Coordinator.updateStatus():712] one instance report fail throw updateStatus(), need cancel. job id: -1, query id: 2f808631-f2bf-11ec-9d68-fa163e6c0a0e, instance id: 2f808631-f2bf-11ec-9d68-fa163e6c0a10
2022-06-23 14:39:09,192 WARN (thrift-server-pool-751|21145) [Coordinator.updateFragmentExecStatus():1606] one instance report fail errorCode CANCELLED Cancelled because of runtime state is cancelled, query_id=2f808631-f2bf-11ec-9d68-fa163e6c0a0e instance_id=2f808631-f2bf-11ec-9d68-fa163e6c0a13
2022-06-23 14:39:09,193 WARN (starrocks-mysql-nio-pool-9555|27775) [Coordinator.getNext():731] get next fail, need cancel. status errorCode CANCELLED Cancelled BufferControlBlock::cancel, query id: 2f808631-f2bf-11ec-9d68-fa163e6c0a0e
2022-06-23 14:39:09,194 WARN (starrocks-mysql-nio-pool-9555|27775) [Coordinator.getNext():752] query failed: Not Found string in global dict: 2:1
2022-06-23 14:39:09,232 WARN (ForkJoinPool.commonPool-worker-6|27777) [StatisticExecutor.queryDictSync():184] Parse success select cast(101 as Int), cast(1655951484777 as bigint), dict_merge(REPLYMOBILE
) as _dict_merge_REPLYMOBILE from dzwsms.SMS_SEND_REPORT [META]
清空之前的表有没有给列加索引之类的东西?
表是用的明细模型建的,建的时候有
DUPLICATE KEY(sendtime, id),对时间和id列指定了排序键,删除表的时候用的是truncate table语句
请问您是什么版本呢?
用的是2.1.1
现在没问题了,我把版本升到2.1.6,正常了
有几个问题需要了解一下
- 几个FE
- truncate 之后是直接stream load?
一个FE,truncate 之后就直接stream load了。
直接 stream load 有并行吗,还是说只是单独的stream load?
还有几个问题需要确认一下
- 这个表历史上做过schema change 操作吗,例如 加列减列操作
- 出现了这个错误之后,重新truncate 再stream load能恢复吗
- 升级之后直接就恢复了,还是说重新truncate 再导入数据就恢复了呢
truncate 是哪个表
还是有问题,不是升级回复的,是重启fe之后才正常,但是涉及到分页就不正常了
- 这个表历史上做过schema change 操作吗,例如 加列减列操作 (没有做过,建表之后列没动过,之前有删除表之后,重新建表)
- 出现了这个错误之后,重新truncate 再stream load能恢复吗(重启fe之后正常,但是切换分页下标又接着报错)
- 升级之后直接就恢复了,还是说重新truncate 再导入数据就恢复了呢(不是升级的问题,升级之后,还是一样有问题)
不知道是不是有太多空闲的分区引起的。我之前建的表从2021-07-06 到2022-06-23的分区。后面清了表之后,重新同步数据,只有2022-03-27到2022-06-23数据,之前的分区都是空的了。
然后把表删除掉,重新建表,重新导入数据,目前查询正常。表里面目前几千万 的数据
另外这个表有实时导入吗?
我大概知道问题了,你先set global cbo_enable_low_cardinality_optimize=false;规避一下
2.1.10+ 修复了这个问题