關(guān)于時間序列數(shù)據(jù)的十件事
獲取一份關(guān)于如何充分利用時間序列數(shù)據(jù)的技巧和推薦資源的綜合指南。
譯自10 Things You Need to Know About Time-Series Data,作者 Team Timescale。
我們整理了一份全面的指南,包含提示和推薦資源,幫助您充分利用時間序列數(shù)據(jù)。? 現(xiàn)在,您的數(shù)據(jù)是時間序列嗎?
您可能沒有這樣想過,但請查看我們的示例列表——您可能會感到驚訝。從優(yōu)化數(shù)據(jù)庫性能、與第三方工具集成,到評估時間序列數(shù)據(jù)庫時需要考慮的因素,涵蓋的主題豐富多樣,無論您是時間序列新手還是經(jīng)驗豐富的數(shù)據(jù)庫管理員,都能從中受益。
這份指南匯總了您需要了解的時間序列數(shù)據(jù)庫的相關(guān)信息,內(nèi)容來源于我們的內(nèi)部團隊和活躍的開發(fā)者社區(qū)。(其中一些內(nèi)容可能是復(fù)習(xí),而另一些可能是您未曾了解的。)
10. “大云”供應(yīng)商不一定能提供更好的產(chǎn)品。
Resource:What We Learned From Benchmarking Amazon Aurora PostgreSQL Serverless
沒有人希望一開始就使用一個數(shù)據(jù)庫,結(jié)果發(fā)現(xiàn)它無法擴展或不適合其應(yīng)用程序和系統(tǒng)的增長需求。正如這篇文章指出的那樣,時間序列數(shù)據(jù)庫在數(shù)據(jù)攝取速度、查詢延遲、易用性、可靠性等方面差異很大。
我們有對時間序列數(shù)據(jù)庫性能進行基準(zhǔn)測試的歷史,我們花費數(shù)周時間分析了 Amazon Aurora Serverless 的數(shù)據(jù)攝取性能、查詢速度、成本和可靠性。我們多次仔細(xì)檢查了這些數(shù)字,因為我們幾乎難以置信,但 Timescale 的 PostgreSQL 云平臺:
- 數(shù)據(jù)攝取速度快 35%
- 在除兩個查詢類別外的所有查詢類別中,查詢速度快 1.15 倍到 16 倍
- 數(shù)據(jù)存儲效率提高 95%
- 每小時計算成本降低 52%
- 存儲創(chuàng)建的數(shù)據(jù)每月成本降低 78%
查看完整文章以了解詳細(xì)結(jié)果、關(guān)鍵數(shù)據(jù)庫考慮標(biāo)準(zhǔn)以及復(fù)制結(jié)果和運行您自己的基準(zhǔn)測試的步驟。
圖片
9. 時間序列數(shù)據(jù)非常適合金融服務(wù),從傳統(tǒng)股票市場到加密貨幣。
Resource:Learn how to power a (successful) crypto trading bot with TimescaleDB
閱讀軟件開發(fā)人員和活躍的 TimescaleDB 社區(qū)成員是如何構(gòu)建他的加密交易機器人的——并獲得了 480 倍的回報——使用 TensorFlow、Node.js、TimescaleDB 和機器學(xué)習(xí)情緒分析模型,以及他在此過程中學(xué)到的經(jīng)驗教訓(xùn),以及他對有抱負(fù)的加密交易者的建議。
而且,如果您想嘗試自己的加密分析,請查看我們的分析加密貨幣市場數(shù)據(jù)教程(其中包括分步說明和 5 個以上的示例查詢)。
此外,時間序列數(shù)據(jù)不僅僅是物聯(lián)網(wǎng)、石油和天然氣以及金融領(lǐng)域的利基市場;時間序列數(shù)據(jù)無處不在,從跟蹤包裹遞送車隊物流到監(jiān)控系統(tǒng)和應(yīng)用程序,預(yù)測航班到達時間以及報告空氣質(zhì)量。(查看我們關(guān)于時間序列數(shù)據(jù)的入門指南以了解使時間序列數(shù)據(jù)獨一無二的更多信息。)
8. 持續(xù)優(yōu)化數(shù)據(jù)庫插入速率對于時間序列工作負(fù)載尤其重要。
Resource:Get our 13 tips to improve PostgreSQL Insert performance
對于時間序列數(shù)據(jù),更改被視為插入,而不是覆蓋——當(dāng)您需要保留所有數(shù)據(jù)而不是覆蓋過去的值時,優(yōu)化數(shù)據(jù)庫攝取新數(shù)據(jù)的速度變得至關(guān)重要。
為了幫助您提高數(shù)據(jù)庫性能并針對時間序列場景進行優(yōu)化,Timescale 首席技術(shù)官分享了他的最佳技巧。您將獲得有關(guān)普通 PostgreSQL 的建議——例如如何測試 I/O 性能——以及一些 TimescaleDB 特定的建議。
7. 啟用壓縮可以顯著降低存儲成本,加快查詢速度,并允許您保留更多數(shù)據(jù)。
Resource:Building Columnar Compression for Large PostgreSQL Databases
壓縮算法:它們并非魔法,但卻能顯著降低您的數(shù)據(jù)存儲成本并加快查詢速度。鑒于時間序列數(shù)據(jù)的持續(xù)增長特性,數(shù)據(jù)快速堆積,縮減數(shù)據(jù)存儲需求就顯得尤為關(guān)鍵。
本文將講述我們?nèi)绾螢镻ostgreSQL構(gòu)建靈活、高性能的列式壓縮機制以提高其可擴展性。
? 有趣的事實:通過結(jié)合列式存儲和專門的壓縮算法,我們能夠?qū)崿F(xiàn)令人印象深刻的壓縮率,在任何其他關(guān)系數(shù)據(jù)庫中都無法比擬(+95%)。
6. 有效地使用和查詢您的時間序列數(shù)據(jù),可以將其轉(zhuǎn)化為預(yù)測趨勢和預(yù)測未來事件的工具。
Resource:Replacing kdb+ With PostgreSQL for Time-Series Forecasting
時間序列預(yù)測本身就非常強大。但是,將時間序列數(shù)據(jù)與其他關(guān)系型業(yè)務(wù)數(shù)據(jù)結(jié)合起來,可以幫助您對數(shù)據(jù)(和業(yè)務(wù))如何隨時間變化做出更深入的預(yù)測。在本開發(fā)者問答中,數(shù)據(jù)科學(xué)家Andrew Engel分享了他如何使用TimescaleDB創(chuàng)建機器學(xué)習(xí)管道概念驗證以進行時間序列預(yù)測的故事。
5. 如果你選擇了正確的數(shù)據(jù)庫,你可以將其與你最喜歡的第三方和開源工具集成。
Resource:See our favorite PostgreSQL extensions for time-series
PostgreSQL擁有2萬多個擴展可供選擇,我們非常喜歡它龐大的生態(tài)系統(tǒng)和極高的可擴展性。幸運的是,許多擴展可以幫助您更高效地處理時間序列數(shù)據(jù),而無需切換到全新的數(shù)據(jù)庫。
但是,從哪里開始呢?
為了幫助您找到可能適合您的選項,我們調(diào)查了內(nèi)部團隊成員和活躍的社區(qū)成員,以獲取我們的“必備”擴展列表,其中包括一些鮮為人知但有用的擴展。
?? 獎勵:安裝說明和示例查詢,向您展示如何獲取每個擴展、它的工作原理以及它允許您做什么。
4. 數(shù)據(jù)庫架構(gòu)、靈活性和查詢語言很重要——而且差異很大。
Resource:Read how TimescaleDB and InfluxDB are purpose-built differently — and how this impacts performance
雖然我們的Amazon Aurora基準(zhǔn)測試表明,選擇正確的時間序列數(shù)據(jù)庫并不像從大型云提供商中選擇那么簡單,但我們的InfluxDB比較演示了理解您的需求的重要性,例如查詢語言、開發(fā)者入門時間、生態(tài)系統(tǒng)和完全托管的數(shù)據(jù)庫選項。
我們報告了InfluxDB在哪些方面優(yōu)于TimescaleDB(低基數(shù)查詢),并使用數(shù)據(jù)來展示為什么如果您擁有高基數(shù)數(shù)據(jù)集、想要靈活的托管數(shù)據(jù)庫選項和/或不想學(xué)習(xí)專有的查詢語言,TimescaleDB是更好的選擇。
圖片
說到查詢語言,我們創(chuàng)建了一份備忘單,以幫助您了解InfluxQL、Flux和SQL之間的區(qū)別。
3. Grafana非常適合時間序列,但存在學(xué)習(xí)曲線。
Resource:Watch Guide to Grafana 101: Getting Started With (Awesome) Visualizations
Grafana是一個令人驚嘆的開源可視化工具(Timescale團隊非常喜歡它),非常適合常見的時間序列場景,但是有很多功能你可能不知道如何、何時或為何使用。
為了幫助您了解Grafana為什么非常適合時間序列,Avthar(@avthars) 演示了如何構(gòu)建6多種可視化——從世界地圖到儀表——用于物聯(lián)網(wǎng)、DevOps等等。您將看到真實的示例,并獲得創(chuàng)建您自己的(很棒的)可視化所需的最佳實踐、代碼示例和靈感。
2. 您可以托管您的時間序列數(shù)據(jù),并且只為存儲的數(shù)據(jù)付費。
Resource:Navigating a Usage-Based Model for PostgreSQL
對于時間序列數(shù)據(jù),每個數(shù)據(jù)點都作為新值插入,而不是覆蓋先前(即較早的)值。因此,時間序列工作負(fù)載的擴展速度遠(yuǎn)快于其他類型的數(shù)據(jù),您需要一個能夠與您一起發(fā)展的數(shù)據(jù)庫——不會產(chǎn)生天文數(shù)字的成本或影響性能。
使用Timescale Cloud,您只需為實際使用的Timescale服務(wù)存儲付費,無需價格陷阱或隱藏成本。這種新的存儲體驗簡單、透明,并且可以為您節(jié)省資金——尤其是在結(jié)合壓縮和分層存儲等功能時。??
1. 用于時間序列的關(guān)系型數(shù)據(jù)庫可以無限擴展
Resource:Scaling PostgreSQL for Cheap: Introducing Tiered Storage in Timescale
最后,我們想談?wù)剷r間序列數(shù)據(jù):關(guān)系數(shù)據(jù)庫可以無限擴展。為了證明這一點,我們構(gòu)建了分層存儲,這是一種多層存儲架構(gòu),旨在為Timescale平臺上的時間序列和分析數(shù)據(jù)庫實現(xiàn)無限的、低成本的可擴展性。
通過我們的分層存儲架構(gòu),您現(xiàn)在可以將較舊的、訪問頻率較低的數(shù)據(jù)存儲在低成本的存儲層中,同時仍然能夠訪問它——而無需犧牲頻繁訪問數(shù)據(jù)的性能。最棒的是?它非常經(jīng)濟實惠:我們的低成本存儲層的價格為每GB/月0.021美元——比Amazon S3更便宜。
圖片
總結(jié)
如果您更喜歡自行管理TimescaleDB,請查看我們的GitHub倉庫以獲取安裝選項。