druid-docs-cn/Querying/virtual-columns.md

2.0 KiB
Raw Blame History

虚拟列(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