doris on es客户端查询报one instance report fail throw updateStatus()
报错信息如下:
[Coordinator.updateStatus():612] one instance report fail throw updateStatus(), need cancel. job id: -1, query id:
[Coordinator.getNext():630] get next fail, need cancel. query id:
[Coordinator.getNext():650] query failed: inner hits node is not an array
[StmtExecutor.execute():288] execute Exception. inner hits node is not an array
一、这个在我的情景下是在ES上没找到相应的type,
CREATE EXTERNAL TABLE `es_table` ( `id` bigint(20) COMMENT "", `k1` bigint(20) COMMENT "", `k2` datetime COMMENT "", `k3` varchar(20) COMMENT "", `k4` varchar(100) COMMENT "", `k5` float COMMENT "" ) ENGINE=ELASTICSEARCH PARTITION BY RANGE(`id`) () PROPERTIES ( "hosts" = "http://192.168.0.1:8200,http://192.168.0.2:8200", "user" = "root", "password" = "root", "index" = "tindex”, "type" = "doc" );
上面这个建表语句中,在doris中建的表是:es_table
映射的ES上的索引是tindex
映射的ES上的type是doc
确认下你是不是映射错type了,
二、遇到新的情况
同样会报这样的错误,
具体情况是:
1、Doris建表时A字段设置为varchar类型,
2、ES索引中A字段的类型是个数组,
此时会导致doris上下推到ES查询拿到结果后无法映射到doris上的表上,
最新版本已经屏蔽了ES上设置docvalue属性的影响了,可以更新master版本,
官方说会在2020年真的nested类型查询进行优化,一起期待吧,
诸业皆是自作自受,休咎祸福,尽从心生。