📌 数据仓库(Data Warehouse, DWH)发展历程
数据仓库技术的演进可以分为 四个主要阶段,从传统数仓到现代云原生数仓,技术架构和数据处理方式发生了巨大变化:
1️⃣ 早期:传统数仓(1990s~2000s)
代表技术:
- 📊 Bill Inmon 模型(企业级数据仓库,EDW):
- 自上而下 设计,先建全局模型(3NF),再分层汇总(OLAP)。
- 特点:强一致性,适合金融、电信等规范行业,但灵活性低、成本高。
- 🌟 Ralph Kimball 模型(维度建模):
- 自下而上,以星型/雪花模型为核心,快速构建数据集市(Data Mart)。
- 特点:敏捷开发,适合业务分析,但数据冗余较多。
技术栈:
- 数据库:Oracle、IBM DB2、Teradata(MPP架构)
- ETL工具:Informatica、DataStage
痛点:
- 扩展性差,难以处理海量数据。
- 计算和存储耦合,成本高昂。
2️⃣ 大数据时代:Hadoop 生态(2010s)
技术演进:
- 🐘 Hadoop 生态崛起:
- 通过 HDFS 存储 + MapReduce 计算,解决传统数仓的扩展性问题。
- Lambda 架构(批流分离):
- 批处理:Hive(SQL on Hadoop)
- 流处理:Storm/Flink
- 问题:实时性差,运维复杂,SQL支持弱。
- 🔥 Spark 替代 MR:
- 内存计算提升性能,Spark SQL 提供更好的兼容性。
代表方案:
- Cloudera CDH、Hortonworks HDP
3️⃣ 现代数仓(2015~2020):云原生与实时化
关键变革:
- 存算分离:
- 存储:对象存储(S3、OSS)+ 分布式文件系统(HDFS 渐被替代)。
- 计算:弹性伸缩的云资源(如 AWS EMR、阿里云 MaxCompute)。
- 实时数仓:
- Kappa 架构(Flink 统一批流)。
- 技术:Flink + Kafka + Iceberg/Hudi(流批一体)。
- 数据湖与数仓融合:
- Lakehouse 架构(Delta Lake、Iceberg、Hudi):
- 在数据湖(低成本存储)上实现 ACID、索引等数仓能力。
代表技术:
- 云数仓:Snowflake、BigQuery、Redshift
- 开源:Trino(Presto)、Apache Doris
4️⃣ 当前主流数仓建设方案(2020s~至今)
📌 架构选型
需求场景 |
推荐方案 |
核心优势 |
低成本 & 灵活性高 |
Lakehouse(Delta/Iceberg + Spark) |
兼容 Parquet/ORC,支持 ACID |
实时分析 |
Flink + Kafka + ClickHouse |
亚秒级延迟,高吞吐 |
云原生 & 极简运维 |
Snowflake / BigQuery |
按需付费,自动扩缩容 |
高性能 OLAP |
Apache Doris / StarRocks |
向量化引擎,MPP 并行查询 |
📌 典型技术栈
- 批处理层:
- 存储:S3/OSS + Iceberg
- 计算:Spark SQL / Hive
- 实时层:
- 流式摄入:Flink CDC / Kafka
- 实时存储:Hudi(Merge on Read)
- 服务层:
- OLAP引擎:Trino(即席查询)、Doris(高并发)
- BI工具:Tableau、Superset
🔮 未来趋势
- AI 增强数仓:
- 自动化数据建模(如 Google BigQuery ML)。
- 向量数据库(如 Pinecone)与数仓结合。
- 统一语义层:
- 通过 Cube / Metrics Layer(如 Cube.js)解耦计算与业务逻辑。
- Serverless 化:
- 云厂商提供全托管服务(如 AWS Aurora、阿里云 MaxCompute)。
📌 总结建议
- 中小企业:直接采用 Snowflake/BigQuery(省去运维成本)。
- 大数据团队:使用 Lakehouse(Delta + Spark/Flink) 平衡灵活性与性能。
- 实时场景:优先 Flink + Doris 构建流批一体架构。
如果需要具体某个技术栈的部署方案(如基于 Flink + Iceberg 的实时数仓),可以进一步探讨!