使用“時(shí)間序列數(shù)據(jù)庫(kù)”的案例

一種根據(jù)特定的業(yè)務(wù)需求和用例,從關(guān)系型數(shù)據(jù)庫(kù)中衍生出了許多新數(shù)據(jù)庫(kù)。從內(nèi)存中的鍵值存儲(chǔ)到圖形數(shù)據(jù)庫(kù),從地理空間數(shù)據(jù)庫(kù)到時(shí)間序列數(shù)據(jù)庫(kù)。所有這些不同類型的數(shù)據(jù)庫(kù)都有特定的用途,其中使用關(guān)系數(shù)據(jù)庫(kù)的一般解決方案不是很有效。

盡管有許多不同類型的數(shù)據(jù)庫(kù),但在這里我們將研究時(shí)間序列數(shù)據(jù)庫(kù)-處理時(shí)間序列數(shù)據(jù)所需的數(shù)據(jù)庫(kù)。

由時(shí)間間隔內(nèi)某物的連續(xù)測(cè)量組成的數(shù)據(jù)是時(shí)間序列數(shù)據(jù)。

隨著現(xiàn)代化金融交易與物聯(lián)網(wǎng)的出現(xiàn),需要時(shí)間序列數(shù)據(jù)庫(kù)是顯而易見(jiàn)的。股票和加密貨幣的價(jià)格每秒鐘變化一次。為了測(cè)量這些變化的數(shù)據(jù)并對(duì)該數(shù)據(jù)進(jìn)行分析,我們需要一種有效的存儲(chǔ)和檢索數(shù)據(jù)的方法。

隨著物聯(lián)網(wǎng)設(shè)備在我們生活中的空前滲透,物聯(lián)網(wǎng)設(shè)備生成的數(shù)據(jù)每天都在增加。無(wú)論是汽車診斷,房屋的溫度讀數(shù),迷路的狗的GPS位置,物聯(lián)網(wǎng)設(shè)備無(wú)處不在。

物聯(lián)網(wǎng)設(shè)備只能做一件事情,一件事情。通過(guò)設(shè)備上的傳感器捕獲信息,并將其發(fā)送到服務(wù)器進(jìn)行存儲(chǔ)。由于現(xiàn)有的通信協(xié)議對(duì)于這種輕量級(jí)的高頻數(shù)據(jù),流數(shù)據(jù)來(lái)說(shuō)太復(fù)雜了,因此開(kāi)發(fā)了MQTT來(lái)解決物聯(lián)網(wǎng)的消息傳遞問(wèn)題。

但是時(shí)間序列數(shù)據(jù)不僅限于物聯(lián)網(wǎng),它也滲透到整個(gè)互聯(lián)網(wǎng)。捕獲搜索引擎查詢,主題標(biāo)簽,社交媒體帖子的病毒性等趨勢(shì)也可以生成時(shí)間序列數(shù)據(jù)。它并沒(méi)有就此結(jié)束。在由軟件驅(qū)動(dòng)的世界中,記錄和審核安全性和合規(guī)性至關(guān)重要。所有這些數(shù)據(jù)也可以歸類為時(shí)間序列數(shù)據(jù)。

專門(mén)設(shè)計(jì)時(shí)間序列數(shù)據(jù)庫(kù)來(lái)處理由于捕獲,存儲(chǔ)和分析來(lái)自一個(gè)或多個(gè)上述來(lái)源的時(shí)間序列數(shù)據(jù)而引起的問(wèn)題。因此,為簡(jiǎn)單起見(jiàn),讓我們將時(shí)間序列數(shù)據(jù)定義為具有以下內(nèi)容的數(shù)據(jù):

  • 令人難以置信的高容量(來(lái)自測(cè)量的連續(xù)數(shù)據(jù))
  • 自然時(shí)間順序(時(shí)間是一個(gè)重要的維度)
  • 作為整個(gè)數(shù)據(jù)集更有價(jià)值(比單個(gè)記錄更有價(jià)值

有了這些信息,時(shí)間序列數(shù)據(jù)庫(kù)應(yīng)該能夠存儲(chǔ)大量數(shù)據(jù),并具有大規(guī)模記錄掃描,數(shù)據(jù)分析和數(shù)據(jù)生命周期管理的能力。如前所述,傳統(tǒng)的事務(wù)數(shù)據(jù)庫(kù)雖然可以用于存儲(chǔ),檢索和處理時(shí)間序列數(shù)據(jù),但是并不能充分利用可用資源。

特定的問(wèn)題需要特定的解決方案。

現(xiàn)在,隨著公司意識(shí)到這一事實(shí),他們開(kāi)始使用專門(mén)的數(shù)據(jù)庫(kù)來(lái)解決特定的問(wèn)題。這回到了我開(kāi)始這篇文章所談?wù)摰膬?nèi)容。在所有其他數(shù)據(jù)庫(kù)中,時(shí)間序列數(shù)據(jù)庫(kù)在過(guò)去兩年中的采用率更高(截至2020年12月的數(shù)據(jù))。

時(shí)間序列數(shù)據(jù)庫(kù)使用率增加約2.5倍的主要原因是云和數(shù)據(jù)技術(shù)的融合,以及能夠從較早捕獲數(shù)據(jù)的地方捕獲數(shù)據(jù)的能力,即,汽車的引擎,冰箱,數(shù)十億個(gè)設(shè)備的位置數(shù)據(jù)等等。除了新的來(lái)源外,公司還意識(shí)到一些較舊的來(lái)源畢竟并不真正適合于事務(wù)數(shù)據(jù)庫(kù)。所有這些都為更廣泛地采用時(shí)間序列數(shù)據(jù)庫(kù)做出了貢獻(xiàn)。

時(shí)間序列數(shù)據(jù)庫(kù)

有了合理的時(shí)間序列數(shù)據(jù)庫(kù),讓我們研究一下如果要嘗試時(shí)間序列數(shù)據(jù)庫(kù)可以使用哪些不同的選項(xiàng)。可以在DB-engines網(wǎng)站上找到完整的時(shí)間序列數(shù)據(jù)庫(kù)列表。我將談?wù)撈渲械娜齻€(gè)。

TimescaleDB

作為時(shí)間序列的PostgreSQL的產(chǎn)品,它很快就引起了您的注意。默認(rèn)情況下,PostgreSQL對(duì)任何東西都是一種贊美。借助超表和大塊等新的體系結(jié)構(gòu),TimescaleDB在插入方面的性能提高了15倍以上,在查詢性能上也有了顯著提高。

盡管與大多數(shù)其他時(shí)間序列數(shù)據(jù)庫(kù)一樣,主要的云提供商都沒(méi)有與大型云提供商在云中針對(duì)TimescaleDB進(jìn)行完全集成的解決方案,但TimescaleDB可以在所有這些數(shù)據(jù)庫(kù)上無(wú)縫運(yùn)行。例如,如果您的基礎(chǔ)架構(gòu)位于AWS中,并且您不想在Timescale Cloud中運(yùn)行您的TimescaleDB實(shí)例,則可以使用EC2實(shí)例來(lái)安裝官方的TimescaleDB AMI。

InfluxDB

與在PostgreSQL(關(guān)系數(shù)據(jù)庫(kù))中獲得靈感的TimescaleDB不同,該數(shù)據(jù)庫(kù)是從頭開(kāi)始編寫(xiě)的NoSQL時(shí)間序列數(shù)據(jù)庫(kù)。盡管TimescaleDB具有站在被廣泛接受和欽佩的關(guān)系數(shù)據(jù)庫(kù)的肩膀上的優(yōu)勢(shì),但I(xiàn)nfluxDB卻走了一條不同的道路。InfluxDB是時(shí)間序列最熱門(mén)的數(shù)據(jù)庫(kù)之一,但是根據(jù)TimescaleDB的研究,它在許多方面都無(wú)法擊敗TimescaleDB。

話雖如此,InfluxDB具有很多功能。除了查詢語(yǔ)言InfluxQL和Flux外,InfluxDB還開(kāi)發(fā)了一種干凈,輕量,基于文本的協(xié)議,該協(xié)議用于將點(diǎn)寫(xiě)入數(shù)據(jù)庫(kù)。值得贊揚(yáng)的是,這已被其他時(shí)間序列數(shù)據(jù)庫(kù)(如QuestDB)采用。

與TimescaleDB一樣,InfluxDB也提供了開(kāi)箱即用的云解決方案,但是您仍然可以決定在其中一個(gè)云平臺(tái)上運(yùn)行InfluxDB。例如,如果您在AWS上運(yùn)行它,則將對(duì)CloudWatch指標(biāo),Grafana,RDS,Kinesis等具有本地支持。總而言之,一個(gè)非常好的數(shù)據(jù)庫(kù)。由于它是一個(gè)相當(dāng)新的事物,因此很難說(shuō)出它與基于關(guān)系數(shù)據(jù)庫(kù)的時(shí)間序列數(shù)據(jù)庫(kù)的競(jìng)爭(zhēng)程度。

QuestDB

QuestDB是時(shí)間序列數(shù)據(jù)庫(kù)列表中的最新成員,它是最新一批YCombinator之一。QuestDB的一些主要差異是列式存儲(chǔ),低內(nèi)存占用量,關(guān)系模型在時(shí)間序列上的使用以及可伸縮的無(wú)模式提取。與大多數(shù)時(shí)間序列數(shù)據(jù)庫(kù)類似,QuestDB還使用官方AMI和Kubernetes Helm Charts在AWS上提供云部署選項(xiàng)。

QuestDB還采用了InfluxDB Line協(xié)議進(jìn)行提取,而不必?fù)?dān)心隨著數(shù)據(jù)結(jié)構(gòu)的變化而更改架構(gòu)。作為列式數(shù)據(jù)庫(kù),QuestDB無(wú)縫處理新列的創(chuàng)建,因此支持無(wú)模式提取

盡管在初期,QuestDB幾乎提供了對(duì)ANSI SQL的完全支持以及對(duì)SQL方言的一些補(bǔ)充,但它創(chuàng)建了許多完全獨(dú)特的功能,使其成為可行的替代方法,可能比市場(chǎng)上的其他一些主要數(shù)據(jù)庫(kù)更好。

結(jié)論

盡管還有其他幾個(gè)數(shù)據(jù)庫(kù),但我現(xiàn)在只討論了這三個(gè)數(shù)據(jù)庫(kù)。從可公開(kāi)獲得的數(shù)據(jù)中可以明顯看出,向時(shí)序數(shù)據(jù)的時(shí)序數(shù)據(jù)庫(kù)的轉(zhuǎn)移。越來(lái)越多的公司將開(kāi)始使用時(shí)間序列數(shù)據(jù)庫(kù)作為其數(shù)據(jù)庫(kù)堆棧的一部分,不一定取代關(guān)系數(shù)據(jù)庫(kù),而是增加了其數(shù)據(jù)功能。這就是為什么今年不僅會(huì)對(duì)時(shí)間序列數(shù)據(jù)庫(kù)而且對(duì)市場(chǎng)上出現(xiàn)的所有其他專用數(shù)據(jù)庫(kù)特別令人興奮的原因。

參考

The Case for Using Timeseries Databases

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容