错过了吗——InfluxDB中的脚本和查询语言

导航至

在最近的InfluxDays活动中,Gary Fowler讨论了InfluxDB中脚本和查询语言支持的现状。这是平台持续发展的一个方面,所以这里快速回顾一下Gary所讨论的内容。

与您的数据一起工作

目前,InfluxDB支持三种不同的查询语言。每种语言在功能和易用性方面都有所不同。正如您所期望的,更复杂的语言允许您对数据进行更多操作。但是,确定哪种语言适合您取决于您最终想要达成的目标。

您可以选择

Flux

Flux 是 InfluxDB 的原生脚本语言。与其他语言相比,它的学习曲线更陡峭,但同时也是最强大的。您可以使用 Flux 执行查询,还可以执行高级数据转换、创建任务和触发操作。Flux 可在整个 InfluxDB 平台上使用 – 云、企业级和开源。

InfluxQL

Flux 语言的祖先是 InfluxQL。这实际上是 SQL,但针对时序数据做了扩展,使其能够与 InfluxDB 一起工作。您可以使用它执行一些基本转换,但它不如 Flux 强大或稳健。这是 InfluxQL 的一个权衡。尽管如此,它仍然是我们的用户中非常受欢迎的选择,并且在云、企业级和开源版本中都可以使用。我们还在寻找添加 InfluxQL 的 Cloud UI 支持,这已经出现在很多愿望清单上好一段时间了。

SQL

最新提供的语言是 SQL。目前,SQL 支持仅在云中提供,作为我们新的 IOx 数据引擎的一部分。如果您只需要进行简单、快速的查询,那么 SQL 将满足您的需求。我们正在努力在云 UI 中提供 SQL 支持,IOx 也支持 PostgreSQL 线协议,这样您就可以将 InfluxDB 连接到兼容的第三方工具。

下面的图形很好地总结了您可以从不同支持的语言中期待的内容。

Scripting and Query Languages

任务

任务是按照计划运行的脚本,允许您对数据进行降采样、执行转换或触发警报。您可以使用 Flux 编写任务,但为了满足开发者当前的需求,我们计划添加对 Python 和 JavaScript 编写任务的支持。这意味着您将在 InfluxDB 云中能够编写和运行这些语言的任务,从而无需先提取数据。

以下是一个快速比较表,以帮助您

Flux SQL InfluxQL Python/JavaScript
需要最大的功能和灵活性 从关系型数据库过渡 已在开源和商业版本中使用 Python 或 JavaScript 专业技能
需要转换或以其他方式操纵日期,而不仅仅是查询它 以前的 SQL 技能 以前的 InfluxQL 或 SQL 技能 希望将现有的 Python 代码迁移到云中
需要合并数据源 只需要进行快速、简单的查询
需要执行 REST 或其他 API 调用 从其他 SQL 数据库更容易过渡到 API

脚本编辑

在 InfluxDB 中有这么多编写脚本和查询的选项,用户还需要一种方法来编辑这些脚本。Gary 还介绍了新的 InfluxDB 云脚本编辑器。

新脚本编辑器的一个关键特性是,它将可视构建器和脚本编辑器放在同一个窗口中。您不再需要在它们之间切换。

另一个主要新增功能是能够保存和加载脚本。目前,我们支持基本的脚本保存和加载,但我们正在开发更高级的功能,这将使在不同和/或多个仪表板中重用脚本变得容易。我们计划添加版本控制、标签和文件夹组织以及权限。

综合来看,InfluxDB提供的脚本和查询语言为用户提供了多种选项,以便以最舒适的方式处理他们的时间序列数据。我们喜欢听到您的反馈,请告诉我们哪些功能对您有帮助。

您可以在此处观看Gary的整个演示: https://www.youtube.com/watch?v=BRY6VDzrCdY