海量資料“寫入、共用、隱藏、計算”最佳實踐

來源:互聯網
上載者:User

摘要: 標籤PostgreSQL , 冷熱分離, 資料共用, 打破孤島, 無盤工作, 隱藏計算分離, 行為資料, 曲目資料, 金融資料, 監控資料, 物聯網, GIS , 範圍, 陣列, 圖片幕後資料是為商務服務的,商務方為了更加透徹的掌握商務本身或者使用該商務的群體,往往會收集,或者讓套用埋點,收集其他的日誌。

幕後

資料是為商務服務的,商務方為了更加透徹的掌握商務本身或者使用該商務的群體,往往會收集,或者讓套用埋點,收集其他的日誌。

隨著用戶量、用戶活躍度的增長,時間的積累等,資料產生的速度越來越快,資料堆積的量越來越大,資料的維度越來越多,資料類型越來越多,資料孤島也越來越多。

日積月累,給企業IT帶來諸多負擔,IT成本不斷增加,收益確不見得有多高。

pic

上圖描繪了企業中可能存在的問題:

1. 資料孤島問題嚴重(如果沒有巨量資料平臺時)。

2. 對成本預估不足,計算能力擴容麻煩,又或者鋪張浪費嚴重。

3. 資料冗餘問題醒目。

4. 隱藏成本昂貴。

5. 商務萎縮後硬體成為固定資產,IT負擔嚴重,幾乎沒有硬體伸縮能力。

6. 資料量太大,幾乎無法備份。

7. 商務需求多,資料種類多,剖析成本、開發成本高昂。

本文將針對這個場景,給出一個比較合理的方案,靈活使用,可以減輕企業IT成本,陪伴企業高速成長。

一個包裹,從攬件、發貨、運輸、中轉、配送到簽收整個流程中會產生非常多的追蹤資料,每到一個節點,都會掃描一次記錄包裹的狀態資訊。

運輸程序中,車輛與包裹關聯,車輛本身採集的曲目、油耗、車輛狀態、司機狀態等資訊。

配送程序,快遞員的置放資訊、包裹的配送資訊都會被追蹤,也會產生大量的記錄。

一個包裹在後臺可能會產生上百條追蹤記錄。

運輸的車輛,一天可能產生上萬的曲目記錄。

配送小哥,一天也可能產生上萬條曲目記錄。

我曾經分享過一個物流配送動態規劃的話題。有興趣的童鞋也可以參考

《聊一聊雙十一背後的技術 - 物流、動態路徑規劃》

物流行業產生的行為資料量已經達到了海量等級。

怎樣才能有效對這些資料進行處理呢?

比如:

即時按置放追蹤附近的快遞員。

即時統計包裹的流量,快遞員的調度,車輛的調度,倉庫的選址等等一系列的需求。

2. 金融

金融產業也是資料的生產大戶,使用者的交易,企業的交易,證券資料等等。

資料量大,要求即時計算,要求有比較豐富的統計學剖析函數等。

我曾經分享過一個關於模擬證券交易的系統需求剖析。有興趣的童鞋也可以參考

《PostgreSQL 證券產業資料庫需求剖析與套用》

3. 物聯網

物聯網產生的資料有時序屬性,有流計算需求(例如到達閾值觸發),有事後剖析需求。

資料量龐大,有資料壓縮需求。

我剛好也寫過一些物聯網套用的資料庫屬性剖析,這些屬性可以說明物聯網實現資料的壓縮、流計算等需求。

《流計算風雲再起 - PostgreSQL攜PipelineDB力挺IoT》

《旋轉門資料壓縮演算法在PostgreSQL中的實現 - 流式壓縮在物聯網、監控、感應器等場景的套用》

《PostgreSQL 物聯網黑科技 - 瘦身幾百倍的索引(BRIN index)》

《一個簡單演算法可以說明物聯網,金融 用戶 節約98%的資料存放區成本》

《"物聯網"串流套用 - 用PostgreSQL即時處理(萬億每天)》

《PostgreSQL 黑科技 range 類型及 gist index 助力物聯網(IoT)》

物聯網還有一個屬性,感應器上報的資料往往包括數位範圍(例如溫度範圍)、地理位置、圖片等資訊,如何強烈影響隱藏,查詢這些類型的資料呢?

4. 監控

監控產業,例如對商務狀態的監控,對伺服器狀態的監控,對網路、隱藏等硬體狀態的監控等。

監控產業具有比較強的商務幕後,不同的垂直產業,對監控的需求也不一樣,處理的資料類型也不一樣。

例如某些產業可能需要對置放進行監控,如公車的曲目,出了置放電子圍欄,發出警示。換了司機駕駛,發出警告。等等。

pic

5. 公安

公安的資料來自多個領域,例如 通訊記錄、出行記錄、消費記錄、網路攝影機拍攝、社交、購物記錄 等等。

公安的資料量更加龐大,一個比較典型的場景是風險控制、抓捕嫌犯。涉及基於地理位置、時間維度的人物關聯剖析(圖式搜尋)。

如何才能滿足這樣的需求呢?

6. 其他產業

其他不再列舉。

產業痛點

如何解決資料孤島,打通資料共用管道?

如何高效率的寫入日誌、行為曲目、金融資料、曲目資料等?

如何強烈影響即時處理資料,根據閾值警示通知,即時剖析等?

如何解決巨量資料的容災、備份問題?

如何解決巨量資料的壓縮和效率問題?

如何解決資料多維度、類型多,計算複雜的問題?

如何解決企業IT架構彈性伸縮的問題?

總結起來幾個關鍵字:

寫入、共用、隱藏、計算。

方案

用到三個元件:

pic

1. RDS PostgreSQL

支援時序資料、塊級索引、倒排索引、多核並行、JSON、陣列隱藏、OSS_FDW外部讀寫等屬性。

解決OLTP,GIS套用、複雜查詢、時空資料處理、多維剖析、冷熱資料分離的問題。

2. HybridDB PostgreSQL

支援列隱藏、水準擴充、塊級壓縮、豐富的資料類型、機器學習服務庫、PLPYTHON、PLJAVA、PLR程式設計、OSS_FDW外部讀寫等屬性。

解決海量資料的計算問題。

3. OSS 物件隱藏

多個RDS實例之間,可以通過OSS_FDW共用資料。

OSS多複本、跨域複製。

解決資料孤島、海量資料存放區、跨機房容災、海量資料備份等問題。

1 寫入

pic

資料寫入分為3條路徑:

1. 線上即時寫入,可以走RDS SQL介面,單個實例能達到 百萬行/s 以上的寫入速度。

2. 批量准即時寫入,可以走HybridDB SQL介面,單個實例能達到 百萬行/s 以上的寫入速度。

3. 批量准即時寫入,比如寫檔案,可以走OSS寫入介面,頻寬彈性伸縮。

2 共用

多個RDS實例之間,可以通過OSS_FDW共用資料。

例如A商務和B商務,使用了兩個RDS資料庫實例,但是它們有部份需求需要共用資料,傳統的方法需要用到ETL,而現在,使用OSS_FDW就可以實現多實例的資料共用,而且效率非常高。

pic

通過RDS PostgreSQL OSS_FDW的並行讀寫功能(同一張表的檔案,可以開多個workerprocess流程並行讀寫),共用資料的讀寫效率非常高。

pic

並行體現三個方面:OSS讀寫並行、RDSPostgreSQL多核計算並行、RDS PG或HybridDB的多機並行。

pic

3 隱藏

對於即時資料,使用RDS PostgreSQL, HybridDB的本機資料隱藏。對於需要剖析、需要共用的資料,使用OSS進行隱藏。

OSS相比計算資源的隱藏更加的廉價,在確保靈活性的同時,降低了企業的IT成本。

通過OSS物件隱藏,解決了企業的資料冗余、成本高等問題,滿足了資料的備份、容災等需求。

4 計算

pic

通過RDS PostgreSQL, HybridDB, OSS的三個基本元件,實現了計算資源、隱藏資源的分離。

因為計算節點的資料量少了(大部分數據都存在OSS了),計算節點的擴容、縮容、容災、備份都更加方便。

計算本身分為以下幾種

1. 流式計算

流式計算分為兩種,一種是即時統計,另一種是設定閾值進行即時的警示。

通過pipelinedb(base on postgresql)可以實現這兩類流計算。

好處:

SQL標準介面,豐富的內建函數支援複雜的流計算需求,豐富的資料類型(包括GIS,JSON等)支援其他的流計算商務場景,非同步訊息通知機制支援第二類流計算需求。

pipelinedb進行中外掛程式化改造,以後可以作為PostgreSQL的外掛程式使用。

https://github.com/pipelinedb/pipelinedb/issues?q=is%3Aissue+is%3Aopen+label%3A%22extension+refactor%22

pic

例如在監控領域,使用流計算的非同步訊息機制,可以避免傳統主動問詢監控的無用功問題。

pic

2. 即時互動商務

傳統的OLTP需求,使用RDSPostgreSQL可以滿足。

PostgreSQL的屬性包括:GIS、JSON、陣列、冷熱分離、水準分庫、K-V類型、多核並行、塊級索引、倒排索引等。

PostgreSQL支援的場景包括:流計算、圖式搜尋、時序資料、路徑規劃、柔邊查詢、全文檢索索引、相似查詢、秒殺、基因、金融、化學、GIS套用、複雜查詢、BI、多維剖析、時空資料搜尋等。

覆寫銀行、保險、證券、物聯網、互連網、遊戲、天文、出行、電商、傳統企業等產業。

3. 准即時剖析

結合OSS物件隱藏,RDS PostgreSQL和HybridDB都可以實現准即時的剖析。

同一份OSS的資料,也可以在多個實例之間進行共用,同時存取。

4. 離線剖析、挖掘

結合OSS物件隱藏,RDS PostgreSQL和HybridDB都可以實現對離線資料的剖析和挖掘。

RDS PostgreSQL 支援單機多核並行,HybridDBfor PostgreSQL支援多機並行。使用者可以根據計算量進行選擇。

計算需要具備的能力

計算的靈魂是類型的支援、以及類型的處理。

1. PostgreSQL內建了豐富的類型支援,包括(數位、字元字串、時間、布林值、列舉、陣列、範圍、GIS、全文檢索索引、bytea、大物件、幾何、位元、XML、UUID、JSON、複合類型等),同時支援用戶自訂的類型。可以支援幾乎所有的商務場景

2. 操作符,為了滿足對資料的處理需求,PG對每一種支援的類型,都支援非常豐富的動作,

3. 內建函數,PG內建了豐富的統計學函數、三角函數、GIS處理函數,MADlib機器學習服務函數等。

4. 自訂計算邏輯,使用者可以通過C, python,java, R等語言,定義資料的處理函數。擴充PostgreSQL, HybridDB for PostgreSQL的資料處理能力。

5. 彙總函式,內建了豐富的彙總函式,支援資料的統計。

6. 視窗查詢功能的支援。

7. 遞迴查詢的支援。

8. 多維分析語法的支援。

方案小結

RDS PostgreSQL 優勢

主要體現在這幾個方面

1. 效能

RDS PostgreSQL主要處理線上交易以及少量的准即時剖析。

PG OLTP的效能可以參考這篇文件,效能區間屬於商務資料庫水準。

《資料庫界的華山論劍 tpc.org》

PG 的OLAP剖析能力,可以參考這篇文件,其多核並行,JIT,運算元複用等屬性,使得PG的OLAP能力相比其他RDBMS資料庫有質的升階。

《剖析加速引擎黑科技 - LLVM、列存、多核並行、運算元複用 大聯姻 - 一起來開啟PostgreSQL的百寶箱》

PostgreSQL 10 在HTAP方面還有其他的美化。

2. 功能

功能也是PostgreSQL的強項,在上一章《計算需要具備的能力》有詳細介紹。

3. 擴充能力

計算能力擴充,通過增加CPU,可以擴充複雜計算的效能。

隱藏能力擴充,通過OSS隱藏以及oss_fdw外掛程式,可以擴充RDSPG的隱藏能力,打破隱藏極限。

4. 成本

隱藏成本:由於大部分需要分離的資料都隱藏到OSS了,使用者不再需要考慮這部份的容災、備份問題。相比隱藏在資料庫中,隱藏成本大幅降低。

開發成本:RDS PG, HybridDB PG都支援豐富的SQL標準介面,存取OSS中的資料(通過TABLE介面),使用的也是SQL標準介面。節省了大量的開發成本,

維修成本:使用雲端服務,運維成本幾乎為0。

5. 覆寫產業

覆寫了銀行、保險、證券、物聯網、互連網、遊戲、天文、出行、電商、傳統企業等產業。

HybridDB PostgreSQL 優勢

1. 效能

HybridDB PostgreSQL為MPP架構,計算能力出眾。

2. 功能

在上一章《計算需要具備的能力》有詳細介紹。

3. 擴充能力

計算能力擴充,通過增加計算節點數,可以擴充複雜計算的效能。

隱藏能力擴充,通過OSS隱藏以及oss_fdw外掛程式,可以擴充RDSPG的隱藏能力,打破隱藏極限。

4. 成本

隱藏成本:由於大部分需要分離的資料都隱藏到OSS了,使用者不再需要考慮這部份的容災、備份問題。相比隱藏在資料庫中,隱藏成本大幅降低。

開發成本:RDS PG, HybridDB PG都支援豐富的SQL標準介面,存取OSS中的資料(通過TABLE介面),使用的也是SQL標準介面。節省了大量的開發成本,

維修成本:使用雲端服務,運維成本幾乎為0。

5. 覆寫產業

覆寫了銀行、保險、證券、物聯網、互連網、遊戲、天文、出行、電商、傳統企業等產業。

典型用法

pic

pic

參考

《RDSPostgreSQL : 使用 oss_fdw 讀寫OSS物件隱藏》

《HybridDBPostgreSQL : 使用 oss_fdw 讀寫OSS物件隱藏》


相關產品:

物件隱藏OSS

安全管家

巨量資料計算服務(MaxCompute)

雲端服務器ECS

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.