新聞中心
時(shí)序數(shù)據(jù)是指在特定時(shí)間和順序下發(fā)生的數(shù)據(jù)記錄,例如傳感器數(shù)據(jù)、日志數(shù)據(jù)等。隨著物聯(lián)網(wǎng)、云計(jì)算和大數(shù)據(jù)技術(shù)的發(fā)展,時(shí)序數(shù)據(jù)的產(chǎn)生和應(yīng)用越來(lái)越廣泛,而針對(duì)時(shí)序數(shù)據(jù)的數(shù)據(jù)庫(kù)也應(yīng)運(yùn)而生。influxdb是一款高性能、分布式的時(shí)序數(shù)據(jù)庫(kù),具有很多強(qiáng)大的功能,被廣泛用于監(jiān)控、IoT、實(shí)時(shí)分析、機(jī)器學(xué)習(xí)等領(lǐng)域。本文將從以下幾個(gè)方面介紹influxdb的功能和應(yīng)用:

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作與策劃設(shè)計(jì),閔行網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:閔行等地區(qū)。閔行做網(wǎng)站價(jià)格咨詢:13518219792
1. 基本概念
influxdb是一個(gè)開(kāi)源,分布式的時(shí)序數(shù)據(jù)庫(kù),使用go語(yǔ)言編寫(xiě),支持HTTP API,主要特點(diǎn)如下:
– 每個(gè)數(shù)據(jù)記錄有時(shí)間戳和至少一個(gè)浮點(diǎn)數(shù)值,這些數(shù)據(jù)記錄按照時(shí)間順序存儲(chǔ);
– 支持水平擴(kuò)展和副本集,能夠保證高可用和數(shù)據(jù)一致性;
– 查詢語(yǔ)言類似于SQL,但是針對(duì)時(shí)序數(shù)據(jù)做了優(yōu)化,可以支持大量的維度聚合操作;
– 支持第三方插件,例如Grafana、Telegraf等,用于可視化和數(shù)據(jù)采集;
– 支持多種API類型,例如查詢、寫(xiě)入、批量寫(xiě)入等。
2. 數(shù)據(jù)模型
influxdb的數(shù)據(jù)模型含有三個(gè)核心概念:measurement、tag和field。下面分別介紹:
– Measurement:它是一個(gè)數(shù)據(jù)集,包含多個(gè)數(shù)據(jù)點(diǎn),每個(gè)數(shù)據(jù)集可以包括一個(gè)或多個(gè)field,它們都有相同的時(shí)間戳。一般情況下,把一個(gè)measurement作為數(shù)據(jù)的主題,例如cpu、memory、temperature等;
– Tag:它是measurement的元數(shù)據(jù),用于識(shí)別和過(guò)濾measurement,例如在cpu measurement中可以添加hostname tag,用于區(qū)分不同機(jī)器的數(shù)據(jù)。Tag可以是一個(gè)字符串,也可以是數(shù)字和布爾類型;
– Field:它是特定時(shí)間戳下的一個(gè)數(shù)值,每個(gè)field都可以是浮點(diǎn)類型、整數(shù)類型、以及布爾類型。
下面是influxdb數(shù)據(jù)模型的示意圖:
3. 寫(xiě)入數(shù)據(jù)
influxdb的寫(xiě)入數(shù)據(jù)方式分為兩種:?jiǎn)螚l寫(xiě)入和批量寫(xiě)入。單條寫(xiě)入的寫(xiě)入語(yǔ)法如下:
“`
curl -i -XPOST ‘http://localhost:8086/write?db=mydb’ –data-binary ‘cpu,hostname=myhost value=0.64’
“`
上面的語(yǔ)法表示把0.64的數(shù)值寫(xiě)入到cpu measurement中,并添加了hostname tag,而mydb是數(shù)據(jù)庫(kù)的名稱。通過(guò)HTTP API寫(xiě)入數(shù)據(jù)時(shí),還可以添加很多其他屬性,例如時(shí)間戳、數(shù)據(jù)類型等。
批量寫(xiě)入是將多個(gè)數(shù)據(jù)點(diǎn)一次性寫(xiě)入influxdb的方式,可以大幅度提高寫(xiě)入效率。例如,可以把多條數(shù)據(jù)點(diǎn)放置在一個(gè)數(shù)據(jù)文件中,并通過(guò)客戶端和influxdb建立連接,類似于以下的Push API。
“`
from influxdb import InfluxDBClient
client = InfluxDBClient(host=’localhost’, port=8086)
client.switch_database(‘mydb’)
json_body = [
{
“measurement”: “cpu”,
“tags”: {
“hostname”: “myhost”
},
“time”: “2023-11-03T14:00:00Z”,
“fields”: {
“value”: 0.64
}
}
]
client.write_points(json_body)
“`
4. 查詢數(shù)據(jù)
influxdb的查詢語(yǔ)言很易于學(xué)習(xí),它使用一種類似于SQL的語(yǔ)法,可以從不同的measurement中查詢數(shù)據(jù)。除了常規(guī)的查詢語(yǔ)言之外,還支持豐富的聚合操作,例如sum、mean、max、min等。下面是一個(gè)簡(jiǎn)單的查詢實(shí)例:
“`
SELECT mean(value) FROM cpu WHERE hostname=’myhost’ AND time>’2023-11-03T14:00:00Z’ AND time
“`
上面的語(yǔ)法表示從cpu measurement中查詢hostname為myhost的數(shù)據(jù),時(shí)間范圍在2023-11-03 14:00:00到2023-11-03 15:00:00之間,五分鐘為一個(gè)時(shí)間段進(jìn)行聚合操作。除了常規(guī)的SQL查詢之外,influxdb還支持很多高級(jí)查詢語(yǔ)法,例如移動(dòng)平均、滑動(dòng)窗口等。
5. 應(yīng)用場(chǎng)景
influxdb適用于多種場(chǎng)景,例如:
– 監(jiān)控:可以存儲(chǔ)和查詢各種系統(tǒng)性能指標(biāo)、網(wǎng)絡(luò)流量指標(biāo)、設(shè)備狀態(tài)指標(biāo)等;
– IoT:可以存儲(chǔ)和分析傳感器數(shù)據(jù),例如溫度、濕度、光照等數(shù)據(jù);
– 實(shí)時(shí)分析:可以存儲(chǔ)和分析各種實(shí)時(shí)日志數(shù)據(jù),例如電商網(wǎng)站的訪問(wèn)記錄、用戶點(diǎn)擊記錄等;
– 機(jī)器學(xué)習(xí):可以存儲(chǔ)和查詢大量的時(shí)間序列數(shù)據(jù),例如交通流量、股票價(jià)格等,對(duì)于訓(xùn)練預(yù)測(cè)模型非常有用。
6.
時(shí)序數(shù)據(jù)是大數(shù)據(jù)技術(shù)愈發(fā)重要的一部分,而influxdb作為一款高性能、分布式的時(shí)序數(shù)據(jù)庫(kù),已經(jīng)被廣泛應(yīng)用于各種實(shí)時(shí)數(shù)據(jù)存儲(chǔ)和分析需求。在不同的應(yīng)用場(chǎng)景下,尤其是在物聯(lián)網(wǎng)、機(jī)器學(xué)習(xí)領(lǐng)域,influxdb的強(qiáng)大功能往往具有決定性影響。可以預(yù)見(jiàn),在未來(lái),時(shí)序數(shù)據(jù)庫(kù)的應(yīng)用范圍還會(huì)繼續(xù)擴(kuò)大,influxdb也將繼續(xù)成為開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家們的不二選擇。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
InfluxDB與ElasticSearch
2023,開(kāi)年就經(jīng)歷了疫情,這個(gè)年就過(guò)的有點(diǎn)長(zhǎng)。隨著春暖花開(kāi),全國(guó)各地都逐漸好轉(zhuǎn)了,中國(guó)宴廳加油!
之前使用過(guò)此氏InfluxDB做過(guò)SaaS服務(wù),用于數(shù)據(jù)統(tǒng)計(jì)和展示;也使用過(guò)ES做時(shí)序數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)統(tǒng)計(jì)。那么根據(jù)不同的情況,如何做出選擇呢?
提到數(shù)據(jù)服務(wù),就不能不提讀寫(xiě)性能。
我沒(méi)有實(shí)際做過(guò)壓測(cè),我們就通過(guò)一篇官方文檔,來(lái)了解一下:
InfluxDB,更適用于對(duì)數(shù)字類數(shù)據(jù)本身的計(jì)算和存儲(chǔ),支持?jǐn)?shù)據(jù)統(tǒng)計(jì)函數(shù),支持HttpAPI,支持Grafana;但它不支持全文檢索,不支持Kibana;
ES,適合日志系統(tǒng),也適合數(shù)字類數(shù)據(jù)本身的計(jì)算和存儲(chǔ),特別是坐標(biāo)類數(shù)據(jù),有獨(dú)特的函數(shù)支持;支持HttpAPI,支持Kibana和Grafana。
總的來(lái)說(shuō),ES適用的場(chǎng)景多過(guò)InfluxDB,但也因此,其性能優(yōu)勢(shì)不大,磁盤(pán)存儲(chǔ)成本也會(huì)相對(duì)高一些。
兩者都支持集群和分布式。
據(jù)說(shuō)InfluxDB的最新版本,對(duì)集群功能已經(jīng)不開(kāi)源了,商業(yè)版本支持。開(kāi)源版本,單機(jī)版穩(wěn)定性優(yōu)于集群。
ES的集群搭建,公司也嘗試過(guò),但運(yùn)維成本和服務(wù)器成本都不理想,后改用阿里/騰訊的云套件。
如果搭建數(shù)據(jù)分析晌扒隱處理系統(tǒng),傾向使用InfluxDB;日志系統(tǒng),請(qǐng)使用ES。
部署更建議使用各大云平臺(tái)的產(chǎn)品套件,其安全性、運(yùn)維成本都是較低的。
如何實(shí)現(xiàn)Docker應(yīng)用的自定義彈性伸縮
簡(jiǎn)介
現(xiàn)在有很多客戶很關(guān)心應(yīng)用的自動(dòng)彈性伸縮,有些客戶銷畢也有自己的監(jiān)控框架,并希望能跟阿里云容器服務(wù)進(jìn)行集成。阿里云容器服務(wù)提供了服務(wù)彈性伸縮觸發(fā)器,并能夠跟監(jiān)控框架集成來(lái)實(shí)現(xiàn)自定義的服務(wù)自動(dòng)彈性伸縮。
阿里云容器服務(wù)會(huì)自動(dòng)采集容器的監(jiān)控?cái)?shù)據(jù),并可以通過(guò)集成將監(jiān)控?cái)?shù)據(jù)發(fā)送到三方的監(jiān)控框架中。有了監(jiān)控?cái)?shù)據(jù),我們可以在監(jiān)控框架中定義自己的報(bào)警規(guī)則,當(dāng)指標(biāo)發(fā)生報(bào)警的時(shí)虧伍芹候調(diào)用阿里云容器服務(wù)提供的觸發(fā)器來(lái)進(jìn)行容器的擴(kuò)容或者縮容。
下面用Influxdb,Kapacitor來(lái)介紹怎樣通過(guò)觸發(fā)器跟監(jiān)控框架集成實(shí)現(xiàn)自定義彈性伸縮。
生成服務(wù)的Scaling觸發(fā)器
在阿里云容器服務(wù)的應(yīng)用列表中,點(diǎn)擊要進(jìn)行自動(dòng)擴(kuò)容控制的應(yīng)用,進(jìn)入后點(diǎn)擊“創(chuàng)建觸發(fā)器”
然后選擇“資源伸縮”,并選擇要伸縮的服務(wù)名
生成的觸發(fā)器如下:
調(diào)用sale out的時(shí)候需要添加參數(shù)&type=scale_out&step=2.
部署Influxdb及監(jiān)控
包括監(jiān)控時(shí)序數(shù)據(jù)庫(kù)Influxdb, 監(jiān)控報(bào)警框架Kapacitor,及界面展現(xiàn)Grafana. 我們可以用一個(gè)模板來(lái)部署:
version: ‘2’
services:
influxdb:
image: influxdb:0.13
ports:
“8083:8083”
“8086:8086”
container_name: “influxdb”
labels:
aliyun.monitoring.addon.influxdb: “”
grafana:
image: grafana/grafana:3.0.
ports:
“3000:3000”
links:
influxdb
kapacitor:
image: kapacitor:0.13
ports:
“9092:9092”
volumes:
/etc/acs/:/etc/acs/
environment:
KAPACITOR_INFLUXDB_0_URLS_0=
command: kapacitord -config /etc/kapacitor/kapacitor.conf
模板中通過(guò)標(biāo)簽“ aliyun.monitoring.addon.influxdb”來(lái)指定將阿里云容器服務(wù)中的監(jiān)控?cái)?shù)據(jù)發(fā)送到Influxdb.
在阿里云容器服務(wù)中增加一個(gè)模板,并通過(guò)模板創(chuàng)建應(yīng)用:
部署好的應(yīng)用:
配置Kapacitor報(bào)警規(guī)則
創(chuàng)建報(bào)警規(guī)則文件。在 Kapacitor中配置報(bào)警規(guī)則,并當(dāng)報(bào)警是調(diào)用擴(kuò)容觸發(fā)器URL.
通過(guò)Web遠(yuǎn)程終端或者Docker Exec進(jìn)入Kapacitor容器, 增加報(bào)警規(guī)則,比如我們對(duì)CPU指標(biāo)設(shè)置報(bào)警規(guī)則,創(chuàng)建/etc/橘?zèng)_acs/cpu.tick文件,內(nèi)容如下:
stream
// Select just the cpu measurement from our example database.
|from()
.measurement(‘docker_container_cpu’)
|groupBy(‘a(chǎn)liyun.cluster’, ‘a(chǎn)liyun.service.id’)
|alert()
.crit(lambda: “aliyun.cluster”==’xxxxx’ AND “aliyun.service.id”==’xxxxx’ AND usage_percent” > 70)
.post(‘
yYWRhODQwMDJhNjRmNWVhZjcxZjU1ZTllfG5naW54LWRlZmF1bHR8cmVkZXB3l8MThtZHFxbXJkNXJ
kaHw=&secret=xxx&&type=scale_out&step=1′)
.log(‘/tmp/alerts.log’)
這里對(duì)監(jiān)控的CPU指標(biāo)”docker_container_cpu”按集群及服務(wù)進(jìn)行聚合然后判斷當(dāng)usage_percent>70的時(shí)候進(jìn)行服務(wù)擴(kuò)容。
類似,我們也可以增加一個(gè)縮容的報(bào)警規(guī)則。
定義報(bào)警規(guī)則并啟用 在Kapacitor容器中執(zhí)行如下命令定義并啟用報(bào)警規(guī)則。
kapacitor define cpu_alert -type stream -tick cpu_alert.tick -dbrp telegraf.default;
kapacitor enable cpu_alert
這樣當(dāng)CPU的使用率超過(guò)70%的時(shí)候,會(huì)自動(dòng)調(diào)用擴(kuò)容觸發(fā)器進(jìn)行容器的擴(kuò)容。
時(shí)序數(shù)據(jù)庫(kù) influxdb的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于時(shí)序數(shù)據(jù)庫(kù) influxdb,探究時(shí)序數(shù)據(jù)庫(kù)influxdb的強(qiáng)大功能與應(yīng)用,InfluxDB與ElasticSearch,如何實(shí)現(xiàn)Docker應(yīng)用的自定義彈性伸縮的信息別忘了在本站進(jìn)行查找喔。
香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
新聞名稱:探究時(shí)序數(shù)據(jù)庫(kù)influxdb的強(qiáng)大功能與應(yīng)用(時(shí)序數(shù)據(jù)庫(kù)influxdb)
路徑分享:http://m.5511xx.com/article/cdoshhd.html


咨詢
建站咨詢
