产品更新:参数化查询
作者: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的信息