产品更新:参数化查询
作者:Charles Mahler / 产品
2024年7月15日
导航至
InfluxDB 3.0 不仅在时序数据方面表现出色;它还通过提供出色的开发者体验,使处理这些数据变得容易。作为此使命的一部分,InfluxDB 团队最近为 InfluxDB 3.0 添加了参数化查询支持。
什么是参数化查询?
参数化查询允许您使用占位符来代替用户输入编写查询,而不是在纯文本中硬编码这些参数。这为开发者带来了诸多好处
- SQL 注入防御:参数化查询允许将用户输入视为要验证的数据,而不是可执行代码。
- 访问控制:在应用层面,开发者可以使用参数化查询来定义数据操作和访问的权限,从而实现更精细的控制。
- 代码可维护性:将数据与 SQL 逻辑分离可以创建更易于阅读的代码。
InfluxDB 3.0 现在通过我们的客户端库,在您最熟悉的编程语言中支持 InfluxQL 和 SQL 的参数化查询。
InfluxDB V3 参数化查询入门
要开始使用参数化查询,您需要拥有一个正在运行的 InfluxDB 3.0 实例。然后,您可以为您偏好的语言安装最新版本的 V3 客户端库并创建参数化查询。以下客户端库支持参数化查询
- Influxdb3-csharp 客户端库(版本 >= 0.5.0)
- Influxdb3-go 客户端库(版本 >= 0.6.0)
- Influxdb3-java 客户端库(版本 >= 0.6.0)
- Influxdb3-js 客户端库(版本 >= 0.7.0)
- Influxdb3-python 客户端库(版本 >= 0.5.0)
此示例使用 Python 客户端库创建一个参数化 SQL 查询,用于查找特定服务器主机“server01”的 CPU 值,并将结果打印在 Pandas 数据框中
from influxdb_client_3 import InfluxDBClient3
with InfluxDBClient3(host="https://us-east-1-1.aws.cloud2.influxdata.com",
token="my-token",
database="my-database") as client:
table = client.query("select * from cpu where host=$host", query_parameters={"host": "server01"})
print(table.to_pandas())
有关 InfluxDB 3.0 参数化查询的更多详细信息,请参阅文档.
了解更多关于 InfluxDB 3.0 的信息