go操作infludb

242 阅读1分钟

基本使用

使用Go语言对InfluxDB进行操作首先需要安装InfluxDB的Go客户端。你可以使用以下命令安装:

go get github.com/influxdata/influxdb-client-go/v2

以下是使用Go对InfluxDB进行基本的增删改查操作的示例代码:

  1. 初始化连接:
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()
}
  1. 写入数据:

在上述代码的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)
}
  1. 查询数据:

接着,在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())
}
  1. 删除数据:

InfluxDB的客户端库不直接提供删除数据的API,但你可以使用DROP SERIES或DELETE命令来删除数据。这通常通过InfluxDB的管理界面或CLI工具进行。

但要注意:删除操作在InfluxDB中需要谨慎使用,因为它可能会影响性能并占用大量的I/O。