改善低效率的多資料源聚合

多資料來源的聚合與關聯工作也是在傳統資料處理上常見的工作之一,但一直以來其處理效率都不會太好且缺乏平行處理能力。原因是因爲查詢工作需要往返於多個來源之間,產生的額外開銷相對就比較多,其往返成本與問題較單一查詢來得更爲明顯。

傳統的多資料源的聚合和關聯工作缺點

我們在處理傳統的資料源聚合與關聯工作時,通常會遇到如下這些問題:

  • 不易實作:無論是資料庫管理員還是應用程式開發人員,都是一種負擔。
  • 負載高:每個需求和行為都需要查詢資料庫或爬資料,導致所有系統都極為忙碌。
  • 效率低:需要時才開始查詢、聚合、轉換處理,如抓取資料如大海撈針,效率極低。
  • 不同步:不同來源的不同步資料輸入會造成大量等待和重試(Retry)。
  • 成本高:大量跨資料庫關聯查詢呼叫伴隨大量 Round-Trip 來回呼叫問題。
  • 衝擊大:資料被越多應用需要,資料源負擔就越大,效能衝擊越嚴重。

採用 GRAVITY 獲得的改善

在導入 GRAVITY 之後,我們可以利用不同的管線將各資料源的資料拉進快取,並利用 CDC 的事件通知功能及時同步變更資料,如此在 GRAVITY 數據中台裡面就能獲得所有資料源的最新資料。然後根據應用端訂閱的要求(最小粒度可以精細到“欄位”)把資料彙整後,再建立新的管線將聚合好的資料落到應用端的專屬資料庫即可。

如此一來,資料源就不再會遭受大量的關聯查詢衝擊,而程式端也不需要設計復雜的關聯作業而更能專注於本身的業務邏輯即可。更重要的是,由於數據中台所發揮的資料供給效率的提升,整個資料系統相關的資料庫與應用程式都能同時享受到效能提升的好處!

導入 GRAVITY 之後的設計改良

有了 GRAVITY 數據中台的支援,各種原有的復雜查詢機制與流程都可大幅簡化,主要體現爲如下這些要點:

  • 平行化進行聚合和關聯工作
  • 資料結果在應用執行前就已經準備好
  • 每個需求直接讀取最終的 Virtual Table