将 SQL 与 InfluxDB 结合使用
作者:Jason Myers / 产品, 用例, 入门
2022 年 10 月 27 日
导航至
在 InfluxDB IOx 中宣布的重大功能之一是原生 SQL 支持。即使 SQL 不是计算机世界的通用语言,毫无疑问,有些人可以为此辩护。互联网的几乎每个角落似乎都存在某种 SQL 方言。
InfluxDB 中的查询语言
SQL 最初旨在与关系数据库配合使用,但对于 InfluxDB 处理的时间序列工作负载来说并不理想。这就是我们创建 InfluxQL(我们的第一个查询语言)的原因之一。InfluxQL 是一种类似 SQL 的查询语言,用于与 InfluxDB 交互并提供特定于存储和分析时间序列数据的功能。虽然 InfluxQL 类似于 SQL,但它不是 SQL。它共享 SQL 的一些语法,但归根结底,它不是 SQL。
InfluxDB 查询语言的下一个演变是以 Flux 的形式出现的。Flux 不仅仅是一种查询语言;它是一种成熟的脚本语言,可以对您的时间序列数据进行各种复杂的转换和分析。Flux 非常强大,但强大的功能也带来了一定的学习曲线。(幸运的是,有很多 资源 可以帮助加速 Flux 的学习,包括 InfluxDB 大学提供的课程。查看 初学者 Flux 和 中级 Flux。)
尽管 Flux 功能强大,但 SQL 仍然是房间里的大象。直到现在。
InfluxDB 中的 SQL 功能
从 InfluxDB 的 IOx 驱动版本开始,该平台支持原生 SQL 查询。具体来说,InfluxDB 支持 PostgresQL wire protocol SQL 方言。目前,您可以通过将 SQL 查询包装在 Flux 中,直接在 Cloud UI 上对启用 IOx 的存储桶运行 SQL 查询。但是,Cloud UI 的原生 SQL 脚本编辑器即将推出,因此您可以在 InfluxDB 中编写和运行 SQL 查询。
此更新有几个显着的好处。其中之一是 InfluxDB 应用开发的民主化。现在,并非每个人都需要成为 Flux 专家才能在 InfluxDB 中查询数据。SQL 支持显着扩展了可以积极利用时间序列数据的人数。例如,一个团队可能有一两个 Flux 专家,而团队的其余成员可以使用这些脚本或使用 SQL 创建自己的查询。简而言之,SQL 支持使更多人可以更轻松有效地使用 InfluxDB。
与此类似,PostgresQL wire protocol 还意味着用户可以将他们的 InfluxDB 实例与各种第三方工具和解决方案集成,例如 psql、Grafana 等。这扩展了 InfluxDB 对 SQL 用户的能力,并进一步促进了创新、互操作性和效率。
InfluxDB 中 SQL 的局限性
InfluxDB 中 SQL 最显着的局限性是 SQL 支持仅用于查询。您不能使用 SQL 将数据写入 InfluxDB。如果您想对时间序列数据执行任何类型的转换,或根据数据流分析结果对数据执行操作,您仍然需要使用 Flux。
最终想法
SQL 支持只是 InfluxData 致力于满足开发者需求的另一个例证。通过提供多种查询语言,InfluxDB 平台允许您以自己想要的方式构建应用程序。SQL 的添加为可能不熟悉时间序列工作负载的全新人群打开了 InfluxDB 和时间序列数据的大门。这是一个令人兴奋的演变,因为我们看到了将 InfluxDB 的强大功能与 SQL 的规模和范围相结合所产生的可能性。