巨杉湖倉一體技術解讀|流式計算實現秒級資料入湖

SequoiaDB從「多模資料湖」、「實時資料湖」發展到「湖倉一體」架構,為客戶提供「資料核心」所需的全量資料儲存,實時對客服務,及基於統一資料來源的分析能力,充分啟用客戶的離線資料。當中,資料入湖的時效性直接影響整體資料應用效果,巨杉資料庫透過對接業界主流的Flink,Spark和Storm等主流的流式框架,實現實時生產資料的高速入湖,原汁原味的將資料保留在巨杉資料庫中。SequoiaDB是巨杉資料庫透過10年的不斷迭代,從多模資料湖架構演進出來的“湖倉一體”架構產品。SequoiaDB的“湖倉一體”結合了資料湖與資料倉庫,是一個融合的基礎設施環境,支援從原始資料到精煉資料的整個過程,並最終提供最佳化後的資料以供消費。

秒級資料入湖

從客戶的結構化資料需求出發,巨杉眾多的金融客戶著眼於盤活海量的歷史存量資料,並同時解除安裝發生在傳統Oracle/DB2上的業務。因此,巨杉依託自研的SequoiaDB分散式資料庫,形成了歷史資料平臺的方案。從業務的角度出發,SequoiaDB透過高效能的聯結器,對接包括Flink,Spark和Storm等主流的流式框架,實現實時生產資料的高速入湖,原汁原味的將資料保留在巨杉資料庫中。這裡起到的作用有點像數倉模型中的ODS層,但巨杉又利用其分散式資料庫高併發訪問的能力,可以直接對外提供實時資料訪問服務。

鑑於SequoiaDB多副本高可用的特性,很多使用者實際上把巨杉資料庫作為全系統資料的全量最終儲存。在部署實踐裡,前端操作型資料庫產生的資料變更在透過ogg/CDC等工具抽取後,透過批次的方式load到巨杉資料庫中;或是載入到以kafka為代表的各類訊息佇列,再透過流式引擎寫入巨杉資料庫中。流式和批次資料彙總加工整合即可對外提供服務,根據業務需要,實時入湖的資料從業務實際發生到在巨杉中提供訪問服務時延在秒級。

巨杉湖倉一體技術解讀|流式計算實現秒級資料入湖

上圖有兩個核心技術點需要關注。一是資料入庫鏈路,從架構中可以很清晰的看到透過流和批兩條資料鏈路,這是當前比較成熟的一個典型的Lambda架構。為了儘可能的高效接收來自不同資料來源的資料,SequoiaDB開發了Spark connector和Flink connector等多種通用資料格式的解析器,打通實現了高可靠的資料鏈路,支援增刪改各類操作,並在客戶場景中解決exactly once資料入庫問題。

其次是隨著巨杉資料庫在業務系統的深入,很多使用者發現把資料從取出,做ETL,載入到DW層再做完各類統計分析彙總時,會存在以下問題:

1。時延較高,無法滿足實時分析的需求

2。搬遷複製資料成本高,資料要在不同條件下儲存多份,還要開發大量的工具

3。傳統數倉模型不能很好的適應業務變更,需要的專業技能門檻也很高

所以部分客戶開始跟巨杉一起探討直接在海量資料湖上做資料轉換和分析的可能,也就形成了現在巨杉資料庫的“湖倉一體”架構。

流式資料加工

針對客戶提出的流式資料加工處理,以及未來越來越多的實時分析場景,SequoiaDB在結合Spark Streaming和對接Flink後,提供簡單易用的資料載入工具和列存的資料載入功能。SequoiaDB還開發了行存資料到列存資料的自動化轉換工具,客戶只需要基於需求簡單配置需要轉換分析的表,就可以實現實時增量資料同步轉換,極大的方便簡化資料加工師和分析師的工作。總的來說,客戶可以在一個SequoiaDB平臺實現低延時的資料入庫,高併發的即時資料查詢,幾乎透明的行列資料轉換,以及高效能的資料加工分析能力。

巨杉湖倉一體技術解讀|流式計算實現秒級資料入湖

結語

SequoiaDB透過對接業界主流的流式框架,實現了多源資料的快速入湖。未來,巨杉資料庫將繼續不斷創新,打造更加安全、穩定、可靠的資料庫系統,持續助力金融行業客戶資訊化創新,釋放全量資料價值。