我对Apache Druid孵化查询有疑问。
我有一个简单的分组依据,可以选择每个接线员的呼叫数量。在这里查看我的查询:
{
"queryType": "groupBy",
"dataSource": "ivr-calls",
"intervals": [
"2019-12-06T00:00:00.000Z/2019-12-07T00:00:00.000Z"
],
"dimensions": [
{
"type": "lookup",
"dimension": "operator_id",
"outputName": "value",
"name": "ivr_operator",
"replaceMissingValueWith": "Unknown"
},
{
"type": "default",
"dimension": "operator_id",
"outputType": "long",
"outputName": "id"
}
],
"granularity": "all",
"aggregations": [
{
"type": "longSum",
"name": "calls",
"fieldName": "calls"
}
],
"limitSpec": {
"type": "default",
"limit": 999999,
"columns": [
{
"dimension": "value",
"direction": "ascending",
"dimensionOrder": "numeric"
}
]
}
}
在此查询中,我按“值”维对结果进行排序,我收到218个结果。 我注意到有些记录是重复的。 (我在结果集中两次看到一些运算符)。这很奇怪,因为根据我的经验,您选择的所有维度也都用于分组。因此,它们应该是唯一的。
如果将订单项添加到“ id”维度,则会收到183个结果(这是预期的):
"columns": [
{
"dimension": "value",
"direction": "ascending",
"dimensionOrder": "numeric"
},
{
"dimension": "id",
"direction": "ascending",
"dimensionOrder": "numeric"
}
]
文档没有告诉我有关这种奇怪行为(https://druid.apache.org/docs/latest/querying/limitspec.html)的信息。
我以前使用德鲁伊的经验是,order by只是“排序”。
我正在运行Druid版本0.15.0-incubating-iap9。
有人可以告诉我为什么基于列排序的结果集有所不同吗?
答案 0 :(得分:0)
我现在通过指定订单中的所有列来解决此问题。
问题似乎与德鲁伊中的错误有关。参见:https://github.com/apache/incubator-druid/issues/9000