时序型数据库InfluxDB新版发布,全新查询语言,可跨平台操作
InfluxData发布其开源时序数据库InfluxDB 2.0 Alpha测试版,这个版本最大的更新,便是增加了新的数据脚本和查询语言Flux,不只能提供跨平台时序数据操作,还能将TICK组件堆栈整合成一个更加一致的平台。
InfluxDB是一个以Go语言开发的开源时序型数据库,专门用来处理高写入和查询负载,InfluxDB专为时间戳数据设计,可应用于DevOps监控、应用程序指针、物联网传感器数据和实时分析等使用场景。InfluxDB提供类似SQL的查询语言,供用户操作数据。
InfluxDB 2.0最大更新的部分,是新增了数据脚本和查询语言Flux。InfluxData在收集了社区的意见,以及盘点了当前查询语言InfluxQL,和Kapacitor合作的语言TICKscript之后,他们决定建构一个全新的查询语言。
Flux支持驱动图形用户接口,让用户不需要实际学习语言,就可完成工作。Flux还能跨不同数据源,包括数据库、第三方API、文件系统或其他数据源,进行时间序数据操作。Flux能与其他分析工具和环境无缝整合,支持多种查询语法,包括Jupyter以及使用Apache Arrow作为底层数据交换的格式,以便和其他大数据分析系统整合。
InfluxData提到,Flux是第四代程序开发语言,是专为数据脚本、ETL、监控和通知而设计。Flux不仅是一个查询语言和程序语言,其中还包含了Planner以及Optimizer,可以无缝的提供开发者查询以及程序开发能力。
而Flux最大的特点在于能够交叉编译,InfluxData希望使用者可以使用不同的语言,如InfluxQL、PromQL以及Flux等,操作时间序列的数据与相关查询工作,InfluxData表示,他们希望这项工作可以在单一Optimizer进行,并对许多不同的来源进行规划。由于开发者使用的语言很多种,因此支持更多的语言将有助于拥抱更广的生态。
Flux具图灵完整性(Turing Completeness),不仅可用于查询和处理时间序列数据,也可以用于操作一般数据。在这个版本中,官方专注于嵌入式InfluxDB 2.0数据存储的查询能力,包括跨量测的数学功能、Top N、时间偏移、字段聚合,以及排序。官方提到,要为语言增加新功能并不容易,在接下来的几个月会继续释出更多Flux的特殊功能。
InfluxData平台由4个组件组成,分别是数据收集器Telegraf、时间序列数据库InfluxDB、可视化接口Chronograf以及监控服务Kapacitor,简称TICK。由于这四个组件在功能划分以及对用户的友善程度,在社区中一直存在不同的看法,因此Flux的出现可以用来解决这些问题,也简化InfluxQL和TICKscript这两种查询语言的功能操作。
另外,在InfluxDB 2.0中,InfluxData创建了一个统一整个平台的API,其目的是要让InfluxDB成为一个多租户的时间序列服务,由于TICK这些组件,InfluxDB不只是一个数据库,同时还提供了监控、仪表板引擎、数据分析以及事件和指针处理器。随着Flux的功能扩展,InfluxDB的功能和范围,也将随之扩大。