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类型查询进行优化,一起期待吧,

原文地址:https://www.cnblogs.com/1394htw/p/12917847.html