基本使用
使用Go语言对InfluxDB进行操作首先需要安装InfluxDB的Go客户端。你可以使用以下命令安装:
go get github.com/influxdata/influxdb-client-go/v2
以下是使用Go对InfluxDB进行基本的增删改查操作的示例代码:
- 初始化连接:
package main
import (
"context"
"fmt"
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
"log"
)
const (
influxToken = "YOUR_INFLUXDB_TOKEN"
influxOrg = "YOUR_INFLUXDB_ORG"
influxBucket = "YOUR_INFLUXDB_BUCKET"
influxURL = "http://localhost:8086"
)
func main() {
client := influxdb2.NewClient(influxURL, influxToken)
defer client.Close()
}
- 写入数据:
在上述代码的main函数中添加以下内容:
writeAPI := client.WriteAPIBlocking(influxOrg, influxBucket)
p := influxdb2.NewPoint("testMeasurement",
map[string]string{"unit": "temperature"},
map[string]interface{}{"value": 23.5},
)
err := writeAPI.WritePoint(context.Background(), p)
if err != nil {
log.Fatalf("Error writing data to InfluxDB: %v", err)
}
- 查询数据:
接着,在main函数中添加以下内容:
query := fmt.Sprintf(`from(bucket:"%s")|> range(start:-1h) |> filter(fn: (r) => r._measurement == "testMeasurement")`, influxBucket)
queryAPI := client.QueryAPI(influxOrg)
result, err := queryAPI.Query(context.Background(), query)
if err != nil {\
log.Fatalf("Error querying data: %v", err)
}
for result.Next() {
fmt.Printf("Record: %v\n", result.Record())
}
- 删除数据:
InfluxDB的客户端库不直接提供删除数据的API,但你可以使用DROP SERIES或DELETE命令来删除数据。这通常通过InfluxDB的管理界面或CLI工具进行。
但要注意:删除操作在InfluxDB中需要谨慎使用,因为它可能会影响性能并占用大量的I/O。