You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Druid创建lookup表后查询报错Lookup [province] not found求助

问题根因
  • Lookup绑定的层级(tier)不匹配:你创建的lookup归属到hot_tier,而Druid的lookup配置是按tier分发的,只有配置了归属hot_tier的Broker、Historical节点才会加载该lookup。如果处理你的SQL查询的节点没有加入hot_tier,就无法识别到该lookup资源。
  • 配置未完成集群同步:Lookup Web UI能看到配置仅代表元数据已经存入Coordinator,配置同步到所有查询节点通常需要30~60秒,同步完成前执行查询会触发找不到的错误。
  • 缺少显式启用配置:你提交的lookup配置中没有声明enabled: true,部分Druid版本中未显式启用的lookup不会被节点主动加载。
  • 集群未开启Lookup SQL支持:部分自定义部署的Druid集群会默认关闭lookup的SQL调用能力,需要额外开启对应配置。
解决方案
  • 修正lookup创建配置,补充启用字段并升级版本号触发同步,修改后的请求payload如下:
curl --location --request POST 'http://localhost:8888/druid/coordinator/v1/lookups/config' \
--header 'Content-Type: application/json' \
--data-raw '{
    "hot_tier": {
        "province": {
          "version": "1.2",
          "enabled": true,
          "lookupExtractorFactory": {
            "type": "map",
            "map": {
              "10": "province1",
              "61": "province2"
            }
          }
        }
    }
}'
  • 确认查询节点的tier配置:检查Broker、Historical节点的runtime.properties文件,确保配置项druid.server.tier=hot_tier。如果你的节点默认归属_default_tier,也可以直接把lookup创建到_default_tier下,避免tier不匹配问题。
  • 等待配置同步完成后再执行查询,正确的SQL写法如下:
SELECT cityCode,cityName, LOOKUP(CAST(provinceCode AS VARCHAR), 'province') as province
from cities
  • 确认Broker配置中druid.sql.planner.lookupFunctionEnabled设置为true,如果为false需要修改配置后重启Broker生效。
  • 可通过Broker接口直接验证lookup是否加载完成:执行curl http://localhost:8082/druid/broker/v1/lookups/status,返回结果中包含province则代表加载完成。

内容的提问来源于stack exchange,提问作者smbanaei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:42:03