influxdb 查询_如何查询InfluxDB

InfluxDB是一个时间序列数据库,其查询语言InfluxQL类似SQL但不完全兼容。IFQL是一种新推出的开源查询语言,旨在解决InfluxQL的局限性,提供更强大的功能和可扩展性。IFQL具有解析器和计划器,允许在AST之上实现InfluxQL和PromQL等功能,并支持TICK脚本。目前,IFQL尚处于beta阶段,未来计划锁定API并根据用户反馈进行改进。
摘要由CSDN通过智能技术生成

influxdb 查询

InfluxDB是一个流行的时间序列数据库,我在这里向您展示如何查询它。 它使用类似SQL的语言(或者说老实说,是“几乎是SQL”)。

SELECT * FROM "foodships" WHERE time > now() - 1h

从第一天开始,这种语言就已经在InfluxDB中工作并得到了支持,它既有优点也有缺点:

  1. 新用户可以轻松地以他们已经知道的语言与数据库进行交互。 SQL很流行,许多开发人员已经知道它。 该查询语法帮助InfluxDB在早期发展起来。
  2. 如前所述,InfluxQL是一种“ amost-SQL”语言。 编写SQL查询语言并非易事。 一个问题是DBA对SQL有一些期望,但是我们的语言与SQL不完全兼容。 这造成了许多不匹配和怀疑
  3. 时间序列数据库的特征之一是写操作不能阻止读取,而读操作不能阻止写入。 这是必须的。 您的IOT设备或服务器将始终写入指标,同时,您的仪表板,分析工具和警报管理器将从数据库中读取数据。 InfluxDB需要更具可扩展性的东西。
  4. 目前,存储引擎和查询语言在同一个项目中,这阻止了我们想要的代码的快速迭代。 与存储引擎相比,查询语言的发展要快得多。 引擎需要稳定性,但是查询语言需要更多的功能和功能。
  5. InfluxQL需要重新架构,因为该团队无法实施社区所需的所有出色创意。
  6. 当前,SQL非常简单易学,但是我们的堆栈中还有另一种DSL:Kapacitor使用的TICK脚本发送警报并减少系列采样。
  7. InfluxQL没有数学功能,因为该语言不允许我们以简单的方式添加它们。 使用IFQL,它们将非常易于实现。

在旧金山的InfluxDays期间, InfluxData的首席技术官兼创始人Paul Dix在舞台上发布了一种新的开源查询语言,以使数据分析更接近InfluxDB。 它称为IFQL

建筑

var cpu = select(db: "telegraf")
  .filter(exp:{"_measurement" == "cpu" and "_field" == "usage_user"})
  .range(start: -30m)
  
select(db: "telegraf")
  .filter(exp:{"_measurement" == "mem" and "_field" == "used_percent"})
  .range(start: -30m)
  .join(on:["host"], eval:{$ + cpu})

IFQL不仅是一种查询语言。 它具有一个解析器,该解析器读取上述查询,并生成可以可视化为JSON并直接通过IFQL运行的计划。 这意味着您所看到的语法只是可能的实现之一。 真正的合同在计划和处理者之间。

该项目的架构和想法将使我们能够在IFQL AST之上重新实现InfluxQL和PromQL,TICK脚本。 除此之外,如果您有查询生成器,或者需要创建自定义实现与In

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值