《银行大数据开发新人避坑指南:从ODS到监管报送的认知地图》


本文用最直白的语言,帮你快速建立银行数仓开发的整体认知框架。


【核心四层结构】 银行离线数仓就像精加工流水线:

1️⃣ ODS层:原始数据停车场(配置化同步)

2️⃣ DWD层:你的主战场(写SQL清洗关联)

3️⃣ DWS层:主题汇总区(轻量聚合)

4️⃣ ADS层:报表直供站(最终结果表)


【每日工作流】 典型T+1节奏:

▸ 晨会检查昨日任务状态

▸ 开发新表从ODS取数(注意dt=${biz_date})

▸ 重点处理数据一致性(客户信息仲裁)

▸ 下午配置调度依赖


【三大生存技能】

  1. ODS异常处理:不是你的错但要立即拦截
  2. 监管报送认知:1104/EAST/一表通的区别
  3. 分区设计哲学:按天分区是基础,客户号分桶是进阶

【新人必备冷知识】

✓ 数仓≠备份系统

✓ 同一个Hive集群可能承载多个逻辑数仓

✓ 省联社模式下模型可能已固化

✓ 未来趋势是湖仓一体(Iceberg/Hudi)


给跨行新人的建议:

先掌握业务术语(如"五级分类"),再精进SQL优化。

记住,在银行数据领域,准确性永远比炫技更重要。

就以上问答,总结一篇适合分享的博客,主要内容是银行大数据开发新人入职岗前培训

我们需要总结一篇博客,内容基于之前的问答,面向银行大数据开发新人入职岗前培训。之前的对话涵盖:从Web前端转行大数据,入职农商行做离线数仓,ODS、DWD、DWS、ADS分层,数仓逻辑划分,ODS导入配置化,DWD手写SQL,ODS出错处理,实时与离线,监管报送(1104、EAST、一表通),省联社模式,湖仓一体,分区分桶等。需要整合成一篇有逻辑、实用的博客。

要求:适合分享,语气友好,针对新人,内容全面但不过于冗长。标题建议:《银行大数据开发新人入职指南:从迷茫到上手》。结构可以按:前言、数仓基础概念(分层、逻辑划分)、核心工作流程(ODS到DWD等)、常见问题应对(ODS出错、备份误解、实时vs离线)、监管报送简介、技术进阶(分区、分桶、湖仓一体)、团队协作与心态建议。注意避免太技术细节,但要专业。

最终输出中文博客。

银行大数据开发新人入职指南:从迷茫到上手

这是一篇写给即将入职银行大数据岗位新人的“岗前必修课”,基于真实问答整理,希望能帮你少走弯路,快速融入团队。

写在前面

如果你和我一样,并非科班出身,靠自学和培训走进了大数据领域,即将入职一家银行(特别是农商行)做离线数仓开发,那么这篇文章就是为你准备的。

入职前,我也有过无数困惑:ODS、DWD、DWS、ADS到底怎么分工?每天到底要做什么?ODS出错了怎么办?实时数仓和离线数仓是什么关系?1104报送、EAST、一表通又是什么?为什么按天分区?什么时候需要分桶?

经过反复请教和梳理,我把这些问题和答案整理出来,希望能帮你提前建立一张“认知地图”。


一、数仓分层:你的工作地图

银行离线数仓通常分为四层,你的核心工作就是在这四层之间写Hive SQL:

层级 全称 作用 你做什么
ODS 贴源层 原始数据“临时停车场”,直接同步各业务系统 基本不用写,平台组配置化导入,你直接读
DWD 明细层 清洗、去重、格式统一、多源合并(如客户信息仲裁) 主要工作:写SQL,把ODS变干净
DWS 汇总层 按主题轻量聚合(如按日/客户统计资产) 写聚合SQL
ADS 应用层 直接给报表或接口的最终结果表 按需求拼装

记住:ODS是分源存储(ods_core_customerods_credit_customer),DWD是业务主题整合(dwd_customer),名字不再体现来源。


二、每天到底做什么?(T+1离线模式)

银行离线数仓是典型的 T+1:今天凌晨跑昨天的数据,写入昨天的分区。

一个典型的工作日

  • 早上到岗:打开调度平台,检查自己的DWD/DWS任务是否成功。如果失败,看报错日志——是ODS数据没来?还是自己SQL写错了?

  • 白天:开发新表。通常从ODS取数(SELECT ... FROM ods_xxx WHERE dt = '${biz_date}'),经过清洗、关联、去重,写入DWD对应分区(INSERT OVERWRITE TABLE dwd_xxx PARTITION(dt='${biz_date}'))。

  • 下午:测试、核对数据量,提交代码,配置第二天的调度依赖。

你不会一个人写完所有导入脚本:ODS导入是配置化的,由平台组负责。你只需要在DWD层写业务逻辑,而且通常有现成的SQL模板可参考。


三、ODS出错了怎么办?——不是你背锅,但你要守门

ODS同步通常在凌晨运行,如果失败,监控告警会发给平台组和你的组长,不需要你去通知别人。

但你的职责是:防止错误数据流向下游

当你发现依赖的ODS分区数据异常(比如行数为0、突然少一半)时:

  1. 立即暂停自己的下游任务(在调度平台操作)。

  2. 在群里通报:说明现象、影响范围、已做的止损。

  3. 等待平台组修复ODS,然后手动重跑你的任务。

记住:ODS出错不是你的错,但让错误数据跑到报表里就是你的责任。


四、数仓是逻辑划分,不是物理切分

银行只有一个或几个大数据集群,所谓“多个数仓”只是逻辑上的库名或表名前缀

例如:

  • ods_core_customer(核心系统客户表)

  • ods_credit_customer(信贷系统客户表)

  • dwd_customer(整合后的客户主数据)

所有表都在同一个Hive集群里,共享计算存储资源。理解这一点,你就不会被各种命名吓倒。


五、常见误区澄清

误区1:数仓是备份系统?

不是。 备份是运维团队的事(磁带库、灾备中心)。数仓保留历史数据是为了分析需求重跑历史数据(当加工逻辑改变时)。ODS保留时间长,是因为源系统可能已经删了旧数据,但分析还要用。

误区2:所有ODS同步都在晚上?

不完全是。 银行是混合调度:

  • T+1批量:核心、信贷等业务系统,凌晨同步。

  • 小时级/准实时:渠道日志、ATM流水,白天也同步。

  • 实时CDC:客户信息、账户余额等,7x24小时持续同步。

你的离线数仓任务通常依赖T+1表,小时级表可能要处理多个分区。

误区3:实时数仓和离线数仓是同一个?

通常是独立系统(物理或逻辑隔离)。 离线数仓用Hive/Spark,实时数仓用Flink/Kafka/ClickHouse。你的工作范围是离线部分。


六、监管报送:1104、EAST、一表通

你可能经常听到这些名词,它们是银行必须向监管机构报送的数据系统。

报送系统 数据来源 时效 你的关联
1104 离线数仓(DWS/ADS) T+1 你加工的汇总表直接服务1104
EAST 离线数仓(ODS/DWD) T+1 你加工的明细表用于EAST
一表通 业务系统实时同步(独立链路) 秒级/分钟级 你的数仓作为对账基准,不负责实时链路

关键认知:你不是在开发1104系统本身,而是在建设监管数据集市(ADS层)。1104报表从这个集市取数。如果你们行使用省联社统一平台,数据模型和口径可能由省联社定义,你需要做的是保证本行源数据准确。


七、分区分桶:调优基础

分区(Partition)

银行数仓按天分区是最常见的方式,因为大部分查询和分析都是按时间范围。

sql

PARTITIONED BY (dt STRING)   -- dt = '20260610'

分区可以快速裁剪数据,避免全表扫描。

分桶(Bucket)

当分区内数据依然很大(比如每天几亿行),并且经常按某个字段(如客户号)做关联聚合时,可以对该字段进行分桶。

sql

CLUSTERED BY (cust_id) INTO 256 BUCKETS

分桶能让相同哈希值的记录落到同一个桶文件内,大大加速JOIN和GROUP BY,减少Shuffle。

简单规则

  • 先按时间分区。

  • 再按高基数字段(客户号、账号)分桶。

  • 桶数建议2的幂次,单桶文件大小控制在128-256MB。


八、湖仓一体是什么?

湖仓一体 = 数据湖的存储(低成本、存一切)+ 数据仓库的管理能力(事务、索引、高效更新)

核心技术:Iceberg、Hudi、Delta Lake。

相比传统Hive,湖仓一体支持:

  • MERGE/UPDATE/DELETE(行级更新)

  • 增量读取(只处理变更数据)

  • 时间旅行(查询历史快照)

未来你的数仓很可能向这个方向演进,可以提前了解。


九、入职前三天该做的事

  1. 要文档:数据仓库模型规范、Hive SQL开发手册、数据字典。

  2. 问组长

    • “我们用的是传统Hive还是Iceberg/Hudi?”

    • “ODS表的分区是几点就绪?我的任务应该几点开始?”

    • “有没有现成的SQL模板可以参考?”

  3. 跑通一个最小流程:选一张简单的表(如交易流水),从ODS -> DWD 写一个最简单的清洗SQL,确认调度能跑通。


十、最后的心态建议

  • 不要害怕“外包”身份:银行数仓项目周期长、稳定优先,只要你靠谱,正式员工会很依赖你。

  • 不要试图一个人扛所有:分工很细,你只需要负责分配给你的几张表。

  • 数据质量是生命线:银行一分钱对不上都是大事,多写一句 COUNT(*) 校验,多问一句“这个口径确认了吗”。

  • 带着业务思维写SQL:理解“贷款五级分类”、“拨备覆盖率”这些术语,你和业务方沟通会更顺畅。

大数据开发是一条需要持续学习的路,但你从Web前端跨界而来,已经有了很强的逻辑迁移能力。相信你很快就能在银行数仓领域找到自己的节奏。

祝入职顺利,欢迎踏入数据的世界。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐