数据架构Skill data-architecture

数据架构技能专注于现代数据平台设计,包括数据湖、数据湖屋、数据仓库和数据网格等模式的选用与实施,涉及数据存储策略、架构权衡和治理。关键词:数据架构、数据湖、数据湖屋、数据网格、数据平台设计、数据存储策略、ACID事务、数据治理。

数据工程 0 次安装 0 次浏览 更新于 3/11/2026

name: 数据架构 description: 在设计数据平台时使用,选择数据湖/数据湖屋/数据仓库,或实施数据网格模式。涵盖现代数据架构方法。 allowed-tools: Read, Glob, Grep

数据架构

现代数据架构模式,包括数据湖、数据湖屋、数据网格和数据平台设计。

何时使用此技能

  • 选择数据湖、数据仓库和数据湖屋
  • 设计现代数据平台
  • 实施数据网格原则
  • 规划数据存储策略
  • 理解数据架构权衡

数据架构演变

第一代:数据仓库(1990年代-2000年代)
- 仅结构化数据
- ETL进入仓库
- 星型/雪花型模式
- 基于SQL的分析

第二代:数据湖(2010年代)
- 所有数据类型(结构化、半结构化、非结构化)
- 读时模式
- 基于Hadoop/HDFS
- 廉价存储,复杂处理

第三代:数据湖屋(2020年代)
- 两者优势:湖的灵活性 + 仓库功能
- 湖上的ACID事务
- 可选模式强制
- 统一分析和机器学习

架构比较

数据仓库

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   源数据    │ ──► │     ETL     │ ──► │  数据仓库   │
│ (结构化)  │     │ (转换)    │     │(星型/雪花)│
└─────────────┘     └─────────────┘     └─────────────┘
                                              │
                                              ▼
                                        ┌─────────────┐
                                        │     BI      │
                                        │    分析     │
                                        └─────────────┘

特性:
- 写时模式
- 针对SQL查询优化
- 仅结构化数据
- 高数据质量
- 昂贵存储

最适合:
- 商业智能
- 财务报告
- 结构化分析

数据湖

┌─────────────┐     ┌─────────────┐
│   源数据    │ ──► │   数据湖    │
│    (所有)  │     │   (原始)   │
└─────────────┘     └─────────────┘
                          │
         ┌────────────────┼────────────────┐
         ▼                ▼                ▼
    ┌─────────┐     ┌─────────┐     ┌─────────┐
    │   机器学习 │     │   ETL   │     │ Spark  │
    │    训练   │     │ 到数据仓库│     │  分析   │
    └─────────┘     └─────────┘     └─────────┘

特性:
- 读时模式
- 所有数据类型
- 廉价存储
- 灵活处理
- “数据沼泽”风险

最适合:
- 数据科学/机器学习
- 非结构化数据
- 实验性分析

数据湖屋

┌─────────────┐     ┌─────────────────────────────────┐
│   源数据    │ ──► │          数据湖屋              │
│    (所有)  │     │  ┌──────────────────────────┐   │
└─────────────┘     │  │      元数据层            │   │
                    │  │ (Delta/Iceberg/Hudi)   │   │
                    │  └──────────────────────────┘   │
                    │  ┌──────────────────────────┐   │
                    │  │      存储层              │   │
                    │  │    (对象存储)          │   │
                    │  └──────────────────────────┘   │
                    └─────────────────────────────────┘
                                   │
              ┌────────────────────┼────────────────────┐
              ▼                    ▼                    ▼
         ┌─────────┐         ┌─────────┐         ┌─────────┐
         │   SQL   │         │   机器学习 │         │   流处理 │
         │   BI    │         │   工作负载 │         │  过程   │
         └─────────┘         └─────────┘         └─────────┘

特性:
- ACID事务
- 模式演变
- 时间旅行
- 统一批处理/流处理
- 开放格式

最适合:
- 统一分析
- 商业智能和机器学习
- 现代数据平台

架构选择指南

因素 数据仓库 数据湖 数据湖屋
数据类型 结构化 所有 所有
查询性能 优秀 差-中等 良好
数据质量 可变 可配置
成本 中等
机器学习工作负载 有限 优秀 优秀
实时性 有限 良好 良好
治理
复杂度 中等
决策树:

数据是否主要为结构化,重点是商业智能?
├── 是 → 数据仓库
└── 否
    └── 需要机器学习 + 商业智能在同一数据上?
        ├── 是 → 数据湖屋
        └── 否
            └── 主要是机器学习/非结构化?
                ├── 是 → 数据湖
                └── 否 → 数据湖屋

数据湖屋技术

Delta Lake(Databricks)

特性:
- ACID事务
- 时间旅行(数据版本控制)
- 模式强制/演变
- 统一批处理/流处理
- 优化性能(Z排序、压缩)

文件格式:Parquet + Delta日志

Apache Iceberg(Netflix)

特性:
- ACID事务
- 隐藏分区
- 模式演变
- 时间旅行
- 供应商中立

文件格式:Parquet/ORC/Avro + 元数据

Apache Hudi(Uber)

特性:
- ACID事务
- 增量处理
- 记录级更新
- 时间旅行
- 针对流处理优化

文件格式:Parquet + Hudi元数据

技术比较

特性 Delta Lake Iceberg Hudi
ACID
时间旅行
模式演变 良好 优秀 良好
流处理 优秀 良好 优秀
生态系统 Databricks 广泛 广泛
性能 优秀 优秀 良好
社区 增长中 中等

数据网格

原则

数据网格 = 去中心化数据架构

四个原则:

1. 域所有权
   - 数据由域团队拥有
   - 不是中心化数据团队

2. 数据作为产品
   - 将数据视为产品
   - 质量、可发现性、可用性

3. 自助服务平台
   - 平台使域团队能够操作
   - 减少摩擦

4. 联邦治理
   - 全局标准
   - 本地实施

数据产品

数据产品 = 数据的自治单元

组件:
┌──────────────────────────────────────┐
│           数据产品                   │
│  ┌──────────┐  ┌──────────────────┐ │
│  │   数据    │  │     元数据       │ │
│  │ (表格)   │  │ (模式、文档)   │ │
│  └──────────┘  └──────────────────┘ │
│  ┌──────────┐  ┌──────────────────┐ │
│  │   代码    │  │      API         │ │
│  │ (ETL)   │  │  (访问层)       │ │
│  └──────────┘  └──────────────────┘ │
│  ┌──────────────────────────────────┐│
│  │         质量 + SLA               ││
│  └──────────────────────────────────┘│
└──────────────────────────────────────┘

数据网格 vs 中心化

方面 中心化 数据网格
所有权 中心数据团队 域团队
扩展性 团队瓶颈 随组织扩展
域知识 翻译中丢失 保留
治理 中心化 联邦化
实施 统一 异构
复杂度 初始较低 初始较高

数据建模模式

星型模式

        ┌─────────────┐
        │  时间维度   │
        └──────┬──────┘
               │
┌───────────┐  │  ┌───────────┐
│产品维度   ├──┼──┤客户维度   │
└───────────┘  │  └───────────┘
               │
        ┌──────┴──────┐
        │  销售事实   │
        └─────────────┘

优点:简单,快速查询
缺点:非规范化,冗余
最适合:商业智能,报告

雪花型模式

规范化维度:
产品维度 → 类别维度 → 子类别维度

优点:较少冗余
缺点:更多连接,较慢
最适合:复杂层次结构

数据仓库库

中心(业务键) ←→ 链接(关系) ←→ 卫星(属性)

优点:可审计,灵活,可扩展
缺点:复杂,学习曲线
最适合:企业数据仓库

存储层

青铜/白银/黄金(奖章架构)

┌─────────┐     ┌─────────┐     ┌─────────┐
│ 青铜层   │ ──► │ 白银层   │ ──► │  黄金层  │
│ (原始) │     │(清理)  │     │(精选)  │
└─────────┘     └─────────┘     └─────────┘

青铜:原始摄取,仅追加
白银:清理、验证、整合
黄金:业务级聚合、特征

数据湖中的区域

着陆区:来自源的原始文件
原始区:结构化原始数据
精选区:转换、质量检查
消费区:准备分析
沙盒区:探索和实验

最佳实践

数据质量

实施质量门:
- 模式验证
- 空值检查
- 范围验证
- 参照完整性
- 新鲜度监控

治理

关键能力:
- 数据目录
- 血缘跟踪
- 访问控制
- 隐私合规
- 审计日志

性能

优化技术:
- 分区(按日期、区域)
- 聚类/Z排序
- 压缩
- 缓存
- 物化视图

相关技能

  • etl-elt-patterns - 数据转换
  • stream-processing - 实时数据
  • database-scaling - 数据库模式