数据类产品设计和实现思路


声明

个人原创, 转载需注明来源 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. 跟随监管及市场需求, 定期维护
发表评论

相关文章