druid - 如何在德鲁伊查询中同时添加“和”和“或”过滤器?
问题描述
我正在尝试编写一个德鲁伊查询(json文件),它同时是“和”和“或”过滤器。我试过这个:
{
"queryType": "select",
"dataSource": "timeseries_db",
"intervals": ["2020-09-08T17:00:00\/2020-09-08T17:30:00"],
"pagingSpec":{ "threshold":100},
"filter": {
"type": "and",
"fields": [
{
"type": "selector",
"dimension": "orgid",
"value": "864e1875-ea80-455b-a835-f75bed0df2a7"
},
"filter": {
"type": "or",
"fields": [
{
"type": "selector",
"dimension": "host_name",
"value": "testname.82fae43ca"
},
{
"type": "selector",
"dimension": "host_name",
"value": "testname.09db12d4a"
}
]
}
]
},
"granularity": "all"
}
我想获取 org id 为 864e1875-ea80-455b-a835-f75bed0df2a7 且主机名为 testname.82fae43ca 或 testname.09db12d4a 的记录
当我运行此查询时,它会抛出错误,提示缺少“类型”。但我已经包括了“类型”。任何帮助表示赞赏。
解决方案
您不需要过滤器"filter"
内的额外内容。and
试试这个:
{
"queryType": "select",
"dataSource": "timeseries_db",
"intervals": ["2020-09-08T17:00:00\/2020-09-08T17:30:00"],
"pagingSpec":{ "threshold":100},
"filter": {
"type": "and",
"fields": [
{
"type": "selector",
"dimension": "orgid",
"value": "864e1875-ea80-455b-a835-f75bed0df2a7"
},
{
"type": "or",
"fields": [
{
"type": "selector",
"dimension": "host_name",
"value": "testname.82fae43ca"
},
{
"type": "selector",
"dimension": "host_name",
"value": "testname.09db12d4a"
}
]
}
]
},
"granularity": "all"
}
另一种方法是在 : 中使用一个in
过滤器而不是两个selector
过滤器or
:
{
"queryType": "select",
"dataSource": "timeseries_db",
"intervals": ["2020-09-08T17:00:00\/2020-09-08T17:30:00"],
"pagingSpec":{ "threshold":100},
"filter": {
"type": "and",
"fields": [
{
"type": "selector",
"dimension": "orgid",
"value": "864e1875-ea80-455b-a835-f75bed0df2a7"
},
{
"type": "in",
"dimension": "host_name",
"values": ["testname.82fae43ca", "testname.09db12d4a"]
}
]
},
"granularity": "all"
}
推荐阅读
- visual-studio-code - 文件被 VS Code (Visual Studio Code) 锁定
- c# - 使用 JQuery/Ajax 的级联下拉菜单返回重复第一个表行的数据
- git - 如何在 graphql 查询中按文件扩展名过滤
- javascript - 表单验证后如何重定向页面
- google-sheets - Google Sheets 在查询功能中的动态数据范围
- thread-safety - 在 Huey 中使用线程管理共享资源
- mysql - 需要加入3张桌子。需要按 DateTime 字段排序并限制为 1
- python - 用于导航栏通知的 Django 模板语言语法
- python - 命令“python manage.py startapp (nameofapp)”不起作用
- java - 无法解决heroku中项目的依赖关系