6 个版本 (3 个重大更新)
0.4.1 | 2023年1月24日 |
---|---|
0.4.0 | 2021年8月8日 |
0.3.1 | 2021年2月28日 |
0.2.0 | 2021年2月22日 |
0.1.0 | 2021年2月21日 |
#1892 在 数据库接口
20KB
454 行
influx_client
这是一个用于与 InfluxDB 数据库交互的 Rust 库。它还处于早期开发阶段,因此请预期会有错误和缺失的功能。
已实现的功能
- 向 bucket 中写入数据
- 在特定时间范围内查询数据(目前仅支持相对时间)
- 在查询中使用过滤器
示例
向 bucket 中写入
use std::{collections::HashMap, time::SystemTime};
use influx_client::{
Client, InfluxError, Precision, WriteQuery,
};
fn main() -> Result<(), InfluxError> {
let client = Client::from_env("http://localhost:8086").expect("INFLUXDB_TOKEN not set");
let mut tags = HashMap::new();
tags.insert("t1", "v1");
tags.insert("t2", "v2");
let data = WriteQuery {
name: "test",
tags,
field_name: "i",
value: 42,
timestamp: Some((SystemTime::now(), Precision::ns)),
};
client.insert("home", "home", Precision::ms, data)?;
}
从 bucket 中读取
use influx_client::{
flux::functions::{NumericFilter, Range, StringFilter},
Client, InfluxError, Precision, ReadQuery,
};
fn main() -> Result<(), InfluxError> {
let client = Client::from_env("http://localhost:8086").expect("INFLUXDB_TOKEN not set");
let q = ReadQuery::new("home")
.range(Range::new(Some((-12, Precision::h)), None))
.filter(StringFilter::Eq("_measurement", "test"))
.filter(NumericFilter::Lt("_value", 99));
println!("{}", client.get("home", q)?);
Ok(())
}
依赖项
~4–19MB
~237K SLoC