⚡

数据架构Skill data-architecture

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

数据工程 0 次安装 46 次浏览 更新于 3/11/2026
名称 数据架构
描述 在设计数据平台时使用,选择数据湖/数据湖屋/数据仓库,或实施数据网格模式。涵盖现代数据架构方法。 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 - 数据库模式