命令行界面介紹
Influx的命令行界面(CLI),它是一個(gè)用來跟數(shù)據(jù)庫(kù)進(jìn)行交互的輕量級(jí)工具。有關(guān)如何下載使用CLI,可參考文檔命令行界面。CLI默認(rèn)通過端口3242向TSDB For InfluxDB? HTTP API發(fā)送請(qǐng)求,直接與TSDB For InfluxDB?通信。
也可以向數(shù)據(jù)庫(kù)發(fā)送原生的HTTP請(qǐng)求,請(qǐng)參閱文檔通過HTTP API寫入數(shù)據(jù)和通過HTTP API查詢數(shù)據(jù)中使用curl的示例。
初探數(shù)據(jù)的讀寫功能
當(dāng)在阿里云平臺(tái)成功創(chuàng)建好數(shù)據(jù)庫(kù)之后,TSDB For InfluxDB?就可以接收寫入和查詢請(qǐng)求。
首先,對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)做個(gè)簡(jiǎn)短的入門介紹。TSDB For InfluxDB?里的數(shù)據(jù)按“時(shí)間序列”來組織,其包含一個(gè)被測(cè)量的指標(biāo),如“cpu_load”或“temperature”。時(shí)間序列有零個(gè)或多個(gè)數(shù)據(jù)點(diǎn),每個(gè)數(shù)據(jù)點(diǎn)都是一個(gè)測(cè)量值。數(shù)據(jù)點(diǎn)由time
(一個(gè)時(shí)間戳)、measurement
(測(cè)量指標(biāo),例如“cpu_load”)、至少一個(gè)key-value格式的field
(測(cè)量值,例如“value=0.64”或者“temperature=21.2”)和零或多個(gè)包含測(cè)量值元數(shù)據(jù)的key-value格式的tag
(例如“host=server01”,“region=EMEA”,“dc=Frankfurt”)組成。
從概念上來看,您可以將measurement
看成是一個(gè)SQL表格,其中,時(shí)間戳始終是主索引,tag
和field
是表格中的列,tag
會(huì)被建索引,而field
則不會(huì)。與SQL表格的不同之處在于,使用TSDB For InfluxDB?,您可以有數(shù)百萬的measurement,無需預(yù)先定義數(shù)據(jù)的schema,并且不會(huì)存儲(chǔ)空值。
數(shù)據(jù)寫入TSDB For InfluxDB?使用行協(xié)議(Line Protocol),該協(xié)議遵循以下格式:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
以下是符合格式的數(shù)據(jù)寫入TSDB For 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
更多關(guān)于行協(xié)議的信息可參考文檔行協(xié)議參考。
使用CLI寫入一個(gè)數(shù)據(jù)點(diǎn)到TSDB For InfluxDB?,請(qǐng)先輸入INSERT
,然后輸入該數(shù)據(jù)點(diǎn)的信息:
> INSERT cpu,host=serverA,region=us_west value=0.64
>
現(xiàn)在,一個(gè)measurement為cpu
,tag為host
和region
,測(cè)量值value
為0.64
的數(shù)據(jù)點(diǎn)已經(jīng)寫入數(shù)據(jù)庫(kù)。
查詢剛剛寫入的數(shù)據(jù):
> SELECT “host”, “region”, “value” FROM “cpu”
> name: cpu
------------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
>
前面我們?cè)趯懭霐?shù)據(jù)點(diǎn)的時(shí)候沒有提供時(shí)間戳。如果寫入沒有帶時(shí)間戳的數(shù)據(jù)點(diǎn),TSDB For InfluxDB?會(huì)在獲取該點(diǎn)時(shí),把本地當(dāng)前時(shí)間分配給該數(shù)據(jù)點(diǎn),作為該數(shù)據(jù)點(diǎn)的時(shí)間戳。這意味著您的時(shí)間戳跟上面的會(huì)有所不同。
讓我們嘗試寫入另一種類型的數(shù)據(jù),同一個(gè)measurement有兩個(gè)field:
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
>
查詢的時(shí)候,若想返回所有的field和tag,可以使用操作符*
:
> SELECT * FROM "temperature"
name: temperature
-----------------
time external internal machine type
2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
>
在大型數(shù)據(jù)庫(kù)上使用*而不使用LIMIT子句可能會(huì)導(dǎo)致性能問題。 您可以使用Ctrl+C取消響應(yīng)時(shí)間過長(zhǎng)的查詢。
TSDB For InfluxDB?有很多功能和特性沒有在這里提及,包括支持Go語言風(fēng)格的正則表達(dá)式,例如:
> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM “cpu_load_short”
--
> SELECT * FROM “cpu_load_short” WHERE “value” > 0.9
這就是你在入門指南里需要知道的將數(shù)據(jù)寫入TSDB For InfluxDB?并進(jìn)行查詢的全部?jī)?nèi)容。想要獲取更多關(guān)于TSDB For InfluxDB?寫入數(shù)據(jù)和查詢數(shù)據(jù)的信息,請(qǐng)查看文檔通過HTTP API寫入數(shù)據(jù)和通過HTTP API查詢數(shù)據(jù)。想要了解更多TSDB For InfluxDB?中涉及的概念,請(qǐng)查看文檔關(guān)鍵概念。
InfluxDB? is a trademark registered by InfluxData, which is not affiliated with, and does not endorse, TSDB for InfluxDB?.