為什麼在NoSQL上使用TimescaleDB?

2021-08-20 13:57:08 字數 1003 閱讀 4026

與一般nosql資料庫(例如mongodb,cassandra)或更專門的時間導向資料庫(例如influxdb,kairosdb)相比,timescaledb提供了定性和定量差異:

普通sql:即使在規模上,timescaledb也可以為時間序列資料提供標準sql查詢的功能。大多數(所有?)nosql資料庫都需要學習新的查詢語言或使用最好的「sql-ish」(它仍然與現有工具相容)。

操作簡單:使用timescaledb,您只需要為關係資料和時間序列資料管理乙個資料庫。否則,使用者通常需要將資料儲存到兩個資料庫中:「正常」關聯式資料庫和第二個時間序列資料庫。

join可以通過關係資料和時間序列資料執行。

對於不同的查詢集,查詢效能更快。在nosql資料庫中,更複雜的查詢通常是緩慢或全表掃瞄,而有些資料庫甚至無法支援許多自然查詢。

像postgresql一樣管理,並繼承對不同資料型別和索引(b樹,雜湊,範圍,brin,gist,gin)的支援。

對地理空間資料的本地支援:儲存在timescaledb中的資料可以利用

postgis的幾何資料型別,索引和查詢。

第三方工具:timescaledb支援任何可以說sql的東西,包括像tableau這樣的bi工具。

然後,如果以下任一情況屬實,則可能不想使用timescaledb:

簡單的讀取要求:如果您只需要快速鍵值查詢或單列累積,則記憶體或列導向資料庫可能更合適。前者顯然不能擴充套件到相同的資料量,但是,後者的效能明顯低於更複雜的查詢。

非常稀疏或非結構化的資料:儘管timescaledb利用postgresql對json / jsonb格式的支援,並且相當有效地處理稀疏性(空值的點陣圖),但在某些情況下,無模式體系結構可能更合適。

重要的壓縮是乙個優先事項:基準測試顯示在zfs上執行的timescaledb獲得約4倍的壓縮率,但壓縮優化的列儲存可能更適合於更高的壓縮率。

不頻繁或離線分析:如果響應時間較慢(或響應時間限於少量預先計算的度量標準),並且您不希望許多應用程式/使用者同時訪問該資料,則可以避免使用資料庫,而只是將資料儲存在分布式檔案系統中

為什麼使用nosql

工作中遇到的挑戰 1,高併發讀寫 web2.0 資料庫併發負載非常高,往往達到每秒上萬次的讀寫請求 2,高容量儲存和高效儲存 web2.0 通常需要在後台資料庫中儲存海量資料,如何儲存海量資料並進行高效的查詢往往是乙個挑戰 3,高擴充套件性和高可用性 隨著系統的使用者量和訪問量與日俱增,需要資料庫能...

為什麼要使用NoSQL

前面 為什麼要使用nosql 和 關聯式資料庫還是nosql資料庫 兩篇從大體上介紹了為什麼要用nosql,何時該用nosql。經常有朋友遇到困惑,看到nosql的介紹,覺得很好,但是卻不知道如何正式用到自己的專案中。很大的原因就是思維固定在mysql中了,他們問得最多的問題就是用了nosql,我如...

為什麼要使用NoSQL資料庫

工作中遇到的挑戰 1,高併發讀寫 web2.0 資料庫併發負載非常高,往往達到每秒上萬次的讀寫請求 2,高容量儲存和高效儲存 web2.0 通常需要在後台資料庫中儲存海量資料,如何儲存海量資料並進行高效的查詢往往是乙個挑戰 3,高擴充套件性和高可用性 隨著系統的使用者量和訪問量與日俱增,需要資料庫能...