这篇文章主要介绍“influxdb 2.0安装和使用方法”,在日常操作中,相信很多人在influxdb 2.0安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”influxdb 2.0安装和使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
influxdb是一个开源的时序数据库,开源版本只支持单机+高可用,商业版本才支持集群(横向扩展/分片)功能
安装参考 https://docs.influxdata.com/influxdb/v2.0/get-started/?t=Docker
cd ~
mkdir influxdb-data
sudo docker run -d \
--name influxdb \
--restart always \
-p 8086:8086 \
--volume /home/your_name/influxdb-data:/var/lib/influxdb2 \
influxdb:2.0.4
代码参考(golang)
package main
import (
"context"
"fmt"
"log"
"math/rand"
"time"
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
)
func main() {
// You can generate a Token from the "Tokens Tab" in the UI
const token = "Uok6jfbNdqUWSIZyaH0aqxrSvSC1vg5WS5UyJHWciqY_FvkfOGxqHox_EbbvJQwRXQ770gUQqD1ZcXWvTjPFrA=="
const bucket = "test"
const org = "you_org"
client := influxdb2.NewClient("http://192.168.1.11:8086", token)
// always close client at the end
defer client.Close()
write(client, bucket, org)
}
func write(client influxdb2.Client, bucket, org string) {
// get non-blocking write client
writeAPI := client.WriteAPI(org, bucket)
now := time.Now()
times := 0
// 10个设备 (60*60*24*365)*10=315360000。约3.1亿条数据
for i := 0; i < 10; i++ {
// 过去一年
start := now.Add(-8760 * time.Hour)
for now.After(start) {
// write line protocol
p := influxdb2.NewPointWithMeasurement("设备信息").
AddTag("设备id", fmt.Sprint(i)).
AddField("压力", rand.Float32()*100).
AddField("温度", rand.Float32()*30).SetTime(start)
start = start.Add(1 * time.Second)
writeAPI.WritePoint(p)
if times == 10000 {
log.Printf("当前设备id: %s, 本次写入 %d 条, 最后一条时间: %s", fmt.Sprint(i), times, start.Format("2006-01-02 15:04:05"))
times = 0
// Flush writes
writeAPI.Flush()
} else {
times++
}
}
// Flush writes
writeAPI.Flush()
}
}
func query(client influxdb2.Client, bucket, org string) {
query := fmt.Sprintf("from(bucket:\"%v\")|> range(start: -1h) |> filter(fn: (r) => r._measurement == \"stat\")", bucket)
// Get query client
queryAPI := client.QueryAPI(org)
// get QueryTableResult
result, err := queryAPI.Query(context.Background(), query)
if err == nil {
// Iterate over query response
for result.Next() {
// Notice when group key has changed
if result.TableChanged() {
fmt.Printf("table: %s\n", result.TableMetadata().String())
}
// Access data
fmt.Printf("%s value: %v\n", result.Record().Field(), result.Record().Value())
}
// check for an error
if result.Err() != nil {
fmt.Printf("query parsing error: %s\n", result.Err().Error())
}
} else {
panic(err)
}
}
dashboard
到此,关于“influxdb 2.0安装和使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/160697/blog/5020490