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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...