揭祕宜信財富年度帳單的技術實現

1、背景

年末不少移動產品都會推出本身的年度帳單,每一年都會引發大衆媒體的關注。今年有幸參與了宜信財富APP年度帳單的開發,本文將帶你們探索宜信財富年度帳單背後的技術架構和研發邏輯,但願能夠給你們帶來一些思路上的啓發。前端

2、前端總體架構和執行流程

宜信財富年度帳單前端架構所採用的技術棧包括:java

  • 前端頁面是用H5製做;
  • 數據加載進度百分比,技術用到swiper插件和一些CSS3動效;
  • 海報生成用到了canvas圖片合成,把海報背景和二維碼合二爲一。
  • 爲了完成MGM的追蹤,在二維碼中嵌入M1信息。

3、數據來源和數據處理

本次年度帳單涉及客戶維度、銷售維度、客戶標籤等數據,其中客戶維度包括活動參與、文章、視頻瀏覽等數據。這部分數據的整合來源於數據中臺的主題數據。如下是數據中臺的架構圖:redis

  • ODS:數據來源層,存放從業務系統抽取過來的數據,業務系統中的原始數據通過抽取、洗淨、傳輸裝入本層。這層數據接近原始數據,卻不等同原始數據,數據裝入的時候進行了去重、去噪、表命名、字段命名等一系列規範操做。
  • DW:數據倉庫層,該層是數據倉庫的主體,將ODS層的數據按照主題創建數據模型,是爲企業全部級別的決策制定過程,提供全部類型數據支持的戰略集合,是一個包含全部主題的通用的集合。
  • DM:數據集市層,是以某個業務應用爲出發點而生成的字段比較的寬表,用於提供後續的業務查詢、OLAP分析、數據分發等,該層數據主要由輕度彙總層和明細層數據計算生成。

在數據中臺的架構上,咱們創建了「以客戶爲中心」的標籤體系。該套標籤體系按照人口屬性、價值指標、地理指標、心理指標等幾大類對數據進行分層管理,標籤的加工方式主要來源於DW和DM層數據的輕量彙總或者衍生加工,以及部分模型生成的產品預測等標籤。這套標籤體系支持360度客戶畫像以及分析關鍵接觸點,提供基於跨渠道全流客戶體驗優化和關鍵觸點優化。算法

本次帳單的數據主要來源於業務操做、用戶管理等源系統數據,這些數據被結構化地存儲在數據庫集羣中,且都已接入數據中臺,並按照定時任務或者實時數據落入對應主題域。帳單數據經過其相應主題數據加工而成,前端經過接口API訪問數據。spring

帳單需求裏的「銷售評價消息實時推送」和「帳單傳播短信發送」都是經過智能運營系統支持的,該系統是集運營活動建立、執行、管理、反饋、迭代爲一體的自動化平臺,可以經過用戶屬性、標籤、計劃、操做等數據篩選客羣,實現目標的精準觸達,提高關鍵指標和運營效率。數據庫

下面是智能運營系統建立運營計劃流程圖:canvas

  • 銷售評價消息實時推送:該功能依賴wormhole實時平臺將數據落到數據庫,而後在智能運營系統裏配置數據,最終經過消息中心和極光將消息推送到產品終端。
  • 帳單傳播短信發送:按照業務規則篩選符合條件的客羣,在智能運營系統裏配置短信模板等內容,而後調用notify經過短信平臺將短信發送給客戶。

4、技術後臺

用戶數據來源於宜信財富平臺自己數據,包含:基礎信息、瀏覽信息、參與活動等多項數據,如何保證數據準確、高效地傳達到前端是後端開發所必須保障的。資產平臺採用了spring+jersery+oracle+redis+jetCache的技術架構,爲了提高用戶體驗度,加快響應時間,數據存儲上該項目採用了緩存、非關係數據庫和傳統關係數據庫靈活結合的方式,更好地提供數據支撐。後端

在對接年度帳單需求時,咱們也着重考慮了接口響應時間。年度帳單用戶數據包括用戶活動數據及操做數據兩張表,其中操做數據是一個重量級表格,爲了減小數據庫的IO操做,採用了兩種方式來減小IO時間:緩存

  • 根據數據組提供的標籤,儘可能減小訪問資產數據表的概率;
  • 利用java8的Stream的新特性,將複雜的SQL邏輯放進代碼中進行處理。

Stream 不是集合元素,它不是數據結構並不保存數據,它是有關算法和計算的,更像一個高級版本的 Iterator。數據結構

此外Stream還提供了並行技術,在不關注集合內部數據順序的時候,能夠採用並行Stream拆解任務來加速處理過程。例如在作統計,須要將子產品進行彙總,或其餘操做時。

若是將複雜的代碼邏輯直接用SQL來實現,代碼會很是冗長,執行效率也不高。代碼的邏輯是使用並行流Stream,根據類型對相關數據進行分類彙總,而且根據本次需求的業務場景將某一子類劃分到另外一個類別下。

使用Stream並行流代替SQL邏輯能夠加速執行效率,減小響應時間。感興趣的同窗若是想了解Stream的更多特性,能夠參考技術文檔。Stream的應用可以讓代碼邏輯更加清晰,提升速度。

5、總結

此項目是由多個團隊共同協做完成,本文對年度帳單需求作了一次技術層面的梳理,因爲時間比較匆忙,內容不太詳細,但願能夠給你們帶來一些開發思路,也但願用戶能夠真切感覺到咱們的用心。

來源:宜信財富管理技術團隊

做者:米志華、孫李強、李力、趙全超

相關文章
相關標籤/搜索