ICYMI – InfluxDB 中的脚本和查询语言
作者:Jason Myers / 产品, 公司
2022 年 12 月 13 日
导航至
在我们最近的 InfluxDays 活动中,Gary Fowler 讨论了 InfluxDB 中脚本和查询语言支持的现状。 这是平台不断发展的一个方面,因此这里快速回顾一下 Gary 所讲的内容。
处理您的数据
目前,InfluxDB 支持三种不同的查询语言。 这些语言在功能和易用性方面各不相同。 正如您可能期望的那样,更复杂的语言允许您对数据执行更多操作。 但是,确定哪种语言适合您取决于您最终想要完成什么。
您的选项包括
Flux
Flux 是 InfluxDB 的原生脚本语言。 与其他语言相比,它的学习曲线更陡峭,但它也是最强大的。 您可以使用 Flux 执行查询,还可以执行高级数据转换、创建任务和触发操作。 Flux 在整个 InfluxDB 平台(云、企业版和 OSS)中均可用。
InfluxQL
Flux 语言的前身是 InfluxQL。 这本质上是 SQL,带有一些时间序列扩展,使其能够与 InfluxDB 一起使用。 您可以使用它进行一些基本转换,但它不如 Flux 强大或健壮。 这是 InfluxQL 的权衡之一。 然而,它仍然是我们用户非常受欢迎的选择,并且在云、企业版和 OSS 中均可用。 我们也正在考虑为 InfluxQL 添加云 UI 支持,这已经出现在许多愿望清单上很长时间了。
SQL
最新的语言产品是 SQL。 截至目前,SQL 支持仅在云中作为我们新的 IOx 数据引擎的一部分提供。 如果您只需要执行简单、快速的查询,那么 SQL 将满足您的需求。 我们正在云 UI 和 IOx 中开发 SQL 支持,IOx 还支持 PostgreSQL wire 协议,因此您可以将 InfluxDB 连接到兼容的第三方工具。
下图很好地总结了您可以从不同的受支持语言中获得什么。
任务
任务是在计划程序上运行的脚本,允许您对数据进行下采样、执行转换或触发警报。 您可以使用 Flux 编写任务,但为了履行我们满足开发者需求的承诺,我们计划添加对使用 Python 和 JavaScript 编写任务的支持。 这意味着您将能够在 InfluxDB Cloud 中使用这些语言编写和运行任务,从而无需首先提取数据。
这是一个快速比较表,可帮助您
Flux | SQL | InfluxQL | Python/JavaScript |
---|---|---|---|
需要最强大的功能和灵活性 | 从关系数据库过渡 | 已与 OSS 和企业版一起使用 | Python 或 JavaScript 专业知识 |
需要转换或以其他方式操作日期,而不仅仅是查询日期 | 之前的 SQL 专业知识 | 之前的 InfluxQL 或 SQL 专业知识 | 想要将现有的 Python 代码迁移到云端 |
需要组合数据源 | 只需要执行快速、简单的查询 | ||
需要进行 REST 或其他 API 调用 | 从其他 SQL 数据库更轻松地进行 API 转换 |
脚本编辑
由于 InfluxDB 中有如此多的脚本和查询编写选项,用户还需要一种编辑这些脚本的方法。 Gary 还介绍了 InfluxDB Cloud 的新脚本编辑器。
新脚本编辑器的主要功能之一是它在同一窗口中向用户呈现可视化构建器和脚本编辑器。 不再需要在它们之间切换。
另一个主要新增功能是能够保存和加载脚本。 目前,我们支持脚本的基本保存和加载,但我们正在开发更高级的功能,这些功能将使在不同和/或多个仪表板中重用脚本变得容易。 我们还计划添加版本控制、标签和文件夹组织以及权限。
总而言之,InfluxDB 中可用的脚本和查询语言为用户提供了广泛的选择,以便以他们最舒适的方式处理时间序列数据。 我们喜欢反馈,因此请告诉我们哪些对您有用。
您可以在此处观看 Gary 的完整演示文稿: https://www.youtube.com/watch?v=BRY6VDzrCdY