理財農場大數據初探之路

概述

不以需求為目的的技術研究都是耍流氓
由於公司業務的快速發展,以及運營部門的需求,需要實現投資用戶的月賬單功能。
數據背景
目前平台投資用戶57萬多,投資流水數據已超過千萬級,另外還需要統計用戶的充值、提現、回款本金、利息、獎勵、紅包、區分各種產品的分類統計(定期、活期)、曆史投資分布、收益趨勢、打敗多少用戶、月度理財之星等等指標。
技術選型背景
在此之前就有類似需求,統計2016年投資用戶的年度賬單。當時部門幾個核心的人員也針對年度賬單做了分析及技術選型,有考慮定時任務多線程跑批、存儲過程、讀寫庫分離等,甚至為了不影響平台應用的資源,單獨購買數據庫跑批。最終的方案是多線程(10個線程)通過java調用、數據庫讀寫分離、單獨服務器、單獨數據庫,進行跑批實現;當然最終的結果也是順利實現了,但過程不盡人意,記得應該是兩個研發工程師,用了近兩個星期的時間實現,包括梳理數據、測試數據、核對數據、需求變更、重跑等等,跑批的時間將近花了三天的時間,這不管是效率上、時效性上、人力成本、服務器成本上都是不劃算的。
因為有了這次經曆,再加上2017年規劃,各部門提出了各種報表、智能營銷、精準營銷、實時結果反饋等各種需求,所以就有了預研阿裏雲大數據平台——數加的開始(這裏不是打廣告,有關數加平台,有興趣的可自行從阿裏雲了解)。目前我們利用數加平台主要實現了兩大功能:月賬單(各種統計需求)、大屏流量牆。
預研數加平台這裏要特別感謝柯裏(百香果)提供了不少的幫助。

月賬單

月賬單:
借助數加平台的大數據開發套件實現。
什麼是大數據開發套件?
“大數據開發套件”是阿裏雲推出的大數據領域平台級產品,提供一站式大數據開發、數據權限管理、任務離線調度等功能。其底層依賴阿裏雲自主研發的大數據計算服務 MaxCompute(原 ODPS),提供海量任務的離線加工、分析、雲數倉搭建、大數據挖掘等應用於多種場景的功能。‘開箱即用’的使用方式,讓用戶不必擔心底層集群的搭建和運維所帶來的成本和繁瑣。
產品架構圖

如上圖那麼我們利用大數據開發套件,具體用來做了什麼處理呢?
1、數據同步和存儲,支持從阿裏雲數據庫同步源數據到大數據開發套件;前提是根據需要提取的數據進行建表,可以根據業務模型創建寬表,在此表的基礎上進行數據清洗和處理,得到結果數據再進行存儲;
2、利用MaxCompute支持的SQL語句處理;
3、配置工作流,支持複雜的業務按流程逐步執行;
4、支持ETL調度,可配製高度周期,以及日誌的輸出和跟蹤;
5、支持任務監控,出錯及時報警和處理;
6、結果輸出回導至現網數據庫,以供業務係統調用顯示;
開發過程中,也很好的支持了開發、調試、測試、上線的一體係的支持,所以運用到業務係統中的可行性是很大的,據了解目前已很多公司已商用;當然大數據開發套件還有很多功能暫時沒有用到,比如機器學習、支持自定義函數、java調用、BI報表輸出、SDK獲取結果等等,有興趣的同學可以從阿裏雲更深入的了解;
https://help.aliyun.com/product/30254.html
月賬單功能的整體流程如下圖:

目前月賬單功能順利上線,那麼大家肯定想知道的通過阿裏雲的大數據開發套件,體現了哪些好處呢?
後麵再說~

大屏流量牆

借助數加平台的流計算實現。主要體現出數據的實時情況,用戶實時注冊及顯示其所在市、用戶投資時連線到借款人所在地(取經緯進行飛線)、實時的借款數據、投資數據等等
什麼是流計算?
顧名思義,流計算通俗的講,就是對產生的一條條事件流、數據流進行實時計算和處理;
通常而言,流計算具備三大類特點:
實時(realtime)且無界(unbounded)的數據流
流計算麵對計算的,是實時且流式的,流數據是按照時間發生順序地被流計算訂閱和消費。且由於數據發生的持續性,數據流將長久且持續地集成進入流計算係統。例如,對於網站的訪問點擊日誌流,隻要網站不關閉其點擊日誌流將一直不停產生並進入流計算係統。因此,對於流係統而言,數據是實時且不終止(無界)的。
持續(continuos)且高效的計算
流計算是一種”事件觸發”的計算模式,觸發源就是上述的無界流式數據。一旦有新的流數據進入流計算,流計算立刻發起並進行一次計算任務,因此整個流計算是持續進行的計算
流式(streaming)且實時的數據集成 ·
流數據觸發一次流計算的計算結果,可以被直接寫入目的數據存儲,例如將計算後的報表數據直接寫入RDS進行報表展示。因此流數據的計算結果可以類似流式數據一樣持續寫入目的數據存儲。
全鏈路流計算示意

大屏流量牆的整體流程如下圖:

StreamCompute的代碼示例:
-- 1. 創建源表 (以下實例是產生隨機字符串的源頭表)
CREATE STREAM TABLE my_source(word STRING);
-- 2. 創建結果表 (以下是不產生對外輸出的結果表)
CREATE RESULT TABLE my_result(word STRING, cnt BIGINT);
-- 3. 計算邏輯
INSERT INTO my_result select
t.word,
COUNT(1)
FROM my_source t
GROUP BY t.word;
-- 4. 代碼完成後,請點擊 "調試任務",進行任務調試。任務調試可以mock輸入/輸出數據,方便用戶進行數據調試。
-- 5. 調試完成後,請點擊"上線任務",任務發布到"數據運維"頁麵進行生產運行。
想學的也可以看數加體驗館的大屏教程:https://data.aliyun.com/experience/case8
最終大屏顯示的效果圖:



總結

使用數加平台後,給我們帶來了什麼
優點:
1、人力成本方麵,相比較年度賬單,人力成本大幅減少,一個開發人員一周內可以完全實現(還是初次接觸)
2、業務執行效率大幅提高,阿裏雲其Maxcompute適用於100GB以上規模的存儲及計算需求,最大可達EB級別。目前我們的數據大小隻能算是滄海一粟吧~!~ MaxCompute產品地址:https://www.aliyun.com/product/odps 大數據開發套件地址:https://data.aliyun.com/product/ide
3、運算能力也大幅提升,還是以年度賬單為例比較,目前上線初次全量數據跑,基本是在30分鍾以內完成。
4、大數據的開發門檻降低,所謂專業的事交給專業的人來做,我們不需要關心細節,做的隻是梳理業務、建模、配置、提取即可;
5、隔離性好,基本不需要滲入到業務係統實現;
說了優點,再說點缺點:
1、Maxcompute的SQL支持方麵有較多限製,當然有關係型數據庫SQL經驗的同鞋上手應該是很快的。
2、在跑批過程當中,有出現過一次數據回寫數據庫失敗的問題。
3、開發環境與測試環境隔離不是很好,隻能通過權限來控製。
4、有些產品還在公測階段,有一定的小BUG,比如數據有重複,需要自行去重。
本文作者: Tonson(農金圈研發團隊),熱愛技術的java攻城獅。
最後更新:2017-05-03 15:00:50
上一篇:
阿裏中間件首席架構師鍾華:《企業IT架構轉型之道:阿裏巴巴中台戰略思想與架構實戰》新書出版!
下一篇:
H5網站模板在哪下載?
日誌易:IT 運維分析及海量日誌搜索的實踐之路(上)
magento -- Magento1.5初探三
MySQL5.5.28啟動錯誤 The server quit without updating PID file
十大濾波算法程序大全
車聯網的麻煩和便利一樣多 BAT們要治這種尷尬症
解決編譯內核模塊helloworld.c:1: 錯誤:代碼模式‘kernel’在 32 位模式下不受支持問題,未編譯對64位的支持
如何把應用程序app編譯進android係統
以《星際爭霸》為例,阿裏多智能體協作網絡BiCNet展現人工集體智能無限潛力
阿裏巴巴集團2016校園招聘內部推薦
Android兩種不同的方法去實現圖像的放大與縮小(很有幫助)