向InfluxDB寫入資料

2021-08-19 14:38:13 字數 2873 閱讀 4485

官網例子:

在influxdb中的資料是通過「時間序列組織的「,包含乙個測量變數,比如cpu_load或者溫度。時間序列有無數的點,每個點都是metric的離散取樣。點包含time(乙個時間戳)、乙個measurement測量變數(比如是cpu_load),至少乙個kv鍵值對field(測量變數的值,比如"value=0.64",或者"temperature=21.2"),很多的kv鍵值對(包含了任何關於變數的元資料資訊,比如"host=server01",「region=emea」, 「dc=frankfurt」) 。

在概念上,你可以把乙個measurement看做是乙個sql表,主索引一直都是時間。和fields實際上是表中的列。會被索引,但是fields不會。區別是,使用influxdb,你可以有百萬個測量變數,但是不需要設計前面的架構,空值不會被儲存。

點會被寫入到influxdb,使用行協議(line protocol),格式如下:

[,=...] =[,=...] [unix-nano-timestamp]
下面是可以寫入到influxdb的點的所有例子:

cpu,host=servera,region=us_west value=0.64

payment,device=mobile,product=notepad,method=credit billed=33,licenses=3i 1434067467100293230

stock,symbol=aapl bid=127.46,ask=127.48

temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000

使用influx命令列,可以插入乙個個時間序列點,比如使用如下的語句:

> insert cpu,host=servera,region=us_west value=0.64

>

這樣,乙個點——測量變數是cpu,tags是hostregion,測量值value為0.64,被寫入到資料庫中了。

然後,我們可以通過如下語句查到這條資料記錄:

> select "host", "region", "value" from "cpu"

name: cpu

---------

time host region value

2015-10-21t19:28:07.580664347z servera us_west 0.64

我們嘗試儲存另外一種資料,在乙個測量變數裡含有兩種fields:

> insert temperature,machine=unit42,type=assembly external=25,internal=37

>

一次查詢操作中,可以使用*操作符獲取所有的fields和tags:

> select * from "temperature"

name: temperature

-----------------

time external internal machine type

2015-10-21t19:28:08.385013942z 25 37 unit42 assembly

>

匯入的檔案包含以下的兩段:

比如,檔案datarrr.txt

# ddl

create database pirates

create retention policy oneday on pirates duration 1d replication 1

# dml

# context-database: pirates

# context-retention-policy: oneday

treasures,captain_id=dread_pirate_roberts value=801 1439856000

treasures,captain_id=flint value=29 1439856000

treasures,captain_id=sparrow value=38 1439856000

treasures,captain_id=tetra value=47 1439856000

treasures,captain_id=crunch value=109 1439858880

匯入命令如下:

$influx -import -path=datarrr.txt -precision=s
結果如下:

2015/12/22 12:25:06 processed 2 commands

2015/12/22 12:25:06 processed 5 inserts

2015/12/22 12:25:06 failed 0 inserts

query_language

tools-influxdb

line-protocol

launch-influx

database_management

retention-policy

使用restbed 寫入influxDB 資料庫

influxdb是目前比較流行的時間序列資料庫。它和傳統的資料庫有所不同。influxdb 與 mysql 對比 庫 表比較 influxdb 傳統資料庫中的概念 database 資料庫measurement 資料庫中的表 points 表裡面的一行資料 influxdb 資料的構成 point由...

資料庫向Excel寫入資料

開啟目標資料錄入資訊excel檔案 函式處理失敗的錯誤資訊 如果函式處理成功返回true,否則返回false private bool opendessjlrexcel string excelfile,errinfo perrinfo 返回函式處理結果給外部的函式呼叫者 return pflago...

向Redis集群中寫入資料

在redis cli每次錄入 查詢鍵值,redis都會計算出該key應該送往的插槽,如果不是該客戶端對應伺服器插槽,redis會報錯,並告知應前往的redis例項位址和埠。redis cli客戶端提供了 c 引數實現自動重定向。如 redis cli c p 6379 登入後,再錄入 查詢鍵值對可以...