如何在Druid中启用Javascript

时间:2017-08-16 12:05:09

标签: druid

过去一周我一直在使用德鲁伊,并希望为某些postAggregations启用javascript。

我认为我按照概述的步骤更新了common.runtime.properties中的../con f/druid/_common/文件以包含druid.javascript.enabled=true。然后我停止了当前的流程并重新运行了Quickstart程序,但它仍然说JavaScript已被禁用:

{
  "error" : "Unknown exception",
  "errorMessage" : "Instantiation of [simple type, class io.druid.query.aggregation.post.JavaScriptPostAggregator] value failed: JavaScript is disabled. (through reference chain: java.util.ArrayList[0])",
  "errorClass" : "com.fasterxml.jackson.databind.JsonMappingException",
  "host" : null
}

我目前正在快速启动'配置 - 单个本地机器。有什么指针吗?谢谢!

2 个答案:

答案 0 :(得分:0)

JavaScript查询德鲁伊聚合。将文件另存为.body并点击curl请求。 这是平均值的示例查询。

  

curl -X POST" http://localhost:8082/druid/v2/?pretty" \ -H   ' content-type:application / json' -d @ query.body

{
   "queryType":"groupBy",
   "dataSource":"whirldata",
   "granularity":"all",
   "dimensions":[],
   "aggregations":[{"name":"rows","type":"count","fieldName":"rows"},
{"name":"TargetDOS","type":"doubleSum","fieldName":"Target DOS"}],"postAggregations":[
{
  "type": "javascript",
  "name": "Target DOS Average",
  "fieldNames": ["TargetDOS", "rows"],
  "function": "function(TargetDOS, rows) { return Math.abs(TargetDOS) / rows; }"
}],   "intervals":[ "2006-01-01T00:00:00.000Z/2020-01-01T00:00:00.000Z"  ]}

答案 1 :(得分:0)

您缺少的部分可能是快速入门从 function consultacnpj(){ var cnpj = $('#cnpj').val().toString(); if (cnpj.length==14){ google.script.run .withSuccessHandler(onSuccessCNPJ) .withFailureHandler(onFailureCNPJ) .receitaws(cnpj); function onFailureCNPJ(error) { Materialize.toast("ERROR: " + error.message, 3000) } function onSuccessCNPJ(obj) { $('#contratado_nome').val(obj.nome); $('#address').val(obj.logradouro); $('#number').val(obj.numero); $('#compl').val(obj.complemento); $('#bairro').val(obj.bairro); $('#cep').val(obj.cep); $('#city').val((obj.municipio + '/' + obj.uf)) var code = google.script.run .withSuccessHandler(onSuccessCNAEP) .withFailureHandler(onFailureCNAEP) .codeCNAE(obj.atividade_principal[0].code); function onFailureCNAEP(error) { Materialize.toast("ERROR: " + error.message, 3000) } function onSuccessCNAEP(code) { $('#cnaep').val(code + ' - ' + obj.atividade_principal[0].text); }; google.script.run .withSuccessHandler(onSuccessCNAES) .withFailureHandler(onFailureCNAES) .CNAESecundarios(obj.atividades_secundarias); function onFailureCNAES(error) { Materialize.toast("ERROR: " + error.message, 3000) } function onSuccessCNAES(codes) { $('#cnaes').val(codes); } Materialize.updateTextFields(); Materialize.updateTextFields(); } } else { Materialize.toast('Preencha um CNPJ valido.', 3000) } } 而不是conf-quickstart读取配置。因此,请尝试修改conf