influxdb无法实现关联表_InfluxDb专业术语
InfluxDb專業(yè)術(shù)語
重復(fù)是最好的學(xué)習(xí)方式,我們?cè)僦貜?fù)一些Influx的概念吧,雖然很多已經(jīng)講過,甚至上一課已經(jīng)講了。我發(fā)現(xiàn)我自己還是有點(diǎn)啰嗦,不過這可能是一種好的學(xué)習(xí)方法哦。
聚合函數(shù)aggregation
aggregation是一個(gè)InfluxQL的函數(shù),InfluxQL是InfluxDb的查詢語言。aggregation可以返回一堆數(shù)據(jù)的聚合結(jié)果,可以看InfluxQL函數(shù)中現(xiàn)有的以及即將支持的聚合函數(shù)列表。
批數(shù)據(jù)batch
用換行符分割的數(shù)據(jù)點(diǎn)的集合,這批數(shù)據(jù)可以使用HTTP請(qǐng)求寫到數(shù)據(jù)庫中。用這種HTTP接口的方式可以大幅降低HTTP的負(fù)載。盡管不同的場(chǎng)景下更小或更大的batch可能有更好地性能,InfluxData建議每個(gè)batch的大小在5000~10000個(gè)數(shù)據(jù)點(diǎn)。
其實(shí)還是有點(diǎn)大,我們后面會(huì)看看5000個(gè)點(diǎn),是多少字節(jié)的數(shù)據(jù)。
連續(xù)查詢continuous query(CQ)
continuous query,簡(jiǎn)稱CQ,是一個(gè)在數(shù)據(jù)庫中自動(dòng)周期運(yùn)行的InfluxQL的查詢。Continuous query在select語句里需要一個(gè)函數(shù),并且一定會(huì)包含一個(gè)GROUP BY time()的語法。
它有點(diǎn)像存儲(chǔ)過程。不過它可以自動(dòng)執(zhí)行。
數(shù)據(jù)庫database
對(duì)于users,retention policy,continuous query以及時(shí)序數(shù)據(jù)的一個(gè)邏輯上的集合。
其實(shí)不用解釋,數(shù)據(jù)庫就是數(shù)據(jù)庫。
duration
retention policy中的一個(gè)屬性,決定InfluxDB中數(shù)據(jù)保留多長時(shí)間。在duration之前的數(shù)據(jù)會(huì)自動(dòng)從database中刪除掉。
字段field
InfluxDB數(shù)據(jù)中記錄metadata和真實(shí)數(shù)據(jù)的鍵值對(duì)。fields在InfluxDB的數(shù)據(jù)結(jié)構(gòu)中是必須的且不會(huì)被索引。如果要用field做查詢條件的話,那就必須遍歷所選時(shí)間范圍里面的所有數(shù)據(jù)點(diǎn),這種方式對(duì)比與tag效率會(huì)差很多。
字段鍵值field key
組成field的鍵值對(duì)里面的鍵的部分。field key是字符串且保存在metadata中。
字段集合field set
數(shù)據(jù)點(diǎn)上field key和field value的集合。
字段值field value
組成field的鍵值對(duì)里面的值的部分。field value才是真正的數(shù)據(jù),可以是字符串,浮點(diǎn)數(shù),整數(shù),布爾型數(shù)據(jù)。一個(gè)field value總是和一個(gè)timestamp相關(guān)聯(lián)。
field value不會(huì)被索引,如果要對(duì)field value做過濾話,那就必須遍歷所選時(shí)間范圍里面的所有數(shù)據(jù)點(diǎn),這種方式對(duì)比與tag效率會(huì)差很多。
函數(shù)function
包括InfluxQL中的聚合,查詢和轉(zhuǎn)換,可以在InfluxQL函數(shù)中查看InfluxQL中的完整函數(shù)列表。
標(biāo)識(shí)符identifier
涉及continuous query的名字,database名字,field keys,measurement名字,retention policy名字,subscription 名字,tag keys以及user 名字的一個(gè)標(biāo)記。
line protocol
寫入InfluxDB時(shí)的數(shù)據(jù)點(diǎn)的文本格式。
表measurement
InfluxDB數(shù)據(jù)結(jié)果中的一部分,描述了存在關(guān)聯(lián)field中的數(shù)據(jù)的意義,measurement是字符串。
metastore
包含了系統(tǒng)狀態(tài)的內(nèi)部信息。metastore包含了用戶信息,database,retention policy,shard metadata,continuous query以及subscription。
node
一個(gè)獨(dú)立的influxd進(jìn)程。
時(shí)間函數(shù)now()
本地服務(wù)器的當(dāng)前納秒級(jí)時(shí)間戳。
point
InfluxDB數(shù)據(jù)結(jié)構(gòu)的一部分由series中的的一堆field組成。 每個(gè)點(diǎn)由其series和timestamp唯一標(biāo)識(shí)。
你不能在同一series中存儲(chǔ)多個(gè)具有相同timestamp的點(diǎn)。 相反,當(dāng)你使用與該series中現(xiàn)有點(diǎn)相同的timestamp記將新point寫入同一series時(shí),該field set將成為舊field set和新field set的并集。
查詢query
從InfluxDB里面獲取數(shù)據(jù)的一個(gè)操作
replication factor
retention policy的一個(gè)參數(shù),決定在集群模式下數(shù)據(jù)的副本的個(gè)數(shù)。InfluxDB在N個(gè)數(shù)據(jù)節(jié)點(diǎn)上復(fù)制數(shù)據(jù),其中N就是replication factor。
replication factor在單節(jié)點(diǎn)的實(shí)例上不起作用
retention policy(RP)
InfluxDB數(shù)據(jù)結(jié)構(gòu)的一部分,描述了InfluxDB保存數(shù)據(jù)的長短(duration),數(shù)據(jù)存在集群里面的副本數(shù)(replication factor),以及shard group的時(shí)間范圍(shard group duration)。RPs在每個(gè)database里面是唯一的,連同measurement和tag set定義一個(gè)series。
當(dāng)你創(chuàng)建一個(gè)database的時(shí)候,InfluxDB會(huì)自動(dòng)創(chuàng)建一個(gè)叫做autogen的retention policy,其duration為永遠(yuǎn),replication factor為1,shard group的duration設(shè)為的七天。
數(shù)據(jù)庫模式schema
數(shù)據(jù)在InfluxDB里面怎么組織。InfluxDB的schema的基礎(chǔ)是database,retention policy,series,measurement,tag key,tag value以及field keys。
selector
一個(gè)InfluxQL的函數(shù),從特定范圍的數(shù)據(jù)點(diǎn)中返回一個(gè)點(diǎn)。可以看InfluxQL函數(shù)中現(xiàn)有的以及即將支持的selector函數(shù)列表。
series
InfluxDB數(shù)據(jù)結(jié)構(gòu)的集合,一個(gè)特定的series由measurement,tag set和retention policy組成。
注意:field set不是series的一部分
series cardinality
在InfluxDB實(shí)例上唯一database,measurement和tag set組合的數(shù)量。
例如,假設(shè)一個(gè)InfluxDB實(shí)例有一個(gè)單獨(dú)的database,一個(gè)measurement。這個(gè)measurement有兩個(gè)tag key:email和status。如果有三個(gè)不同的email,并且每個(gè)email的地址關(guān)聯(lián)兩個(gè)不同的status,那么這個(gè)measurement的series cardinality就是6(3*2=6):
status
lorr@influxdata.com
start
lorr@influxdata.com
finish
marv@influxdata.com
start
marv@influxdata.com
finish
cliff@influxdata.com
start
cliff@influxdata.com
finish
注意到,因?yàn)樗蕾嚨膖ag的存在,在某些情況下,簡(jiǎn)單地執(zhí)行該乘法可能會(huì)高估series cardinality。 依賴的tag是由另一個(gè)tag限定的tag并不增加series cardinality。 如果我們將tagfirstname添加到上面的示例中,則系列基數(shù)不會(huì)是18(3 * 2 * 3 = 18)。 它將保持不變?yōu)?,因?yàn)閒irstname已經(jīng)由email覆蓋了:
status
firstname
lorr@influxdata.com
start
lorraine
lorr@influxdata.com
finish
lorraine
marv@influxdata.com
start
marvin
marv@influxdata.com
finish
marvin
cliff@influxdata.com
start
clifford
cliff@influxdata.com
finish
clifford
在常見問題中可以看到怎么根據(jù)series cardinality來查詢InfluxDB。
server
一個(gè)運(yùn)行InfluxDB的服務(wù)器,可以使虛擬機(jī)也可以是物理機(jī)。每個(gè)server上應(yīng)該只有一個(gè)InfluxDB的進(jìn)程。
shard
shard包含實(shí)際的編碼和壓縮數(shù)據(jù),并由磁盤上的TSM文件表示。 每個(gè)shard都屬于唯一的一個(gè)shard group。多個(gè)shard可能存在于單個(gè)shard group中。每個(gè)shard包含一組特定的series。給定shard group中的給定series上的所有點(diǎn)將存儲(chǔ)在磁盤上的相同shard(TSM文件)中。
shard duration
shard duration決定了每個(gè)shard group跨越多少時(shí)間。具體間隔由retention policy中的SHARD DURATION決定。
例如,如果retention policy的SHARD DURATION設(shè)置為1w,則每個(gè)shard group將跨越一周,并包含時(shí)間戳在該周內(nèi)的所有點(diǎn)。
shard group
shard group是shard的邏輯組合。shard group由時(shí)間和retention policy組織。包含數(shù)據(jù)的每個(gè)retention policy至少包含一個(gè)關(guān)聯(lián)的shard group。給定的shard group包含shard group覆蓋的間隔的數(shù)據(jù)的所有shard。每個(gè)shard group跨越的間隔是shard的持續(xù)時(shí)間。
subscription
subscription允許Kapacitor在push model中接收來自InfluxDB的數(shù)據(jù),而不是基于查詢數(shù)據(jù)的pull model。當(dāng)Kapacitor配置為使用InfluxDB時(shí),subscription將自動(dòng)將訂閱的數(shù)據(jù)庫的每個(gè)寫入從InfluxDB推送到Kapacitor。subscription可以使用TCP或UDP傳輸寫入。
tag
InfluxDB數(shù)據(jù)結(jié)構(gòu)中的鍵值對(duì),tags在InfluxDB的數(shù)據(jù)中是可選的,但是它們可用于存儲(chǔ)常用的metadata; tags會(huì)被索引,因此tag上的查詢是很高效的。
tag key
組成tag的鍵值對(duì)中的鍵部分,tag key是字符串,存在metadata中。
tag set
數(shù)據(jù)點(diǎn)上tag key和tag value的集合。
tag value
組成tag的鍵值對(duì)中的值部分,tag value是字符串,存在metadata中。
timestamp
數(shù)據(jù)點(diǎn)關(guān)聯(lián)的日期和時(shí)間,在InfluxDB里的所有時(shí)間都是UTC的。
transformation
一個(gè)InfluxQL的函數(shù),返回一個(gè)值或是從特定數(shù)據(jù)點(diǎn)計(jì)算后的一組值。但是不是返回這些數(shù)據(jù)的聚合值。
tsm(Time Structured Merge tree)
InfluxDB的專用數(shù)據(jù)存儲(chǔ)格式。 TSM可以比現(xiàn)有的B+或LSM樹實(shí)現(xiàn)更大的壓縮和更高的寫入和讀取吞吐量。
user
在InfluxDB里有兩種類型的用戶:
admin用戶對(duì)所有數(shù)據(jù)庫都有讀寫權(quán)限,并且有管理查詢和管理用戶的全部權(quán)限。
非admin用戶有針對(duì)database的可讀,可寫或者二者兼有的權(quán)限。
當(dāng)認(rèn)證開啟之后,InfluxDB只執(zhí)行使用有效的用戶名和密碼發(fā)送的HTTP請(qǐng)求。
values per second
對(duì)數(shù)據(jù)持續(xù)到InfluxDB的速率的度量,寫入速度通常以values per second表示。
要計(jì)算每秒速率的值,將每秒寫入的點(diǎn)數(shù)乘以每點(diǎn)存儲(chǔ)的值數(shù)。 例如,如果這些點(diǎn)各有四個(gè)field,并且每秒寫入batch是5000個(gè)點(diǎn),那么values per second是每點(diǎn)4個(gè)fieldx每batch 5000個(gè)點(diǎn)x10個(gè)batch/秒=每秒200,000個(gè)值。
wal(Write Ahead Log)
最近寫的點(diǎn)數(shù)的臨時(shí)緩存。為了減少訪問永久存儲(chǔ)文件的頻率,InfluxDB將最新的數(shù)據(jù)點(diǎn)緩沖進(jìn)WAL中,直到其總大小或時(shí)間觸發(fā)然后flush到長久的存儲(chǔ)空間。這樣可以有效地將寫入batch處理到TSM中。
可以查詢WAL中的點(diǎn),并且系統(tǒng)重啟后仍然保留。在進(jìn)程開始時(shí),在系統(tǒng)接受新的寫入之前,WAL中的所有點(diǎn)都必須flushed。
總結(jié)
以上是生活随笔為你收集整理的influxdb无法实现关联表_InfluxDb专业术语的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 导入world数据_java读
- 下一篇: 江西小学计算机说课稿,2019江西教师招