简体   繁体   English

首次在协调器上初始化查找时出现Druid Postgresql语法错误

[英]Druid Postgresql syntax error while Initializing lookups on coordinator for first time

I am trying to setup lookups on a cluster-wide druid. 我正在尝试在群集范围的德鲁伊上设置查找。

As mentioned in the doc- http://druid.io/docs/latest/querying/lookups.html , 1. Have included "druid-lookups-cached-global" in my load list. 如doc- http://druid.io/docs/latest/querying/lookups.html中所述,1.我的加载列表中已包含“ druid-lookups-cached-global”。 2. I tried to post an empty json object to initialize the configuration. 2.我试图发布一个空的json对象来初始化配置。

Command I ran: 我执行的命令:

curl -X 'POST' -d @blank.json http://localhost:8081/druid/coordinator/v1/lookups/config/

{localhost is my coordinator node in a distributed environment.My blank.json contains : {}} {localhost是我在分布式环境中的协调器节点。我的blank.json包含:{}}

This is the error I am getting while posting the blank json: 这是发布空白json时遇到的错误:

org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: org.postgresql.util.PSQLException: ERROR: syntax error at or near "UPDATE" Position: 18 [statement:"BEGIN; LOCK TABLE druid_config IN SHARE ROW EXCLUSIVE MODE; WITH upsert AS (UPDATE druid_config SET payload=:value WHERE name=:key RETURNING *) INSERT INTO druid_config (name, payload) SELECT :key, :value WHERE NOT EXISTS (SELECT * FROM upsert) ;COMMIT;", located:"BEGIN; LOCK TABLE druid_config IN SHARE ROW EXCLUSIVE MODE; WITH upsert AS (UPDATE druid_config SET payload=:value WHERE name=:key RETURNING *) INSERT INTO druid_config (name, payload) SELECT :key, :value WHERE NOT EXISTS (SELECT * FROM upsert) ;COMMIT;", rewritten:"BEGIN; LOCK TABLE druid_config IN SHARE ROW EXCLUSIVE MODE; WITH upsert AS (UPDATE druid_config SET payload=? WHERE name=? RETURNING *) INSERT INTO druid_config (name, payload) SELECT ?, ? WHERE NOT EXISTS (SELECT * FROM upsert) ;COMMIT;", arguments:{ positional:{}, named:{value:[123, 125],key:'lookupsC org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException:org.postgresql.util.PSQLException:错误:“ UPDATE”处或附近的语法错误位置:18 [语句:“ BEGIN;锁定表druid_config在共享行独占模式下;带有upsert AS(更新druid_config设置有效负载=:值WHERE名称=:键返回*)插入到druid_config(名称,有效负载)SELECT:key,:value不存在(SELECT * FROM upsert); COMMIT;“,位于:” BEGIN;在共享行独占模式下锁定表druid_config;使用upsert AS(UPDATE druid_config SET有效负载=:值WHERE名称=:key返回*)将插入到druid_config中(名称,有效负载)SELECT:key,:value不存在(选择*从upsert中选择) ); COMMIT;“,改写为:” BEGIN;在共享行独占模式下锁定表druid_config;使用upsert AS(UPDATE druid_config SET有效负载=?WHERE名称=?返回*)在druid_config(名称,有效负载)中插入SELECT?,?WHERE NOT EXISTS(SELECT * FROM upsert); COMMIT;“,参数:{position:{},命名:{value:[123,125],键:'lookupsC onfig'}, finder:[]}] onfig'},查找程序:[]}]

Can someone help? 有人可以帮忙吗?

The failure was due to postgresql version I was using. 失败是由于我正在使用的postgresql版本。 Upsert statements, which were getting fired from druid, are not supported in postgresql version lower than 9.1. 低于9.1的postgresql版本不支持从druid触发的upsert语句。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM