主流大数据架构全面解析

发表时间: 2024-07-15 15:14

本篇文章是【数据库、数据业务价值、大数据设计/架构/技术/工程】系列的第三篇。喜欢请关注本号,并点赞收藏。



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): 应用数据存储,针对具体应用进行数据准备。

特点

  1. 分层结构:数据仓库根据业务场景的一种数据分层,支付复杂业务需求,业务相应更快速,同时兼顾数据处理复杂度。
  2. 数据清洗和转换:在数据进入各层之前,需要进行清洗和转换,确保数据的质量和一致性。
  3. 历史数据存储:可以存储大量历史数据,支持复杂的历史数据分析。
  4. 高性能查询:通过预计算和索引优化,提高查询性能。

业务痛点

  1. 高成本:需要大量资源来处理和存储数据,包括硬件和软件成本。
  2. 复杂性:架构设计和维护复杂,需要处理数据流动和转换的逻辑。
  3. 延迟:批处理任务可能导致数据更新延迟,不适合实时数据分析。
  4. 灵活性不足:数据模型相对固定,难以快速适应新的业务需求。

普及时间

  • 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: 数据湖概念逐渐兴起,用于存储大规模的结构化和非结构化数据。

特点:

  1. 海量数据存储:数据湖可以存储结构化、半结构化和非结构化数据。
  2. 灵活的数据接入:支持多种数据源和格式,数据可以以原始格式存储。
  3. 快速数据摄取:数据可以快速摄取到数据湖中,提供低延迟的数据存储。
  4. 数据探索:数据科学家和分析师可以自由探索和处理数据,适用于高级分析和机器学习。

业务痛点:

  1. 数据质量和治理:由于缺乏结构化的数据模型,数据质量和治理可能成为问题。
  2. 性能问题:处理和查询大规模非结构化数据时,可能会面临性能挑战。
  3. 数据冗余:由于数据以原始格式存储,可能会导致数据冗余和存储浪费。
  4. 安全性:确保数据湖中的数据安全性和访问控制可能较为复杂。

典型案例:

  • Amazon S3: 用作数据湖的存储解决方案,广泛应用于企业的数据管理。
  • Microsoft Azure Data Lake: 提供大规模数据存储和分析服务,支持多种数据类型。


8. 湖仓一体架构

时间里程碑

  • 2020s: 湖仓一体架构概念提出,并迅速在大数据领域得到应用。

特点:

  1. 统一的数据存储和管理:将数据湖和数据仓库功能整合在一起,提供统一的数据存储和管理平台。
  2. 高性能处理:结合数据湖的扩展性和数据仓库的高性能计算能力,提供高效的数据处理和分析。
  3. 简化的数据架构:减少了数据移动和转换的复杂性,简化了数据管道。
  4. 支持高级分析:集成BI工具和机器学习框架,支持高级数据分析和建模。

业务痛点:

  1. 架构复杂性:尽管简化了数据管道,但湖仓一体架构本身的设计和实施仍然需要专业知识和经验。
  2. 技术依赖:依赖于新的技术栈,需要对现有系统进行较大的改造和升级。
  3. 数据治理和安全性:统一的数据存储和管理虽然简化了数据治理,但仍需要有效的治理和安全策略。

典型案例:

  • 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应用


本篇文章是【数据库、数据业务价值、大数据设计/架构/技术/工程】系列的第三篇。喜欢请关注本号,并点赞收藏。