influxdb快速入門指南

致讀者

史上最全I(xiàn)nfluxDb教程地址:InfluxDb中文教程

InfluxDB安裝完成之后鳍刷,我們開始來做一些有意思的事洼哎。在這一章里面我們將會(huì)用到influx這個(gè)命令行工具,這個(gè)工具包含在InfluxDB的安裝包里华糖,是一個(gè)操作數(shù)據(jù)庫的輕量級(jí)命令行工具。它直接通過InfluxDB的HTTP接口(如果沒有修改,默認(rèn)是8086)來和InfluxDB通信缤剧。

說明:也可以直接發(fā)送裸的HTTP請(qǐng)求來操作數(shù)據(jù)庫,例如curl域慷,我們后面在介紹rest這種接口荒辕,但是會(huì)稍微復(fù)雜一些。

1犹褒、InfluxDB創(chuàng)建數(shù)據(jù)庫

如果你已經(jīng)在本地安裝運(yùn)行了InfluxDB抵窒,你就可以直接使用influx命令行,執(zhí)行influx連接到本地的InfluxDB實(shí)例上叠骑。輸出就像下面這樣:


image.png

說明:

  • InfluxDB的HTTP接口默認(rèn)起在8086上李皇,所以influx默認(rèn)也是連的本地的8086端口,你可以通過influx --help來看怎么修改默認(rèn)值宙枷。
  • -precision參數(shù)表明了任何返回的時(shí)間戳的格式和精度掉房,在上面的例子里茧跋,rfc3339是讓InfluxDB返回RFC339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)的時(shí)間戳。

這樣這個(gè)命令行已經(jīng)準(zhǔn)備好接收influx的查詢語句了卓囚,用exit可以退出命令行瘾杭。

第一次安裝好InfluxDB之后是沒有數(shù)據(jù)庫的(除了系統(tǒng)自帶的_internal),因此創(chuàng)建一個(gè)數(shù)據(jù)庫是我們首先要做的事捍岳,通過CREATE DATABASE <db-name>這樣的InfluxQL語句來創(chuàng)建富寿,其中<db-name>就是數(shù)據(jù)庫的名字。數(shù)據(jù)庫的名字可以是被雙引號(hào)引起來的任意Unicode字符锣夹。如果名稱只包含ASCII字母页徐,數(shù)字或下劃線,并且不以數(shù)字開頭银萍,那么也可以不用引起來变勇。

2、創(chuàng)建一個(gè)mydb數(shù)據(jù)庫

我們來創(chuàng)建一個(gè)mydb數(shù)據(jù)庫:

CREATE DATABASE mydb

說明:在輸入上面的語句之后贴唇,并沒有看到任何信息搀绣,這在CLI里,表示語句被執(zhí)行并且沒有錯(cuò)誤戳气,如果有錯(cuò)誤信息展示链患,那一定是哪里出問題了,這就是所謂的沒有消息就是好消息瓶您。這一點(diǎn)很多人都不習(xí)慣麻捻,因?yàn)樵趍ysql中,會(huì)有反饋呀袱,influxdb沒有反饋贸毕,讓人覺得不知道發(fā)生了什么。

現(xiàn)在數(shù)據(jù)庫mydb已經(jīng)創(chuàng)建好了夜赵,我們可以用SHOW DATABASES語句來看看已存在的數(shù)據(jù)庫明棍,也可以用小寫的show databases:

>> SHOW DATABASES
name: databases
---------------
name
_internal
mydb

說明:_internal數(shù)據(jù)庫是用來存儲(chǔ)InfluxDB內(nèi)部的實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)的。

不像SHOW DATABASES寇僧,大部分InfluxQL需要作用在一個(gè)特定的數(shù)據(jù)庫上摊腋。你當(dāng)然可以在每一個(gè)查詢語句上帶上你想查的數(shù)據(jù)庫的名字,但是CLI提供了一個(gè)更為方便的方式USE <db-name>婉宰,這會(huì)為你后面的所以的請(qǐng)求設(shè)置到這個(gè)數(shù)據(jù)庫上歌豺。例如:

| > USE mydb |
| Using database mydb |
| > |

以下的操作都作用于mydb這個(gè)數(shù)據(jù)庫之上,在mysql上也是這么操作的。


3心包、Influxdb寫數(shù)據(jù)

現(xiàn)在我們已經(jīng)有了一個(gè)數(shù)據(jù)庫,那么InfluxDB就可以開始接收讀寫了馒铃。

首先對(duì)數(shù)據(jù)存儲(chǔ)的格式來個(gè)入門介紹蟹腾。InfluxDB里存儲(chǔ)的數(shù)據(jù)被稱為時(shí)間序列數(shù)據(jù)痕惋,其包含一個(gè)數(shù)值,這個(gè)數(shù)字一般是時(shí)間娃殖,這個(gè)時(shí)間可以用數(shù)字來表示值戳。

時(shí)序數(shù)據(jù)有零個(gè)或多個(gè)數(shù)據(jù)點(diǎn),每一個(gè)都是一個(gè)指標(biāo)值炉爆。數(shù)據(jù)點(diǎn)包括time(一個(gè)時(shí)間戳)堕虹,measurement(度量),至少一個(gè)k-v格式的field(也就是鍵值對(duì) “value=0.64”或者“temperature=21.2”)芬首,零個(gè)或多個(gè)標(biāo)簽tag赴捞,其一般是對(duì)于這個(gè)指標(biāo)值的元數(shù)據(jù)(例如“host=server01”, “region=EMEA”, “dc=Frankfurt)。

在概念上郁稍,你可以將measurement類比于SQL里面的table赦政,其主鍵索引總是時(shí)間戳。tagfield是在table里的其他列耀怜,tag是被索引起來的恢着,field沒有。不同之處在于财破,在InfluxDB里掰派,你可以有幾百萬的measurements,你不用事先定義數(shù)據(jù)的scheme(模式)左痢,并且null值不會(huì)被存儲(chǔ)靡羡。

將數(shù)據(jù)點(diǎn)寫入InfluxDB,只需要遵守如下的插入?yún)f(xié)議:

| insert <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp] |

中擴(kuò)號(hào)中的內(nèi)容抖锥,是可選的亿眠,可以有,有可以沒有磅废。

上面說了measurement類似表名纳像,那么上面的語義就是: 向某個(gè)表插入一些數(shù)據(jù)。插入語句必要有如下特點(diǎn):

  • 1個(gè)表名measurement
  • 0個(gè)或多個(gè)tag標(biāo)簽
  • 1個(gè)或多個(gè)field
  • 一個(gè)可選的時(shí)間戳unix-nano-timestamp

下面是數(shù)據(jù)寫入InfluxDB的格式示例:

| insert cpu,host=serverA,region=us_west value=0.64 |
| payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230 |

cpu是表的意思拯勉,其他幾個(gè)等號(hào)連接起來的是鍵值對(duì)竟趾,最后一個(gè)是時(shí)間戳。

舉個(gè)例子:

使用命令行插入單條的時(shí)間序列數(shù)據(jù)到InfluxDB中宫峦,用INSERT后跟數(shù)據(jù)點(diǎn):

INSERT cpu,host=serverA,region=us_west value=0.64

這樣一個(gè)measurement為cpu岔帽,tag是hostregionvalue值為0.64的數(shù)據(jù)點(diǎn)被寫入了InfluxDB中导绷。注意沒有寫時(shí)間犀勒,表示默認(rèn)是系統(tǒng)時(shí)間。

注意上面的空格是tag和field的分界點(diǎn)


4、Influxdb查詢數(shù)據(jù)

現(xiàn)在我們查出寫入的這筆數(shù)據(jù):

| use mydb |
| SELECT "host", "region", "value" FROM "cpu" |

執(zhí)行結(jié)果如下:

Influxdb查詢數(shù)據(jù)

說明:我們?cè)趯懭氲臅r(shí)候沒有包含時(shí)間戳贾费,當(dāng)沒有帶時(shí)間戳的時(shí)候钦购,InfluxDB會(huì)自動(dòng)添加本地的當(dāng)前時(shí)間作為它的時(shí)間戳。

讓我們來寫入另一筆數(shù)據(jù)褂萧,它包含有兩個(gè)字段:

| INSERT temperature,machine=unit42,type=assembly external=25,internal=37 |
  • temperature 是表名measurement
  • machine和type是標(biāo)簽tag
  • external和internal是field
  • tag和field之間用空格隔開

查詢的時(shí)候想要返回所有的字段和tag押桃,可以用*,和mysql的語法基本一致导犹。

| > SELECT * FROM "temperature" |
| name: temperature |
| ----------------- |
| time external internal machine type |
| 2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly |

InfluxQL還有很多特性和用法沒有被提及唱凯,包括支持golang樣式的正則,例如:

| SELECT * FROM /.*/ LIMIT 1 |

這表示查出所有表中的一條數(shù)據(jù)谎痢,如下:

influxdb-正則表達(dá)式查詢

5磕昼、小結(jié)

本章只是開始,有更多的關(guān)于Influxdb的讀寫的操作舶得,請(qǐng)繼續(xù)關(guān)注后面的文章掰烟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沐批,隨后出現(xiàn)的幾起案子纫骑,更是在濱河造成了極大的恐慌,老刑警劉巖九孩,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件先馆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡躺彬,警方通過查閱死者的電腦和手機(jī)煤墙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宪拥,“玉大人仿野,你說我怎么就攤上這事∷” “怎么了脚作?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)缔刹。 經(jīng)常有香客問我球涛,道長(zhǎng),這世上最難降的妖魔是什么校镐? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任亿扁,我火速辦了婚禮,結(jié)果婚禮上鸟廓,老公的妹妹穿的比我還像新娘从祝。我一直安慰自己襟己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布哄褒。 她就那樣靜靜地躺著稀蟋,像睡著了一般煌张。 火紅的嫁衣襯著肌膚如雪呐赡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天骏融,我揣著相機(jī)與錄音链嘀,去河邊找鬼。 笑死档玻,一個(gè)胖子當(dāng)著我的面吹牛怀泊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播误趴,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼霹琼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了凉当?” 一聲冷哼從身側(cè)響起枣申,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎看杭,沒想到半個(gè)月后忠藤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楼雹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年模孩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贮缅。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡榨咐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谴供,到底是詐尸還是另有隱情块茁,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布憔鬼,位于F島的核電站龟劲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏轴或。R本人自食惡果不足惜昌跌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望照雁。 院中可真熱鬧蚕愤,春花似錦答恶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裕坊,卻和暖如春包竹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背籍凝。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工周瞎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饵蒂。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓声诸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親退盯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子彼乌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 參考文獻(xiàn) InfluxDB 1.7文檔https://docs.influxdata.com/influxdb/v...
    Devops海洋的漁夫閱讀 6,870評(píng)論 0 11
  • 1、InfluxDB 是用Go語言編寫的一個(gè)開源分布式時(shí)序渊迁、事件和指標(biāo)數(shù)據(jù)庫慰照,無需外部依賴」常基于時(shí)間序列焚挠,支持與時(shí)...
    SkTj閱讀 3,350評(píng)論 0 0
  • influxDB簡(jiǎn)介 influxDB是近年流行的一種時(shí)序數(shù)據(jù)庫,專用于時(shí)序數(shù)據(jù)的存儲(chǔ)和查詢漓骚, 從其功能介紹和適用...
    青山獨(dú)歸遠(yuǎn)8421閱讀 767評(píng)論 0 0
  • 參考文檔 InfluxDB 1.7文檔 InfluxDB簡(jiǎn)介 InfluxDB 是一個(gè)時(shí)間序列數(shù)據(jù)庫蝌衔,旨在處理高寫...
    PC_Repair閱讀 383評(píng)論 0 0
  • influxdb0.13命令1品洛、數(shù)據(jù)構(gòu)成 INSERT cpu_load_short,host=server01,...
    Joncc閱讀 599評(píng)論 0 0