資料治理,從打造隨選資料流開始

2021 iThome Cloud Edge Summit 臺灣雲端大會

古哥
pgsql-tw
Nov 15, 2021

--

資料治理,從打造隨選資料流開始 (簡報)

資料治理,意即根據資料來進行各種治理策略的擬定。紙上談兵可能很美好,但關鍵是資料如何源源不絕地送到決策者的眼前。本文主要分享一個資料處理的架構,以 PostgreSQL 的 Logical Replication 來抄寫資料以組合成各種決策主題資料庫,能夠達到資料安全隔離系統資源獨享隨選資料流的訴求。

透過 Logical Replication,一旦你設定完成之後,資料便會源源不絕地流進每一個主題資料庫,形成每一個主題需要的資料內容,就更容易進行資料治理的決策。

記得 Logical Replication 可以在不同版本之間相容,所以你可以自由地混用不同版本的 PostgreSQL;需要升級的時候也可以逐步升級。

Data Source Layer

在這一層的設計中,你需要盤點所有資料的源頭。外部資料可以透過 Foreign Data Wrapper 的方式直接取用資料,或是採用其他的資料抄寫機制。這一層的目標是把資料一致化儲存於 PostgreSQL 的資料庫之中。

Storage Layer

考慮到虛擬化管理的便利性,你不應該製造一個超大型資料庫,而是儘可能平均將大量資料拆分為多個資料庫主機。在這個層次只需要考慮儲存空間,而不用在乎交互查詢的需求,所以可以任意調整 Table 的儲存主機,以達到平衡儲存的目的。

Computing Layer

在 Computing Layer 中就是真正提供查詢運算的資料庫,你需要設定好各種專屬的主題資料庫(Topic database),以針對資料庫做不同的查詢最佳化。拆分成多個資料庫,完全避免了交易鎖定而相互干擾的可能性,同時也做到了安全的資料隔離。在 Computing Layer 處理過的資料,亦可以同時是 Storage Layer,把它的資料成果再提供給其他資料庫主機訂閱使用。

Connection Layer

如果你的主題資料庫非常熱門,那良好的管理資料庫連線就是一件很重要的事。具體來說就是透過 PgBouncer 來幫助你分流及分配適當數量的資料庫連線,可以讓資料庫系統在有限的資源中專注於處理資料。

Don’t over design it!

你可能會覺得以上有些多餘,當資料源及資料量不多的時候確實如此。所以即使你認同了,也千萬不要一下子就建置過多的資料庫主機。這些資料處理層都是可以彈性合併或拆分的。

Speed up the process

無論使用了什麼方法,當資料處理的結果可以持續性且穩定地提供之時,如果你作為一個經營的決策者,你的舞台已經完成,加速決策流程的鑰匙已經掌握在你的手上。因為能夠做好決策的,不是資料,而是握有決策鑰匙的你而已。

--

--

古哥
pgsql-tw

解決不了問題,就解決提出問題的人