拾穗数据

Back

数据架构师学习路线 - L2 架构基础#

[!abstract] 定位 数据架构师是数据领域的高级岗位,负责设计数据系统的整体架构。L2 阶段是架构师的入门,重点是建立架构思维,掌握数据建模和数仓设计的核心能力。

为什么从 L2 开始?#

数据架构师需要扎实的数据开发基础。如果你还没有这个基础,建议先完成:

这份指南适合谁?#

  • 2-3 年数据开发经验,想往架构方向发展
  • 对系统设计有兴趣,喜欢思考”为什么这样设计”
  • 已经在参与数仓建设,想系统学习架构知识
  • 目标是数据架构师、数仓架构师

常见困惑:我适合做架构师吗?#

“架构师是不是要技术特别牛?”#

澄清一个误区:架构师不是技术最强的人,而是平衡能力最强的人。

能力开发工程师架构师
编码能力核心能力够用就行
系统设计了解即可核心能力
业务理解不是重点非常重要
沟通协调一般要求高要求
技术选型使用技术决定用什么技术

”开发和架构的区别是什么?“#

视角开发工程师架构师
关注点怎么实现为什么这样设计
范围单个模块/任务整个系统/平台
决策执行决策做出决策
周期短期交付长期演进

[!tip] 判断标准 如果你经常思考”这个设计有什么问题”、“有没有更好的方案”,而不只是”怎么把需求做完”,那你有架构师潜质。


阶段目标#

  1. 建立架构思维:从”怎么做”转变为”为什么这样做”
  2. 掌握数据建模:理解并能应用维度建模方法论
  3. 理解数仓架构:掌握分层设计、主题域划分等核心概念
  4. 具备技术选型能力:能评估不同技术方案的优劣

核心技能#

1. 数据建模方法论#

数据建模是架构师的核心技能,决定了数据如何组织和使用

两大建模流派

流派代表特点适用场景
范式建模Bill Inmon先建企业模型,强调规范化企业级数仓,金融行业
维度建模Ralph Kimball业务驱动,以事实和维度为核心分析型应用,互联网行业

维度建模核心概念

┌──────────────────────────────────────────────┐
│                  星型模型                      │
│                                              │
│         dim_user    dim_product              │
│             ↑            ↑                   │
│             │            │                   │
│    dim_time → fact_orders ← dim_channel      │
│             │            │                   │
│             ↓            ↓                   │
│        dim_region  dim_promotion             │
│                                              │
└──────────────────────────────────────────────┘
plaintext
概念说明举例
事实表 (Fact)记录业务事件,包含度量值订单表、点击表
维度表 (Dimension)描述事实的上下文用户表、商品表、时间表
度量 (Measure)可聚合的数值金额、数量、次数
粒度 (Grain)事实表每行代表什么每个订单、每次点击

相关知识维度建模星型模型雪花模型数据建模方法论

2. 数仓分层架构#

分层是数仓架构的基础,解决的是数据复用和管理问题

经典分层架构

┌─────────────────────────────────────────────────┐
│  ADS层 (Application Data Store)                  │
│  面向应用的数据:报表、指标、标签                    │
├─────────────────────────────────────────────────┤
│  DWS层 (Data Warehouse Summary)                  │
│  汇总数据:轻度聚合,公共维度                        │
├─────────────────────────────────────────────────┤
│  DWD层 (Data Warehouse Detail)                   │
│  明细数据:清洗后的业务事实,统一格式                 │
├─────────────────────────────────────────────────┤
│  DIM层 (Dimension)                               │
│  维度数据:公共维度表                              │
├─────────────────────────────────────────────────┤
│  ODS层 (Operational Data Store)                  │
│  原始数据:业务系统原样抽取                         │
└─────────────────────────────────────────────────┘
plaintext

分层设计原则

原则说明反例
高内聚同层数据逻辑相近DWD层混入汇总逻辑
低耦合层间依赖清晰上层直接访问ODS
可追溯数据来源可追踪不知道数据从哪来
可复用避免重复建设每个需求都从ODS开始

相关知识数仓分层架构ODS层设计DWD层设计

3. 主题域与数据域划分#

主题域是数仓的组织方式,决定了数据如何被发现和理解

主题域划分方法

方法说明适用场景
按业务流程交易、物流、支付流程型业务
按分析主题用户、商品、订单分析型应用
按组织架构销售域、财务域大型企业

电商数仓主题域示例

主题域核心实体核心事实
用户域用户、会员注册、登录、行为
商品域商品、类目、品牌上下架、价格变更
交易域订单、支付下单、支付、退款
物流域物流单、仓库发货、签收
营销域活动、优惠券领券、核销

4. 技术选型基础#

架构师需要知道什么场景用什么技术

存储技术选型

场景技术选择原因
海量历史数据Hive/Spark + HDFS成本低,批处理
实时分析ClickHouse/Doris列存,快速聚合
即席查询Presto/Trino联邦查询,交互式
高并发点查MySQL/Redis低延迟,高 QPS

计算引擎选型

场景技术选择原因
离线批处理Spark/Hive成熟稳定
实时处理Flink低延迟,精确一次
流批一体Flink SQL统一开发体验

[!warning] 选型建议 不要追求技术的”先进性”,要根据团队能力、业务需求、运维成本综合考虑。小团队用成熟稳定的技术。

相关知识数据存储选型计算引擎对比OLAP引擎选型

5. 架构文档编写#

架构师的产出不只是代码,更重要的是文档

架构文档核心内容

文档类型核心内容受众
架构设计文档整体架构、技术选型、设计决策技术团队
数据字典表结构、字段含义、口径定义开发和分析
数据流图数据从哪来、到哪去、怎么处理全团队
接口文档数据服务的输入输出下游使用方

好的架构文档特点

  1. 写清楚”为什么”,而不只是”是什么”
  2. 有图有表,不是纯文字
  3. 及时更新,和实际一致
  4. 易于理解,新人能看懂

学习资源#

推荐书籍#

  • 《数据仓库工具箱》(Kimball) - 维度建模圣经
  • 《数据架构》- 企业数据管理
  • 《大数据之路》(阿里) - 互联网数仓实践

实践建议#

  1. 重新审视你现在项目的数仓设计,找出问题
  2. 尝试用维度建模方法重新设计一个业务主题
  3. 写一份数仓架构设计文档

这个阶段的难点#

难点原因突破方法
建模思维转变习惯了面向需求开发多看经典案例,思考设计原因
业务理解不够只关注技术主动了解业务,参与需求评审
技术选型困难不了解各技术特点实际对比测试,看官方文档
没有全局视角之前只做局部画出完整的数据流图

可胜任的岗位#

岗位名称核心要求薪资范围(参考)
数仓开发工程师(高级)数仓设计、建模能力20-35K
数据架构师(初级)架构设计、技术选型25-40K
数据平台工程师平台架构、技术规划25-40K

给这个阶段同学的建议#

做的事情#

  • 多问为什么:每个设计决策背后都有原因
  • 画架构图:用图来思考和表达
  • 参与架构评审:学习他人如何做设计决策
  • 阅读经典:Kimball 的书虽然老但很有价值

避免的事情#

  • 只关注技术实现,忽略业务需求
  • 追求复杂架构,忽略团队实际能力
  • 不写文档,设计只在脑子里
  • 不做取舍,想要所有优点

[!quote] 关键心态 架构没有标准答案,只有在约束条件下的最优解。好的架构师是在各种权衡中找到平衡点。


下一阶段预告#

完成 L2 后,你可以进入 L3 架构设计,学习:

  • 复杂数据架构设计
  • 数据湖与湖仓一体
  • 实时数仓架构
  • 数据治理架构
数据架构师 L2:架构基础
https://blog.ss-data.cc/blog/data-architect-l2-foundation
Author 石头
Published at 2025年1月5日
Comment seems to stuck. Try to refresh?✨