InfluxDB使用總結(jié)與性能優(yōu)化[轉(zhuǎn)]

如果項目的功能模塊中用到對時間特性比較敏感的數(shù)據(jù)叽粹,例如性能監(jiān)控炭菌,趨勢走向等需求時罪佳,InfluxDB將會是一個不錯的選擇,雖然其很強很彪悍黑低,但只有在使用的過程中遵循一定規(guī)范與原則赘艳,才能發(fā)揮其良好的特性。

本文會先介紹一些InfluxDB的基本概念克握,然后列出一些在設(shè)計Schema時應(yīng)該注意的問題蕾管,最后列出一些常見的優(yōu)化方式。

基本介紹
概念
Database: 數(shù)據(jù)庫名菩暗,在 InfluxDB 中可以創(chuàng)建多個數(shù)據(jù)庫掰曾,不同數(shù)據(jù)庫中的數(shù)據(jù)文件是隔離存放的,存放在磁盤上的不同目錄停团。
Retention Policy: 存儲策略旷坦,用于設(shè)置數(shù)據(jù)保留的時間,每個數(shù)據(jù)庫剛開始會自動創(chuàng)建一個默認(rèn)的存儲策略 autogen佑稠,數(shù)據(jù)保留時間為永久秒梅,之后用戶可以自己設(shè)置,例如保留最近2小時的數(shù)據(jù)舌胶。插入和查詢數(shù)據(jù)時如果不指定存儲策略捆蜀,則使用默認(rèn)存儲策略,且默認(rèn)存儲策略可以修改幔嫂。InfluxDB 會定期清除過期的數(shù)據(jù)辆它。
Measurement: 對于傳統(tǒng)數(shù)據(jù)庫的表,例如 cpu_usage 表示 cpu 的使用率履恩。
Tag sets: tags 在 InfluxDB 中會被建立索引锰茉,且放在內(nèi)存中。如果某種數(shù)據(jù)經(jīng)常用來被作為查詢條件似袁,可以考慮設(shè)為Tag
Field: 記錄值洞辣,是查詢的主要對象咐刨,例如value值等
Point:代表一條記錄
Series:tag key 與tag value的唯一組合
Timestamp: 每一條數(shù)據(jù)都需要指定一個時間戳昙衅,在 TSM 存儲引擎中會特殊對待,以為了優(yōu)化后續(xù)的查詢操作定鸟。
操作
由于Tag與Field的不同特性而涉,在編寫SQL進行查詢時,Tag與Field支持不同的操作联予,總結(jié)如下:

Tag 
只能使用Tag進行Group
只能使用Tag進行正則表達式操作
SHOW TAG VALUES WITH KEY = qual_data;    #qual_data只能是tag,填寫field無輸出

Field 
只能使用Field進行函數(shù)操作啼县,例如sum()
只能使用Field進行比較操作
如果需要使用int,float,boolean類型進行存儲,只能使用Field
select qual_data from mangguo_data where domain='value';    #value只能是field,填寫tag無輸出

Schema 設(shè)計總結(jié)
不要把數(shù)據(jù)放到measurement名稱中材原。
例如 不要讓measurement名稱看起來是這樣的:

cpu.server1.us_west
應(yīng)該改成
cpu,host=server1,region=us_west

不要把數(shù)據(jù)放到Tag value中 
例如 不要讓measurement名稱看起來是這樣的:
cpu,host=server1.us_west
應(yīng)該改成
cpu,host=server1,region=us_west
  • 不要使用取值范圍很廣的數(shù)據(jù)作為tag,例如uuid,hash等等
  • 如果實在有這方面的需求,考慮一下幾點建議
  • 切成多個shard,并分到多個實例上
  • 使用tag 前綴進行區(qū)分
  • 使用field
  • 使用集群
  • Tag Key不要與Field的名稱相同
  • Tags的數(shù)量不要太少
  • database的數(shù)量不要太多
  • 當(dāng)database的數(shù)量達到千萬級別時季眷,會出現(xiàn)打開文件過多余蟹,占用內(nèi)存過多等問題。
    優(yōu)化
    常見的優(yōu)化方式如下
控制series的數(shù)量
Series會被索引且存在內(nèi)存中子刮,如果量太大會對資源造成過多損耗威酒,且查詢效率也得不到保障。 
可以通過以下方式查詢series的數(shù)量:
 influx -database 'cloudportal' -execute 'show series' -format 'csv'|wc -l

通過以下方式查詢tag values的數(shù)量:
influx -database 'cloudportal' -execute 'SHOW TAG VALUES FROM six_months.collapsar_flow WITH KEY = dip' -format 'csv'|wc -l

數(shù)量是否合適可以參考以下標(biāo)準(zhǔn):

  • 機器配置


    機器配置
  1. 使用批量寫
    如果使用HTTP一次寫一條記錄挺峡,或許還沒有太大的負(fù)擔(dān)葵孤,但是如果用HTTPS的進行一條一條的寫,在加密/解密上的資源損耗會非常的大橱赠。如果不能使用HTTP,則推薦使用UDP協(xié)議
  2. 使用Continuous Queries 進行數(shù)據(jù)匯聚
    對于查詢時間范圍較大且數(shù)據(jù)粒度要求不是非常高的數(shù)據(jù)尤仍,可以考慮使用CQ進行數(shù)據(jù)匯總,并對匯總結(jié)果進行查詢
  3. 使用恰當(dāng)?shù)臅r間粒度
    在數(shù)據(jù)存儲的時候默認(rèn)使用納秒狭姨。而對于很多業(yè)務(wù)操作而言宰啦,可能只需要精確到秒級別。這種情況對于存儲資源以及查詢性能都會有一定的影響送挑。想法如果業(yè)務(wù)需要毫秒級別的精確程度绑莺,而存的時候使用了秒級別的數(shù)據(jù),此時查詢又會出現(xiàn)數(shù)據(jù)的丟失
  4. 存儲的時候盡量對Tag進行排序
  5. 無關(guān)的數(shù)據(jù)寫不同的database
  6. 根據(jù)數(shù)據(jù)情況惕耕,調(diào)整shard的duration
    默認(rèn)7天創(chuàng)建一個纺裁,如果查詢的時間范圍較大,會打開多個shard文件司澎,對于數(shù)據(jù)量不大欺缘,且查詢范圍可能較大的數(shù)據(jù),可以將shard duration時間設(shè)置的長一點
  7. 存儲分離
    將WAL目錄與data目錄分別映射到不同的磁盤上挤安,以減少讀寫操作的相互影響
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谚殊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛤铜,更是在濱河造成了極大的恐慌嫩絮,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件围肥,死亡現(xiàn)場離奇詭異剿干,居然都是意外死亡,警方通過查閱死者的電腦和手機穆刻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門置尔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氢伟,你說我怎么就攤上這事榜轿∮募撸” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵谬盐,是天一觀的道長甸私。 經(jīng)常有香客問我,道長飞傀,這世上最難降的妖魔是什么颠蕴? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮助析,結(jié)果婚禮上犀被,老公的妹妹穿的比我還像新娘。我一直安慰自己外冀,他們只是感情好寡键,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雪隧,像睡著了一般西轩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脑沿,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天藕畔,我揣著相機與錄音,去河邊找鬼庄拇。 笑死注服,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的措近。 我是一名探鬼主播溶弟,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞭郑!你這毒婦竟也來了辜御?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤屈张,失蹤者是張志新(化名)和其女友劉穎擒权,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阁谆,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡碳抄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛厦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纳鼎。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡俺夕,死狀恐怖裳凸,靈堂內(nèi)的尸體忽然破棺而出贱鄙,到底是詐尸還是另有隱情,我是刑警寧澤姨谷,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布逗宁,位于F島的核電站,受9級特大地震影響梦湘,放射性物質(zhì)發(fā)生泄漏瞎颗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一捌议、第九天 我趴在偏房一處隱蔽的房頂上張望哼拔。 院中可真熱鬧,春花似錦瓣颅、人聲如沸倦逐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檬姥。三九已至,卻和暖如春粉怕,著一層夾襖步出監(jiān)牢的瞬間健民,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工贫贝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秉犹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓稚晚,卻偏偏與公主長得像凤优,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜈彼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359