溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

influxdb 2.0安裝和使用方法

發(fā)布時間:2021-07-09 09:28:38 來源:億速云 閱讀:3124 作者:chen 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“influxdb 2.0安裝和使用方法”,在日常操作中,相信很多人在influxdb 2.0安裝和使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”influxdb 2.0安裝和使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

  • influxdb是一個開源的時序數(shù)據(jù)庫,開源版本只支持單機(jī)+高可用,商業(yè)版本才支持集群(橫向擴(kuò)展/分片)功能

  • 安裝參考 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個設(shè)備 (60*60*24*365)*10=315360000。約3.1億條數(shù)據(jù)
	for i := 0; i < 10; i++ {
		// 過去一年
		start := now.Add(-8760 * time.Hour)
		for now.After(start) {
			// write line protocol
			p := influxdb2.NewPointWithMeasurement("設(shè)備信息").
				AddTag("設(shè)備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("當(dāng)前設(shè)備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安裝和使用方法

到此,關(guān)于“influxdb 2.0安裝和使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI