這篇文章主要介紹“influxdb 2.0安裝和使用方法”,在日常操作中,相信很多人在influxdb 2.0安裝和使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”influxdb 2.0安裝和使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,公司以成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、系統(tǒng)開發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶數(shù)千家,涉及國內(nèi)多個省份客戶。擁有多年網(wǎng)站建設(shè)開發(fā)經(jīng)驗(yàn)。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計、宣傳推廣等服務(wù)。 通過專業(yè)的設(shè)計、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。
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
到此,關(guān)于“influxdb 2.0安裝和使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!