數據類產品設計和實現思路

来源:https://www.cnblogs.com/milton/archive/2022/05/02/16216347.html
-Advertisement-
Play Games

聲明 個人原創, 轉載需註明來源 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天, 對每個時間單位有高值, 低值, 開盤, 收盤等不同價格, 只有滿足這些數據欄位和格式, 才能進行後續的數據分析處理.

當數據導入後, 需要對數據數值和格式進行判斷, 推薦最接近的模型

數據管理

  1. 查看數據
  2. 編輯單個數據
  3. 批量編輯數據
  4. 合併多個數據
  5. 拆分數據

數據轉換

數據轉換用於將原始數據適配至模型輸入

  1. 編輯轉換規則, 對源數據進行轉換. 例如從英制距離轉為公裡, 從日期文本轉換為時間戳, 或者人民幣按當時的浮動匯率轉為美元
  2. 編輯轉換規則, 對源數據進行聚合轉換, 例如提取每日統計值產生新的數據序列
  3. 插件形式的數據轉換, 例如使用第三方介面從文本中提取關鍵詞, 提取熱詞
  4. 用規則組合創建管道, 用於複雜的數據轉換

技術實現

數據的校驗和轉換涉及的技術實現主要有

  1. 數據模型設計, 允許用戶創建自定義的數據模型
  2. 數據查看和手工編輯, 批量編輯
    • 本地的數據查看和編輯
    • 第三方數據源(關係型資料庫, 列資料庫, NoSQL等)的查看和編輯
  3. 數據轉換規則管理
  4. 第三方轉換介面的接入
  5. 數據管道的配置

3. 分析處理

數據分析和處理是數據類產品的核心模塊, 主要負責模型的運行, 這一步集中了大量的計算和數據處理, 因此要設計合理的機制方便硬體擴容

任務分發

採用合適的任務分發機制, 確保資源分配均衡合理, 使用必要的緩衝機制削平業務毛刺.

資源管理

  • 對不同任務使用的計算資源進行調配, 實時增加/減少計算資源.
  • 根據任務的負載自動創建和分配資源, 以保證分析處理的服務質量
  • 當任務空閑時回收資源

性能監控

對計算資源的負載和錯誤率進行監控, 實時預警

技術實現

技術上, 對於分片較小的任務場景, 可以使用集中服務註冊和分發機制, 對於分片較大的任務, 可以採用消息隊列機制, 技術上的目標主要有

  1. 儘可能簡單穩健, 易於維護
  2. 任務定時機制
  3. 有完善的完成確認機制, 確保任務不丟失
  4. 保證集群的工作效率
  5. 便於擴容

視業務場景不同, 可以採用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)

將數據通過介面, 導出至其他持久化存儲

  • 關係型資料庫
  • 非關係型資料庫

輸出至介面

根據業務場景的需要, 通過介面與第三方系統集成, 實現業務聯動, 對實時數據處理產生的預警, 攔截和報告, 使用多種途徑進行傳輸.

技術實現

在技術上

  1. 數據查看, 對各種數值類型的查看
  2. 對數據生成各種類型的chart, 以及動態chart
  3. 對不同格式文件和數據的生成
  4. 處理異構數據之間的映射轉換
  5. 第三方介面適配

5. 行業邏輯

這部分對標於 SAS 的 SAS/QC, SAS/ETS, SAS/OR, SAS/ITSV, SAS/GIS, SAS/CFO Vision

行業邏輯是搭建在前面的功能模塊之上的上層建築, 通過行業經驗以及監管需求創建好標準數據模型和輸入輸出機制, 預置業內常見第三方系統的適配, 降低行業用戶使用門檻, 實現快速部署. 主要的產品功能包括

介面集成

對行業常見的上下游系統介面, 包括監管介面, 進行集成, 用戶只需要配置賬戶環境, 就可以進行數據導入導出

數據模型管理

內建行業數據模型, 只需要用戶數據滿足模型入參條件, 就可以使用內建的模型進行處理

報表管理

內建常用報表, 用戶可以直接使用或只需要少量修改, 就可以用於己方業務

用戶培訓

提供相關的業務培訓, 覆蓋用戶需求

技術實現

技術上更多的是調研客戶的行業需求, 包括監管規定, 當前用戶的使用習慣

  1. 總結出標準的數據模型, 處理流程和報表格式
  2. 在基礎模塊之上實現業務邏輯
  3. 適配上下游系統介面
  4. 跟隨監管及市場需求, 定期維護

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景 之前有文章提供了springboot多數據源動態註冊切換的整合方案,在後續使用過程中,發現在事務控制中有多種bug發生,決定對此問題進行分析與解決 前情提要 多數據源切換流程結構圖如下所示,包含幾個組成元素 自定義的數據源配置處理,通過DruidDataSource對象動態註冊到系統中 自定義 ...
  • 1.在pom.xml加入SpringSecurity的依賴 <!-- SpringSecurity對Web應用進行許可權管理 --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-secu ...
  • 使用Metalama為VisualStudio "重構"\ LiveTemplate 菜單中動態添加功能 ...
  • C#自定義配置文件教程,C#App.Config自定義配置文件教程,C#web.Config自定義配置節點 ...
  • 我前面幾篇隨筆介紹了關於幾篇關於SqlSugar的基礎封裝,已經可以直接應用在Winform項目開發上,並且基礎介面也通過了單元測試,同時測試通過了一些Winform功能頁面;本篇隨筆繼續深化應用開發,著手在在.net6框架的Web API上開發應用,也就是基於.net core的Web API應用... ...
  • 本文講講 Ubuntu 18 及以上版本配置 IP 的方法,為什麼它值得一講,因為以 Ubuntu 16 為首的版本的配置方法已經不適用了,如果你還不知道,那本文正好 get 一個新技能。 Ubuntu 18 之後版本配置方法 需要使用 netplan 工具。 對應配置文件: /etc/netpla ...
  • 文件和目錄 1. 文件系統 我們可以把一個磁碟分成一個或多個分區,每個分區包含一個文件系統,這個文件系統由很多柱面組成,而柱面中有一個非常重要的概念叫做 i 節點。 i 節點包含了文件的大部分信息,如文件類型,文件訪問許可權位,文件大小和指向文件數據的指針等,大多數信息都存在st_mode成員中,有兩 ...
  • MySQL學習(第一節自習課) 一. 軟體下載、安裝 下載地址:https://dev.mysql.com/downloads/installer/ 位置:mysql->installer->community1 離線安裝版本,不要選帶web路徑的是離線安裝版本。 安裝省略 進程名稱:mysqld. ...
一周排行
    -Advertisement-
    Play Games
  • Github / Gitee QQ群(1群) : 813100564 / QQ群(2群) : 579033769 視頻教學 介紹 MiniWord .NET Word模板引擎,藉由Word模板和數據簡單、快速生成文件。 Getting Started 安裝 nuget link : https:// ...
  • Array.Sort Array類中相當實用的我認為是Sort方法,相比起冗長的冒泡排序,它的出現讓排序更加的簡化 結果如下: 還可以聲明一個靜態方法用來專門調用指定數組排序,從名為 array 的一維數組中 a 索引處開始,到 b 元素 從小到大排序。 註意: a + b 不能大於 array 的 ...
  • 前言 在上一篇文章CLR類型系統概述里提到,當運行時掛起時, 垃圾回收會執行堆棧遍歷器(stack walker)去拿到堆棧上值類型的大小和堆棧根。這裡我們來翻譯BotR里一篇專門介紹Stackwalking的文章,希望能加深理解。 順便說一句,StackWalker在中文里似乎還沒有統一的翻譯,J ...
  • 使用過 nginx 的小伙伴應該都知道,這個中間件是可以設置跨域的,作為今天的主角,同樣的 反向代理中間件的 YARP 毫無意外也支持了跨域請求設置。 有些小伙伴可能會問了,怎樣才算是跨域呢? 在 HTML 中,一些標簽,例如 img、a 等,還有我們非常熟悉的 Ajax,都是可以指向非本站的資源的 ...
  • 什麼是Git Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的項目。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。 Git 與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的 ...
  • 首先CR3是什麼,CR3是一個寄存器,該寄存器內保存有頁目錄表物理地址(PDBR地址),其實CR3內部存放的就是頁目錄表的記憶體基地址,運用CR3切換可實現對特定進程記憶體地址的強制讀寫操作,此類讀寫屬於有痕讀寫,多數驅動保護都會將這個地址改為無效,此時CR3讀寫就失效了,當然如果能找到CR3的正確地址... ...
  • 說明 onlyoffice為一款開源的office線上編輯組件,提供word/excel/ppt編輯保存操作 以下操作均基於centos8系統,officeonly鏡像版本7.1.2.23 鏡像下載地址:https://yunpan.360.cn/surl_y87CKKcPdY4 (提取碼:1f92 ...
  • 二叉樹查找指定的節點 前序查找的思路 1.先判斷當前節點的no是否等於要查找的 2.如果是相等,則返回當前節點 3.如果不等,則判斷當前節點的左子節點是否為空,如果不為空,則遞歸前序查找 4.如果左遞歸前序查找,找到節點,則返回,否繼續判斷,當前的節點的右子節點是否為空,如果不為空,則繼續向右遞歸前 ...
  • ##Invalid bound statement (not found)出現原因和解決方法 ###前言: 想必各位小伙伴在碼路上經常會碰到奇奇怪怪的事情,比如出現Invalid bound statement (not found),那今天我就來分析以下出現此問題的原因。 其實出現這個問題實質就是 ...
  • ###一、背景知識 爬蟲的本質就是一個socket客戶端與服務端的通信過程,如果我們有多個url待爬取,只用一個線程且採用串列的方式執行,那隻能等待爬取一個結束後才能繼續下一個,效率會非常低。 需要強調的是:對於單線程下串列N個任務,並不完全等同於低效,如果這N個任務都是純計算的任務,那麼該線程對c ...