加推時序系統RTS實現原理及應用簡介
一、背景知識
1、什麼是時序資料及分析目的?
時序資料是指時間序列資料。時間序列資料是同一指標按時間順序記錄的資料列。在同一資料列中的各個資料必須是同口徑的,要求具有可比性。時序資料可以是【時期數】,也可以【時點數】。時間序列分析的目的是透過找出樣本內時間序列的【統計特性】和【發展規律性】,構建時間序列模型,進行樣本外【預測】。
——【定義來自百度】
Sky認為,更廣義來說時序分析是一種資料探勘:
透過“趨勢、相關性、特徵”,進行“整合、歸納、評估”。提升使用者感知,最佳化使用者體驗,支援產品改進,加強業務管理水平。
2、涉及人群
本文主要目的是讓研發人員理解時序分析和相關實現技術,同時適合以下人群:
-
決策層
透過了解時序分析的場景,推進分析指標的確定。制定解決問題的總體策略與方針
-
業務部門主管
給出專業的分析指標
-
資料分析師
解決業務問題,資料產生後,進行溝通,並對其發現進行深刻的分析
透過時序分析作為切入點,以此來全面思考資料驅動未來企業的方案。
二、基本原理
企業對於各端,都有埋點操作,而埋點獲得的是一種時序行為資料,有使用者行為,也有系統行為。大量的時序資料構成了我們的網際網路時代,採用化整為零的思路實現之。
實現步驟如下:
-
定義時間盒子(時期數),常用的有:5min、1h、1d、1w、1m、1y
-
定義行為標籤,每個行為標籤包含<1>定義的時間盒子
-
時序資料到來,根據其時間戳,先放入相應的行為標籤,再分別放入多個時間盒子。每個時間盒子都會進行計數+1操作
-
定義聚合操作盒子,每個時間盒子下有多個聚合操作盒子,常用有:sum、count、max、min、avg平均、med中位數、std標準方差
-
最終我們將原始的時序資料,按不同行為標籤,存入不同時間盒子中並行放入其下的多個聚合操作盒子中
獲取資料時,我們採用【行為資料標籤】+【時間段】+【某個時間盒子】+【某種聚類盒子】或者【行為資料標籤】+【某時間盒子的數量】+【某種聚合盒子】
例如:
-
本週,使用者登入,每天登陸次數 (一個折線圖),實際取數<=7個,速度極快
-
以現在向前24小時內的,App首頁訪問量 ,實際取數24個,速度極快
原理示意圖如下:
三、方案選型及系統架構
本架構選擇了Redis作為儲存,有如下考慮
-
低成本
Redis專案本身接近100%程式碼覆蓋率,故障率較低,運維成本低。但不支援分片和事務是其主要問題。
-
實時與高效
按經驗來看,作為KV資料庫使用,Redis的讀寫,4倍於傳統資料庫的讀寫效能。
-
穩定與可靠
內部佇列,v2.6.5之後的管道PIPELINE,將多條命令一次性執行,單程式有可靠的原子操作保證,資料不串門。
-
豐富的基礎演算法
支援五種基本資料結構,對於需要唯一化人次的概念,實現便捷。並擁有HyperLogLog,海量資料基數計算解決方案,百度一下很多。
-
擴充套件性
叢集使用,MasterSlave容易擴充套件。
聚合函式語言選擇:LUA語言
-
Lua由標準C編寫而成,幾乎在所有作業系統和平臺上都可以編譯,執行。
-
整個Lua解析器,有2萬行C程式碼完成,可以編譯進182K的可執性檔案,載入與執行兼得。
-
Redis原生支援對lua語言的解析,彌補了Redis不是很強大的計算能力,並具備原子性,此特性有助於Redis對併發資料一致性的支援。
系統架構圖
整個RTS系統由14K的指令碼實現,包括LUA語言部分。
Sky認為: 一切資料都有時效性
-
有傳統的大資料分析架構作為主要資料分析手段,因此本系統設計伊始,定位是一個強力輔助,依據新鮮資料更快的出統計更快的分析各行為指標。
-
有些場景的資料,可能不進入後臺大資料服務,但也想快速出分析結果。按RTS的原理,可以完成一套物聯網時序統計serveless系統,跑在類似樹莓派嵌入式作業系統上!
實際效能指標:
最高峰值,每秒2萬次API請求,不加佇列中介軟體的情況下,穩定統計持續時間1小時。
下圖某系統在日活10萬+時候統計資料,紫色為中位數:
四、模組的操作使用
整個RTS系統使用Nodejs完成和redis的互動,使用require即可輕鬆使用
具體使用如下:
初始化例項:
以上為返回一個靜態類,8個時間盒子,專案字首為statsCenter,用以在Redis建立多例項統計系統
寫入方法:
注意 上面是一個非同步函式,在可以選擇同步函式來寫入資料。
除了常用的聚合函式,本方法還提供,dy:每年按每天在週中的統計,hm:每月按小時在天中的統計,等高階環比聚合統計值
另有recordUnique 函式配合做唯一化統計,主要使用Redis的集合資料結構完成
讀取方法:
注意 上面是一個同步函式,在高併發下可以選擇非同步函式來獲取圖表。
下圖為按小時取資料畫圖表:
整個RTS系統,只有2個對外API,一讀一寫,學習成本低,中級研發人員10分鐘就可以完成初級時序統計前後臺。
五、應用場景
1、金融證券
在證券圖表中,會使用5m ,10m ,15m ,30m ,1h ,4h ,1d ,1w ,1m 等來構造K線圖。在時間週期的基礎上,延伸使用MACD、KDJ、CCI、Boll 、MDI等分析工具進行短期和長期的趨勢分析。
特別指出:各個指標均建立在時序基礎上。
金融資料以一個ticket作為一個時序包,大廠每200ms推送一次,資料量大,使用RTS後,將資料降維,實現了人們經常看到的K線圖。
下圖是Sky在2015年完成的自研K線圖表(全原生實現)介面:
2、運營統計
比起繁雜的創業過程,網際網路運營有許多確定的指標,是一個專業型較強的崗位。運營負責人透過對指標的鑑別制定出相應運營計劃。
對於使用者的行為,進行長期與短期分析,運營也需要深入到整個產品的生命週期,我們俗稱拿資料說話,做相應的對策。
日活躍使用者、周活躍使用者、月活躍使用者,僅各類活躍指標,結合RTS與產品功能矩陣進行比對,迅速迭代與修正。
加推在使用者行為分析指標上,有獨特的見解:
下一步就是聚類和客戶細分環節了。
3、監控服務
監控的目的是為了,推斷,預警,決策。
使用時序統計,將每小時,每天,API介面訪問的,最大值、最小值、平均值進行統計,快速發現網路波動和介面異常。
使用RTS快速建立一個埋點大看板。
當有介面有超過1000ms的響應時,我們就要開始預警了。
4、多維度統計
資料探勘是一門交叉科學,涉及統計學、機器學習、資料庫、雲端計算、人工智慧等。
透過資料探勘分析架構,從明細級變為彙總級和分析級。形成資料立方體,輔助機器學習。
將多個時間盒子的資料進行,再分析。給出使用者的時序行為特徵,完成更深入的資料探勘,解決企業核心資料分析,愉快的擁抱DT時代。
六、資料解決方案的方法論
最後給出一個,資料解決方案的方法論3步
-
研究、談話理解業務活動(理解我們如何盈利,我的關鍵業務活動是什麼)
-
頭腦風暴(確定資料在業務上的作用,需要哪些資料)
-
設計與實施(評估模型,並試錯)落地很重要!
我們的DT之路是星辰大海。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69984372/viewspace-2723857/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 01 . ELK Stack簡介原理及部署應用
- ProxySQL簡介原理及讀寫分離應用SQL
- Hive簡介、應用場景及架構原理Hive架構
- 《推薦系統實踐》筆記 01 推薦系統簡介筆記
- LLM應用實戰: 文件問答系統Kotaemon-1. 簡介及部署實踐
- MapReduce原理及簡單實現
- Lucene介紹及簡單應用
- WebSocket 簡介及應用例項Web
- vue 實現原理及簡單示例實現Vue
- 簡單介紹numpy實現RNN原理實現RNN
- CRC校驗原理簡介及C程式碼實現說明C程式
- Android中mmap原理及應用簡析Android
- ppium簡介及工作原理
- qrcode加背景圖(系統應用)
- async/await 原理及簡單實現AI
- 個性化推薦系統實踐應用
- CRC演算法原理、推導及實現演算法
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- Thanos工作原理及元件簡介元件
- WebSocket原理及技術簡介Web
- 系統安全及應用
- gRPC應用實戰:(一)簡介RPC
- 模切廠ERP應用及方案簡介
- Cookie、Session、JWT在koa中的應用及實現原理CookieSessionJWT
- Flink sql實現原理及Apache Calcite介紹SQLApache
- 條形碼生成原理介紹及簡介
- 基於Netty的Android系統IM簡單實現原理NettyAndroid
- cortex-a8原理實踐及應用
- Vue 3 響應式原理及實現Vue
- LAMP平臺服務簡介、部署及應用LAMP
- 前端路由簡介以及vue-router實現原理前端路由Vue
- LDA主題模型簡介及Python實現LDA模型Python
- 分期商城實時推薦系統
- Python 列表推導及優先順序佇列的實現Python佇列
- 網易雲音樂推薦系統簡單實現系列
- 安卓移動應用程式碼安全加固系統設計及實現安卓
- LED地磚屏的感應原理及應用特點介紹
- 實現一個簡易的響應式系統