我是德鲁伊的新手。到目前为止,我已经使用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
)
非常感谢您的帮助。
答案 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编写奇特的德鲁伊查询。