Documentation

InfluxDB v2 Go 客户端库

使用 InfluxDB 3 客户端

/api/v2/query API 端点及相关工具,如 InfluxDB v2 客户端库和 influx CLI,无法 查询 InfluxDB 集群。

InfluxDB 3 客户端库Flight SQL 客户端 可用,它们与您的代码集成,以写入和查询存储在 InfluxDB 集群中的数据。

InfluxDB 3 支持许多不同的工具用于 写入查询 数据。 比较您可以使用的工具 来与 InfluxDB 集群交互。

使用InfluxDB Go 客户端库向InfluxDB集群数据库写入数据。

本指南假设读者对Go和InfluxDB有一定的了解。
如果刚刚入门,请参见 开始使用InfluxDB

开始之前

  1. 安装 Go 1.13 或更高版本

  2. 将客户包添加到您的项目依赖中。

    # Add InfluxDB Go client package to your project go.mod
    go get github.com/influxdata/influxdb-client-go/v2
    
  3. 确保 InfluxDB 正在运行,并且您可以连接到它。有关连接到您的 InfluxDB 集群时应使用哪个 URL 的信息,请联系您的 InfluxData 账户代表。

InfluxDB Go客户端库的样板代码

使用Go库从InfluxDB中写入和查询数据。

  1. 在你的Go程序中,导入必要的包并指定可执行程序的入口点。

    package main
    
    import (
        "context"
        "fmt"
        "time"
    
        "github.com/influxdata/influxdb-client-go/v2"
    )
    
  2. 为您的 InfluxDB database(bucket)、组织(必需,但被忽略)和 database token 定义变量。

    bucket := "DATABASE_NAME"
    org := "ignored"
    token := "DATABASE_TOKEN"
    // Store the URL of your InfluxDB instance
    url := "https://cluster-host.com"
    
  3. 创建 InfluxDB Go 客户端并传入 urltoken 参数。

    client := influxdb2.NewClient(url, token)
    
  4. 使用 写客户端 创建一个 WriteAPIBlocking 方法,并传入 orgbucket 参数。

    writeAPI := client.WriteAPIBlocking(org, bucket)
    

使用Go写入数据到InfluxDB

使用Go库将数据写入InfluxDB。

  1. 创建一个 point 并使用 API writer 结构体的 WritePoint 方法将其写入 InfluxDB。

  2. 关闭客户端以刷新所有待处理的写入并完成。

    p := influxdb2.NewPoint("stat",
      map[string]string{"unit": "temperature"},
      map[string]interface{}{"avg": 24.5, "max": 45},
      time.Now())
    writeAPI.WritePoint(context.Background(), p)
    client.Close()
    

完整示例编写脚本

package main

import (
      "context"
      "fmt"
      "time"

      "github.com/influxdata/influxdb-client-go/v2"
)

func main() {
    bucket := "DATABASE_NAME"
    org := "ignored"
    token := "DATABASE_TOKEN"
    // Store the URL of your InfluxDB instance
    url := "https://cluster-host.com"
    // Create new client with default option for server url authenticate by token
    client := influxdb2.NewClient(url, token)
    // User blocking write client for writes to desired bucket
    writeAPI := client.WriteAPIBlocking(org, bucket)
    // Create point using full params constructor
    p := influxdb2.NewPoint("stat",
        map[string]string{"unit": "temperature"},
        map[string]interface{}{"avg": 24.5, "max": 45},
        time.Now())
    // Write point immediately
    writeAPI.WritePoint(context.Background(), p)
    // Ensures background processes finishes
    client.Close()
}


Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: