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