项目一: 中信建投证券数据平台 ( 2021-12->至今) 数据开发
项目背景: 金融公司涉及的业务领域众多,公司多年积累了大量复杂的业务数据,在发现问题,分析问题,解
决问题的过程中,其中协调前、中、后台以及科技部门等多方面配合来开展业务口径与逻辑开发目前无法做到。
技术架构: debezium-connector-mysql-1.2.0+kafka_2.11+flink-1.12.2+flink-sql-connector-mysql-cdc1.2.0.jar+ hbase-2.0.5
零售业务实时指标统计:
面向零售业务设计实时数仓,需要获得开户统计、客户服务、APP 运营几个主题的统计指标,根据实时
数据 处理架构和数据仓库分层的设计,面向零售业务的实时数仓可以分为以下几个流程
ODS 层: Debezium 实时采集客户信息表、渠道表等维度相关维度表的 CDC 日志,通过 FlinkCDC 采
集主流的数据业务流水表等主表,建立实时数仓的 ODS 层。
DWD 层: Flink SQL 对 ODS 层,进行数据清洗,过滤、脱敏、打宽等处理。同时以客户账户粒度进行
数据合流,实现 DWD 层的建立。
DWS 层:基于 DWD 层的数据进行汇总,通过分析业务需求,将 DWD 层的数据按照主题进行划分,
汇总出渠道服务主题宽表、业务部运营主题宽表、交易产品主题宽表等公共指标宽表,建立 DWS 层
ADS 层:对于一部分用户账户粒度的业务指标,可通过 DWD 层的明细直接计算得到,部分粗粒度的
业务指标比如 APP 渠道服务客户人数、投顾产品阅读人数等,可以通过 DWS 层计算获得。
最终计算结果接入到 NoSQL 数据库将数据统一提供给下游系统或通过 BI 系统展示。
基金投顾实时指标统计:
基金投顾场景的数据有三个特点:
第一,涉及的数据规模比较小
第二,数据在开盘时间提供给公司内部人员查看
第三,数据对准确性的要求特别高
针对数据量小的特点,我们将数据指标结果输出到 mysql 关系数据库;针对开盘时间将数据供给内部
人员查看的特点,我们开启实时任务的启停策略,将更多的资源留给夜间跑批的任务来使用;针对数据准确
性要求很高的特点,我们通过夜间离线跑批的方式对数据进行修正,以保证数据的准确性。
实时 ETL-资金流水场景:
此场景主要满足业务人员在开盘期间快速查询客户某个时间段内的交易流水明细数据。它需要解决三个
问题:
第一,资金流水明细,总共几十亿的数据,数据量很大的情况下,如何做到快速查询?
第二,开盘时间内满足业务人员查询,且非开盘时间内数据量较小,是否采用定时调度?
第三,资金流水一定不能出错,如何保证数据的准确性?
针对数据量大的特点,我们最终选择通过 Hbase 组件来存储数据,通过合理设计 rowkey 与建立
region 分区,达到快速查询指定时间段内的资金流水明细情况;针对非开盘时间内交易数据量很小的特点,
开启任务的定时启停策略,将更多的资源留给夜间跑批任务;针对数据准确性要求高的特点,通过离线数据
修正的方法来达到准确性的要求。
个人职责: 1.与上游系统与下游应用同事沟通协作,推动各类需求在数据模型中的落地和 ODS 的采集。
2.负责编写 Flink 代码构建主题域合并数据流,构建主题事实表。
3.负责各业务线系统的信息调研、表与字段的映射关系梳理,根据业务及日常需求来优化模型。
4.根据业务需要,进行实时数据建模,设计、开发、优化实时数据开发工具和流程。
5.负责离线数仓与实时数仓的数据比对,保证数据准确性。
6.负责项目性能监控、分析、调优等工作,保障系统正常运行。