如何在德鲁伊中编写嵌套查询?

时间:2019-02-11 12:14:25

标签: druid

我是德鲁伊的新手。到目前为止,我已经使用mysql数据库。我想知道,如何将下面的嵌套mysql查询写为druid查询?

Select distinct(a.userId) as userIds
from transaction as a 
where 
 a.transaction_type = 1 
 and a.userId IN (
   select distinct(b.userId) where transaction as b where a.transaction_type = 2
 )

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当您刚接触德鲁伊时,可能需要了解几件事。

Druid现在支持SQL,它不像SQL那样支持所有花哨和复杂的功能,但它确实支持许多标准SQL。它还提供了在druid JSON中编写SQL查询的方法。

以下是有关示例的更多详细信息: http://druid.io/docs/latest/querying/sql

您的查询非常简单,因此您可以使用如下的druid sql功能:

{
  "query" : "<your_sql_query>",
  "resultFormat" : "object"
}

如果您想为上述查询构建JSON查询,并且不想编写整个大型JSON,请尝试以下有趣的技巧:

使用-q对代理节点运行sql查询,它将为您打印JSON查询供您使用,然后根据需要对其进行修改,这是该语法:

 curl -X POST '<queryable_host>:<port>/druid/v2/?pretty' -H 'Content-Type:application/json' -H 'Accept:application/json' -q <druid_sql_query>

除此之外,您还可以使用DruidDry库,该库提供支持以Java编写奇特的德鲁伊查询。