2.0 KiB
2.0 KiB
虚拟列(Virtual Columns)
[!WARNING] Apache Druid支持两种查询语言: Druid SQL 和 原生查询。该文档描述了原生查询中的一种查询方式。 对于Druid SQL中使用的该种类型的信息,可以参考 SQL文档。
虚拟列是在查询期间从一组列创建的可查询列“视图”。
一个虚拟列可能会从多个底层列中提取数据,尽管虚拟列总是以单个列的形式出现。
虚拟列可以用作维度,也可以用作聚合器的输入。
每个Apache Druid查询都可以接受一个虚拟列列表作为参数。提供以下扫描查询作为示例:
{
"queryType": "scan",
"dataSource": "page_data",
"columns":[],
"virtualColumns": [
{
"type": "expression",
"name": "fooPage",
"expression": "concat('foo' + page)",
"outputType": "STRING"
},
{
"type": "expression",
"name": "tripleWordCount",
"expression": "wordCount * 3",
"outputType": "LONG"
}
],
"intervals": [
"2013-01-01/2019-01-02"
]
}
虚拟列类型
表达式虚拟列
表达式虚拟列语法如下:
{
"type": "expression",
"name": <name of the virtual column>,
"expression": <row expression>,
"outputType": <output value type of expression>
}
属性 | 描述 | 是否必须 |
---|---|---|
name |
虚拟列的名称 | 是 |
expression |
通过表达式输入一些行,输出一个虚拟列的值 | 是 |
outputType |
表达式输出的类型,可能是 LONG、FLOAT、DOUBLE、STRING | 否(默认是FLOAT) |