聲明 個人原創, 轉載需註明來源 https://www.cnblogs.com/milton/p/16216347.html 數據類產品 最近的項目需要接觸大數據處理相關的產品, 涉及了ETL, 數據挖掘和統計, 數據可視化等功能, 因此瞭解了一下這個行業的產品和工具. 最近看的產品主要是 Qua ...
聲明
個人原創, 轉載需註明來源 https://www.cnblogs.com/milton/p/16216347.html
數據類產品
最近的項目需要接觸大數據處理相關的產品, 涉及了ETL, 數據挖掘和統計, 數據可視化等功能, 因此瞭解了一下這個行業的產品和工具. 最近看的產品主要是 Quantexa CDI(contextual decision intelligence), SAS, OneTrust GRC. 結合對數據業務的理解分析一下這類產品的設計和技術實現.
業務場景拆分
數據類產品從業務場景上, 可以分為
- 應對監管需求, 對自身業務的數據進行抽取和處理, 部署監管要求的規則, 生成符合監管要求的報告
- 科研類場景(例如醫葯,勘探), 對線上線下採集的數據進行收集, 分析和驗證
- 廣告推薦類產品, 根據數據進行決策
- 金融風控, 反洗錢, 打分, 決策, 預警等
- 工業自動化, 配合ERP, MES, IOT等系統進行數據的進一步分析和報告
不同的數據狀態, 可以分為
- 靜態數據分析, 一般針對日誌, 交易流水等存量信息進行事故分析, 用於周期跑批, 問題復盤, 案件調查等業務場景
- 動態數據分析, 數據對象為實時的日誌, 交易流水, 感測器記錄等, 常用於業務監控和自動化, 例如網路安全的預警, 攔截, 交易的攔截, 風險預警等業務場景.
從純粹的功能上, 可以分為以下幾個功能模塊:
- 輸入適配
- 建模轉換
- 分析處理
- 輸出適配
- 行業邏輯
下麵對各類分別說明
1. 輸入適配
這部分對標 SAS 的 SAS/ACCESS,
數據輸入相當於ETL中的E部分, 是整個系統的數據入口. 數據輸入模塊通過已有的或用戶定義的規則, 將原始數據接入處理系統. 在數據產品中數據輸入是重要性很高, 並且對於用戶體驗和產品整體性能影響很大的一個模塊.
數據輸入主要分為以下幾部分內容
介面適配
- 數據源
- 常見的傳統關係型資料庫 Oracle, DB2, SQL Server, MySQL, PostgreSQL
- MongoDB, Redis, Hive, Clickhouse, TIDB 等新型資料庫
- 以及 Spark, Kafka 等消息資料庫
- 各種文件類型的解析, 例如CSV, Excel, Access, log日誌等
- 壓縮文件格式的處理
- 被動接收數據, 通過對第三方系統提供數據介面, 接收第三方系統推送的數據
- 數據採集, 通過內建工具或用戶自定義工具採集數據
格式適配
- 行數據, 傳統的關係型數據主要使用行數據
- 列數據, HBASE等列資料庫
- 地理數據, 二維, 三維坐標數據
- 文本數據, HTML, XML, JSON 這類非結構數據
數據存儲
- 對於讀取頻次較低, 或邏輯較為簡單的數據規則, 可以直接從數據源讀取數據進行處理
- 對於讀取速度較慢的數據, 需要頻繁讀取的數據, 可以將數據緩存在本地, 方便後續環節處理
預處理
這一步與校驗和轉換的區別在於是否與業務邏輯有關. 這一步僅在數據層面對讀取的數據進行凈化, 篩除無效的值以及做一些基礎轉換.
第三方數據導入
從第三方介面獲取數據, 如徵信介面, 高風險IP和地區名單等
技術面分析
數據輸入部分, 涉及的技術實現主要包含以下幾部分
1) 數據輸入框架
便於擴展新的數據源, 數值類型, 數據格式, 預處理規則等. 使數據系統適用於更多的業務場景, 避免過早遇到功能或性能瓶頸.
2) 數據存儲機制
- 面向不同場景的需求, 用於存儲結構化, 半結構化和非結構化的數據, 需要滿足分析模塊對數據容量, 訪問速度的要求
- 提供MB級到PB級的數據存儲方案, 實現對不同體量的數據的存儲, 並保證數據存取速度, 保證數據的完整性和安全性
- 對高速率數據的接收能力, 類似雙十一這種峰值每秒百萬交的數據接收, 如何保證高效且不丟失數據
3) 數值類型識別
將數據值抽象為幾種固定的基礎數值類型, 併在基礎數值類型上擴展出有實際意義的數值類型, 對輸入的數據需要有一定的自動識別能力.
4) 數據格式處理
- 對常見格式的自動識別和處理, 例如CSV, Excel, Access
- 對常見媒體格式的處理, 圖片格式, 視頻格式, 流媒體解析(和存儲)
- 對不同類型壓縮文件的解壓處理
- 對非行結構數據的識別, 例如HTML, XML, JSON等
- 對非結構化數據的識別, 例如新聞內容, 聊天記錄等
5) 預處理規則
- 簡單的過濾邏輯, 例如數值校驗, 臟數據清理, 重覆數據的判斷和清理
- 基本的路由規則, 將數據分發到不同的流水線
6) 預警機制
當數據錯誤率超出預設閾值時, 通過多種途徑發出預警
2. 建模轉換
這部分對標於 SAS 的 Base SAS, SAS/WA 和 SAS/MDDB Server
數據建模和轉換是原始數據和分析處理之間的橋梁, 屬於ETL的T和L部分. 校驗轉換的職能主要有
模型定義
模型定義是分析和處理的需求, 不同的分析處理, 需要的數據輸入格式, 質量和數量都會不同, 這些會體現在模型定義上. 例如對於證券分析, 對於股票有不同時間單位的價格, 3秒, 5秒, 1天, 5天, 對每個時間單位有高值, 低值, 開盤, 收盤等不同價格, 只有滿足這些數據欄位和格式, 才能進行後續的數據分析處理.
當數據導入後, 需要對數據數值和格式進行判斷, 推薦最接近的模型
數據管理
- 查看數據
- 編輯單個數據
- 批量編輯數據
- 合併多個數據
- 拆分數據
數據轉換
數據轉換用於將原始數據適配至模型輸入
- 編輯轉換規則, 對源數據進行轉換. 例如從英制距離轉為公裡, 從日期文本轉換為時間戳, 或者人民幣按當時的浮動匯率轉為美元
- 編輯轉換規則, 對源數據進行聚合轉換, 例如提取每日統計值產生新的數據序列
- 插件形式的數據轉換, 例如使用第三方介面從文本中提取關鍵詞, 提取熱詞
- 用規則組合創建管道, 用於複雜的數據轉換
技術實現
數據的校驗和轉換涉及的技術實現主要有
- 數據模型設計, 允許用戶創建自定義的數據模型
- 數據查看和手工編輯, 批量編輯
- 本地的數據查看和編輯
- 第三方數據源(關係型資料庫, 列資料庫, NoSQL等)的查看和編輯
- 數據轉換規則管理
- 第三方轉換介面的接入
- 數據管道的配置
3. 分析處理
數據分析和處理是數據類產品的核心模塊, 主要負責模型的運行, 這一步集中了大量的計算和數據處理, 因此要設計合理的機制方便硬體擴容
任務分發
採用合適的任務分發機制, 確保資源分配均衡合理, 使用必要的緩衝機制削平業務毛刺.
資源管理
- 對不同任務使用的計算資源進行調配, 實時增加/減少計算資源.
- 根據任務的負載自動創建和分配資源, 以保證分析處理的服務質量
- 當任務空閑時回收資源
性能監控
對計算資源的負載和錯誤率進行監控, 實時預警
技術實現
技術上, 對於分片較小的任務場景, 可以使用集中服務註冊和分發機制, 對於分片較大的任務, 可以採用消息隊列機制, 技術上的目標主要有
- 儘可能簡單穩健, 易於維護
- 任務定時機制
- 有完善的完成確認機制, 確保任務不丟失
- 保證集群的工作效率
- 便於擴容
視業務場景不同, 可以採用Dubbo, Spring Cloud, Kafka 或 K8s 等不同維度的方案
4. 輸出適配
這部分對標於 SAS 的 SAS/GHAPH, SAS/IntrNet
輸出功能包括數據可視化, 數據導出, 數據輸出介面, 自動化操作(預警, 攔截等). 數據輸出功能實際上分佈於系統中的每個環節.
從產品功能上分, 主要有以下幾方面
數據可視化
數據可視化包括以下幾方面
- 結構化數據可視化
- 行資料庫可視化
- 列資料庫可視化
- 半結構化數據可視化
- MongoDB等文檔型資料庫
- Memcache, Redis等NoSQL資料庫
- HTML, XML, JSON等格式化文本
- 非結構化數據可視化
- 新聞內容聊天記錄等
- 二進位內容可視化
- 圖片
- 音頻
- 視頻
- 行業數據格式
數據導出格式化
導出格式化包括
- 輸出CSV, Excel
- 輸出圖片(各種chart), gif(動態chart), svg等
- 輸出PDF
- 輸出音頻, 視頻
- 其他行業格式
數據裝載(Load)
將數據通過介面, 導出至其他持久化存儲
- 關係型資料庫
- 非關係型資料庫
輸出至介面
根據業務場景的需要, 通過介面與第三方系統集成, 實現業務聯動, 對實時數據處理產生的預警, 攔截和報告, 使用多種途徑進行傳輸.
技術實現
在技術上
- 數據查看, 對各種數值類型的查看
- 對數據生成各種類型的chart, 以及動態chart
- 對不同格式文件和數據的生成
- 處理異構數據之間的映射轉換
- 第三方介面適配
5. 行業邏輯
這部分對標於 SAS 的 SAS/QC, SAS/ETS, SAS/OR, SAS/ITSV, SAS/GIS, SAS/CFO Vision
行業邏輯是搭建在前面的功能模塊之上的上層建築, 通過行業經驗以及監管需求創建好標準數據模型和輸入輸出機制, 預置業內常見第三方系統的適配, 降低行業用戶使用門檻, 實現快速部署. 主要的產品功能包括
介面集成
對行業常見的上下游系統介面, 包括監管介面, 進行集成, 用戶只需要配置賬戶環境, 就可以進行數據導入導出
數據模型管理
內建行業數據模型, 只需要用戶數據滿足模型入參條件, 就可以使用內建的模型進行處理
報表管理
內建常用報表, 用戶可以直接使用或只需要少量修改, 就可以用於己方業務
用戶培訓
提供相關的業務培訓, 覆蓋用戶需求
技術實現
技術上更多的是調研客戶的行業需求, 包括監管規定, 當前用戶的使用習慣
- 總結出標準的數據模型, 處理流程和報表格式
- 在基礎模塊之上實現業務邏輯
- 適配上下游系統介面
- 跟隨監管及市場需求, 定期維護