Apache Druid GroupBy Virtual columns



我正试图在Druid本机查询中创建一个groupby虚拟列,如下所示。。。

{
"queryType": "groupBy",
"dataSource": "trace_info",
"granularity": "none",
"virtualColumns": [
{
"type": "expression",
"name": "tenant",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'tenant')), 'tenant:', '')"
},
{
"type": "expression",
"name": "rc",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'row_count')), 'row_count:', '')"
}
],
"dimensions": [
"tenant"
],
"aggregations": [
{
"type": "longSum",
"name": "trc",
"fieldName": "rc"
}
],
...
...
...
"intervals": [
"..."
]
}

这会给出一个包含所有row_counts的longsum的单行,就好像groupBy列为null一样。

我的用法正确吗?或者这是德鲁伊教中的一个已知问题。该文档表示,虚拟列可以像普通尺寸一样使用,但不太清楚如何使用,甚至不清楚缺少一个工作示例。

谢谢!Phani

最新编辑。。。

一些更多的挖掘发现问题是与失踪";outputType";虚拟列上的属性。奇怪的是,聚合器能够自动检测时间并正确计算长和,即使分组结果是错误的。

"virtualColumns": [
{
"type": "expression",
"name": "tenant",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'tenant')), 'tenant:', '')",
"outputType": "STRING"
},
{
"type": "expression",
"name": "rc",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'row_count')), 'row_count:', '')"
"outputType": "LONG"
}
],

请参阅上文(下面可能是解决该问题的非性能方法(。

经过一些尝试和错误,我有一个使用提取尺寸的解决方法。虽然不确定,但我怀疑这是德鲁伊0.18.1中的一个临时问题。希望在未来的构建中,对VC进行分组能够像广告中所说的那样工作。

{
"queryType": "groupBy",
"dataSource": "trace_info",
"granularity": "none",
"virtualColumns": [
{
"type": "expression",
"name": "tenant",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'tenant')), 'tenant:', '')"
},
{
"type": "expression",
"name": "rc",
"expression": "replace(array_offset(tags, array_offset_of(tagNames, 'row_count')), 'row_count:', '')"
}
],
"dimensions": [
{
"type": "extraction",
"dimension": "tenant",
"outputName": "t",
"extractionFn": {
"type" : "substring", "index" : 1
}
}
],
"aggregations": [
{
"type": "longSum",
"name": "trc",
"fieldName": "rc"
}
],
...
...
...
"intervals": [
"..."
]
}

最新更新