本篇文章是【数据库、数据业务价值、大数据设计/架构/技术/工程】系列的第三篇。喜欢请关注本号,并点赞收藏。
01 主流大数据架构的演进里程碑和典型案例
1. 传统数据仓库
时间里程碑:
- 1970s-1980s: 关系数据库管理系统(RDBMS)被广泛采用。
- 1990s: 数据仓库概念普及,企业开始大规模部署数据仓库用于决策支持。
特点:
- 基于关系数据库(RDBMS)
- 数据通过ETL(抽取-转换-加载)过程加载到数据仓库中
- 支持结构化数据分析
业务痛点:
- 数据处理能力有限,难以应对大规模数据处理需求
- 对非结构化数据处理能力不足
- 处理速度相对较慢,实时性较差
典型案例:
- IBM Db2: IBM推出的关系数据库管理系统,被广泛应用于企业数据仓库解决方案。
- Oracle Database: Oracle的数据仓库解决方案,以其强大的SQL处理能力和扩展性著称。
2. 数据仓库分层架构(ODS、DWD、DWS、DWT、ADS)
时间里程碑:
- 2000s: 数据仓库架构逐渐分层化,以应对复杂数据处理需求。
主要提出者和著作:
- Bill Inmon的《Building the Data Warehouse》(数据仓库之父)
- Ralph Kimball的《The Data Warehouse Toolkit》(维度建模之父)
分层架构
- ODS(Operational Data Store): 操作数据存储,存储来自业务系统的原始数据。
- DWD(Data Warehouse Detail): 明细数据层,对数据进行清洗、转换。
- DWS(Data Warehouse Summary): 汇总数据层,对数据进行聚合和汇总。
- DWT(Data Warehouse Topic): 主题数据层,按主题对数据进行划分和存储。
- ADS(Application Data Store): 应用数据存储,针对具体应用进行数据准备。
特点:
- 分层结构:数据仓库根据业务场景的一种数据分层,支付复杂业务需求,业务相应更快速,同时兼顾数据处理复杂度。
- 数据清洗和转换:在数据进入各层之前,需要进行清洗和转换,确保数据的质量和一致性。
- 历史数据存储:可以存储大量历史数据,支持复杂的历史数据分析。
- 高性能查询:通过预计算和索引优化,提高查询性能。
业务痛点:
- 高成本:需要大量资源来处理和存储数据,包括硬件和软件成本。
- 复杂性:架构设计和维护复杂,需要处理数据流动和转换的逻辑。
- 延迟:批处理任务可能导致数据更新延迟,不适合实时数据分析。
- 灵活性不足:数据模型相对固定,难以快速适应新的业务需求。
普及时间:
- 2010年后,大型企业逐渐采用分层数据仓库架构,并结合Hadoop和Spark等大数据处理技术来应对海量数据处理和分析的需求。
典型案例:
- 阿里巴巴:采用分层数据仓库架构来支持其大规模电商业务,进行数据分析和决策支持。
- 京东:使用分层数据仓库架构进行电商数据处理和分析,提升用户体验和运营效率。
3. Hadoop生态系统
时间里程碑:
- 2006: Hadoop 0.1版本发布,由Doug Cutting和Mike Cafarella开发。
- 2008: Hadoop项目成为Apache顶级项目,开始在业界广泛应用。
特点:
- 分布式存储和计算框架(HDFS和MapReduce)
- 支持大规模数据处理
- 适合处理结构化、半结构化和非结构化数据
业务痛点:
- 提高了数据处理的规模和效率
- 支持大规模并行计算
- 但编程模型(MapReduce)较为复杂,实时性不足
典型案例:
- Yahoo!: 大规模采用Hadoop进行数据处理和分析,成为Hadoop的早期推动者。
- Facebook: 使用Hadoop进行数据仓库和数据分析,管理PB级数据。
4. Spark生态系统
时间里程碑:
- 2009: Spark项目在加州大学伯克利分校AMPLab启动。
- 2014: Spark成为Apache顶级项目,获得广泛关注和应用。
特点:
- 内存计算框架,较Hadoop速度更快
- 支持批处理、流处理和交互式查询
- 提供丰富的API(如Spark SQL、MLlib等)
业务痛点:
- 提高了数据处理速度
- 适用于实时数据处理和复杂计算任务
- 编程模型更为简单灵活
典型案例:
- Uber: 使用Spark进行实时数据分析和流处理,优化交通和乘车体验。
- Netflix: 采用Spark进行推荐系统和数据分析,提升用户体验。
5. Lambda架构
时间里程碑:
- 2011: Nathan Marz提出Lambda架构概念,是一种同时处理批处理数据和实时数据的架构。它将数据流分为三个层次:批处理层、速度层和服务层。在其书《Big Data》中详细介绍。
特点:
- 混合批处理和流处理架构
- 将数据处理分为批处理层和速度层
- 适用于需要实时数据处理的业务场景
业务痛点:
- 提高了数据处理的实时性
- 结合批处理和流处理的优点
- 但架构复杂度较高,数据冗余问题
典型案例:
- Twitter: 使用Lambda架构处理实时数据流,分析用户行为和内容分发。
- LinkedIn: 采用Lambda架构进行实时数据处理和分析,优化用户推荐和广告投放。
6. Kappa架构
时间里程碑:
- 2014: Jay Kreps在博客中提出Kappa架构,是一种简化的流处理架构,旨在只使用一个实时数据处理路径来处理所有数据。Kappa架构主要依赖于消息日志系统(如Kafka)和流处理框架(如Kafka Streams、Apache Flink),旨在简化数据处理架构。
特点:
- 仅使用流处理,不区分批处理和流处理
- 简化了数据处理架构
业务痛点:
- 适用于实时数据处理需求
- 简化了架构设计和实现
- 但对历史数据处理支持有限
典型案例:
- LinkedIn: 使用Kappa架构实现实时数据处理和事件流分析,改进用户体验和内容推荐。
- Netflix: 采用Kappa架构进行实时日志处理和监控,提升系统性能和稳定性。
7. 数据湖架构
时间里程碑:
- 2010s: 数据湖概念逐渐兴起,用于存储大规模的结构化和非结构化数据。
特点:
- 海量数据存储:数据湖可以存储结构化、半结构化和非结构化数据。
- 灵活的数据接入:支持多种数据源和格式,数据可以以原始格式存储。
- 快速数据摄取:数据可以快速摄取到数据湖中,提供低延迟的数据存储。
- 数据探索:数据科学家和分析师可以自由探索和处理数据,适用于高级分析和机器学习。
业务痛点:
- 数据质量和治理:由于缺乏结构化的数据模型,数据质量和治理可能成为问题。
- 性能问题:处理和查询大规模非结构化数据时,可能会面临性能挑战。
- 数据冗余:由于数据以原始格式存储,可能会导致数据冗余和存储浪费。
- 安全性:确保数据湖中的数据安全性和访问控制可能较为复杂。
典型案例:
- Amazon S3: 用作数据湖的存储解决方案,广泛应用于企业的数据管理。
- Microsoft Azure Data Lake: 提供大规模数据存储和分析服务,支持多种数据类型。
8. 湖仓一体架构
时间里程碑:
- 2020s: 湖仓一体架构概念提出,并迅速在大数据领域得到应用。
特点:
- 统一的数据存储和管理:将数据湖和数据仓库功能整合在一起,提供统一的数据存储和管理平台。
- 高性能处理:结合数据湖的扩展性和数据仓库的高性能计算能力,提供高效的数据处理和分析。
- 简化的数据架构:减少了数据移动和转换的复杂性,简化了数据管道。
- 支持高级分析:集成BI工具和机器学习框架,支持高级数据分析和建模。
业务痛点:
- 架构复杂性:尽管简化了数据管道,但湖仓一体架构本身的设计和实施仍然需要专业知识和经验。
- 技术依赖:依赖于新的技术栈,需要对现有系统进行较大的改造和升级。
- 数据治理和安全性:统一的数据存储和管理虽然简化了数据治理,但仍需要有效的治理和安全策略。
典型案例:
- Databricks Lakehouse: 结合数据湖和数据仓库的优势,支持大规模数据处理和AI应用。
- Snowflake: 提供湖仓一体解决方案,支持云上大规模数据存储和分析。
02 数仓分层、数据湖、湖仓一体架构对比
03 世界知名IT企业的大数据架构
Google:
- 架构:Google BigQuery、Dremel
- 特点:分布式数据分析服务,支持大规模数据查询和处理
Amazon:
- 架构:Amazon Redshift、AWS Glue、Amazon EMR
- 特点:完全托管的数据仓库服务、数据集成服务和分布式数据处理框架
Microsoft:
- 架构:Azure Synapse Analytics、Azure Data Lake
- 特点:整合数据仓库和大数据分析服务,支持大规模数据存储和分析
IBM:
- 架构:IBM Db2 Big SQL、IBM Cloud Pak for Data
- 特点:企业级大数据分析平台,支持结构化和非结构化数据分析
Cloudera:
- 架构:Cloudera Data Platform(CDP)
- 特点:统一的数据平台,支持多云和混合云环境的大数据处理
Databricks:
- 架构:Databricks Lakehouse
- 特点:结合数据仓库和数据湖的优势,支持大规模数据处理和AI应用
本篇文章是【数据库、数据业务价值、大数据设计/架构/技术/工程】系列的第三篇。喜欢请关注本号,并点赞收藏。