02-TICKscript语言-E-变量标签和字段

TICKscript变量标签和字段

TICKscript不仅可以使用自定义的变量,还可以使用来自数据库中的Tag和Field。

访问变量

要访问TICKscript变量,只需使用其标识符(变量名)即可。

var db = 'telegraf'
...
var data = stream
|from()
.database(db)

db变量的值是一个字符串’telegraf’,然后在.database()链接方法中访问该变量.

访问标签和字段

对象 声明 访问
字符串类型的变量 声明时使用单引号或三引号 访问时使用变量名即可
Tag和Field 访问Lambda表达式中的tag或field,必须使用双引号
Tag和Field 访问方法调用中的tag或field,必须使用单引号

为什么调用Tag和Field的符号不同呢?

在方法调用中,这些实质上是字符串文字,供节点用于匹配数据库中的标记Tag或字段值Field。

 // Data frame
var data = stream
|from()
.database('telegraf')
.retentionPolicy('autogen')
.measurement('cpu')
.groupBy('host')
.where(lambda: "cpu" == 'cpu-total')
|eval(lambda: 100.0 - "usage_idle")
.as('used')
...

在示例中,访问来自数据帧的两个值

  • where()方法调用中,lambda表达式使用Tag标签cpu进行数据过滤,仅匹配cpu = 'cpu-total'的值。
  • 链接方法eval()还采用lambda表达式访问Field字段usage-idle以计算100.0 - "usage_idle"来获取CPU当前的使用率used
  • groupBy()方法使用字符串host与数据系列中的标记名称Tag匹配。然后,它将按此标记对数据进行分组。

命名的lambda表达式结果:

  • Lambda表达式结果被命名并使用as()方法作为字段添加到数据集中。
  • as()方法的功能就像InfluxQL中的AS关键字一样。

其他访问

后续补充