2、数据中台及数据应用总体设计
约 2254 字大约 8 分钟
2025-08-27
数据存储
MPP数据库集群
负责存储关系型数据,为上层应用提供大数据量数据统计分析功能。
集中式数据库:Kingbase,分布式数据库:高斯
Hdfs结构化和非结构化数据存储
Hdfs用来存储结构化和非结构化数据
Hbse数据库
用来存储spark,Hadoop跑批结果数据。
底座平台
大数据Hadoop集群
大数据计算平台引入组件包括:Hadoop、Hdfs、Hbase、Hive、Yarn、Zookeeper、Spark、Flink、Redis、Kafka等组件;
K8S容器平台
K8s容器平台负责应用部署;
数据中台功能设计
实时数据总线
数据中台采用kafka集群进行实时数据处理,实时数据先接入kafka集群,然后由实时程序进行消费处理;
kafka主要用户在中台内部,和外部系统进行数据对接的接口;
Dep通信模块
DEP通信模块用于从DEP集群收发消息。主要包括LightMQ(DEP项目统管)、DepCollector。
DepCollector模块负责从DEP转发所有DEP服务数据到Kafka集群,消费dep消息并且转发到kafka集群。
LightMQ模块负责接收应用程序发送的消息【系统间消息】,发送给DEP平台。
Dep服务主要负责系统间的数据流转,
实时数据接入模块
实时数据接入模块主要工作是从Kafka、DSP中接收MetaObject消息、解析、并且存储到MPP数据库中。由于数据中台需要接入的服务过多,为避免大面积故障。所以按照上游系统、数据类型分多个进程进行处理。部署在容器集群中,当进程故障后尽量让进程崩溃退出,让容器自动重启。
分不同进程接受不同系统的kafka消息,处理后入库;
Dep发布服务模块
为满足下游系统实时数据需求和减少现有系统改造工作量。数据中台为下游提供实时下发、批量下发DEP服务。
Kafka服务发布模块
为满足下游系统实时数据需求和减少现有系统改造工作量。数据中台为下游提供实时转发Kafka消息服务
日终任务
日终任务是基于数据中台已有表进行BDM无法处理的复杂时序逻辑处理。日终任务采用容器cronjob实现。
定时任务主要用来每天处理缓变数据;
OpenAPI数据服务模块
数据中台接入数据后,将数据按照一定的处理逻辑,封装为API服务。客户端要访问Open API服务,需要先经过硬件负载均衡转发到Gateway(OpenAPI网关)注册的Ingress,由Gateway(OpenAPI网关)转发到具体后台进程。Gateway会实现身份认证、权限验证、IP限制、访问频率限制等功能。
数据治理模块
数据中台的数据治理模块包括数据目录管理、元数据管理、数据血缘分析等功能。数据目录为数据中台提供了数据资源的注册和发现功能,为数据资产提供索引,形成对全域数据的资产化管理和服务功能。元数据管理实现了对各个层级信息系统的元数据的统一管理,主要功能包括元数据信息维护、元数据视图、元数据搜索。数据质量管理根据业务部门、数据管理部门讨论制定的数据质量要求,对数据质量进行量化评价,对数据质量问题及时发现,并对日常工作中发现的问题实施相应的措施或改善方案,以提升数据质量。
主要是元数据管理,数据血缘关系管理。
数据分类和存储策略
高可用设计
| 单元模块 | 模块 | 进程 | 类型 | 备注 |
|---|---|---|---|---|
| MPP Master 节点 | 主备 | Keepalived | ||
| MPP Segment节点 | 多活 | 自带多活 | ||
| Hadoop管理节点 | 主备 | 自带主备 | ||
| Hadoop计算节点 | 多活 | 自带多活 | ||
| BDM | 主备 | 自带主备 | ||
| DEP通信模块 | 主备 | 自带主备 | ||
| DEP实时数据接入 | K8S/单实例 | 容器-自动重启 | ||
| DEP服务发布 | K8S/单实例 | 容器-自动重启 | ||
| 日终任务 | K8S/单实例 | 容器-自动重启 | ||
| OpenAPI数据服务模块 | K8S/多实例 | 容器-多活 | ||
| 数据服务管理模块 | K8S/多实例 | 容器-自动重启、容器-多活 | ||
| 自助式PYTHON分析服务 | K8S/单实例 | 容器-自动重启 | ||
| 债券智能抽取 | 多活 | 集群自带 | ||
| 数据治理 | 多活 | 集群自带 | ||
| Tableau | 多活 | 集群自带 |
通讯可靠性设计
系统间主要采用DEP、HTTPS两种方式。其中DEP技术实现消息的可靠性。HTTPS方式,数据中台作为服务端,保证服务端的稳定性,并对客户端做身份、权限认证,以及流量控制。当通信发生故障时,客户端可以重新发起请求。
数据仓库架构设计
数据仓库系统上下游关系

数据仓库技术架构

数据仓库技术体系总体分为两块:
- 离线计算spark计算;
- 盘中计算、实时计算、请求应答服务等容器化服务;
其中盘中计算,大数据任务调度等不同服务全部部署于容器云服务器,不同进程之间的数据交互通过kafka服务;
实时计算架构设计
实时计算,数据流存储在kafka中,数据计算在flink任务中,其中实时计算链路分为多个分层:
- ods:主要是原始的业务流数据,成交数据,报价数据,行情数据等,存储在kafka topic中。
- dwd:主要对ods层的原始数据做简单数据清洗,然后形成一个个实际上的事实数据;
- dwm:对于部分数据对象进行进一步加工,也可以和维度进行关联,形成宽表,依旧是明细数据。
- dws:根据某个主题将多个事实数据轻度聚合,形成主题宽表。这部分数据是需要最终的查询,所以放在ClickHouse数据库中。
dim:dim层主要存储维度数据,维度数据一般存放在关系型数据库中,每天定时加载到缓存中。
离线计算架构
离线计算也分为多层,分别是:
- ods:存储原始的成交,订单,行情等业务数据。
- dwd:做基础的清洗工作,形成一个个事实数据流。
- dwm:还是明细数据,做轻度的指标汇总。
- dws:应用数据。做最终的主题聚合。
实时计算和离线计算比较:
离线计算:从技术操作的角度,这部分属于批处理的操作。即根据确定范围的数据一次性计算,计算的中间结果不会保存,有新数据到来,会从头开始计算。对时效性不敏感,一般是T+1计算。
实时计算:强调计算过程的时间要短,即所查当下给出结果,离线计算强调批量,大数据的计算,运行时间长。
数据仓库中,实时计算使用Flink+kafka+Redis组合。离线计算一部分是Java跑破,一部分是Hive+scala大数据任务离线跑批。任务每天使用分布式任务调度框架调度计算。
数据仓库业务架构
数据仓库业务架构分为多层:
- ODS贴源数据层:只接受外部系统数据,做轻微数据清洗工作;
- DWD数据明细层:这一层做数据的精细加工操作,形成可复用的公共数据层,比如多个服务都需要0009,0006服务,这一层就可以对这两个服务数据做明细处理,放到一张可复用的表中;
- DWM轻度汇总数据:主要是关联维度数据,进程产品计算;
- ADS应用数据:数据下发,根据下游的需求和服务的定义,下发数据给下游系统;
- DIM维度数据:同步一些维表数据,缓变型数据,每天从上游定时同步,做缓更新操作;
总体业务架构图:

贡献者
版权所有
版权归属:codingLab
许可证:bugcode