-
定义
- 数据平台架构是指用于收集、存储、处理和分析数据的一系列组件、技术和流程的整体架构设计。它就像是一个复杂的数据生态系统的蓝图,旨在高效地管理数据从产生源头到产生价值的整个生命周期。
-
主要层次
- 数据源层
- 这是数据的起点,包含各种类型的数据产生源。例如,企业内部的业务系统(如 ERP 系统产生的订单数据、库存数据,CRM 系统产生的客户关系数据)、外部数据(如市场调研报告、社交媒体数据)、传感器(物联网设备产生的环境数据、设备运行数据)等。这些数据源的数据格式多样,可能是结构化的数据库记录(如关系型数据库中的表格数据),也可能是半结构化的(如 XML、JSON 格式的数据)或者非结构化的数据(如文本文件、图像、音频等)。
- 数据采集层
- 负责从数据源获取数据并传输到数据存储层。这一层通常会使用数据采集工具,如 ETL(Extract,Transform,Load)工具。ETL 工具可以从不同的数据源提取数据,例如从关系型数据库中通过 SQL 查询提取指定的数据表,对数据进行清洗和转换(如统一数据格式、处理缺失值、转换数据类型等),然后加载到数据存储系统中。另外,对于实时性要求较高的数据,可能会采用数据抽取工具(如 Kafka 等消息队列系统)来实现近实时的数据采集,确保数据能够及时地被后续处理。
- 数据存储层
- 用于存储采集到的数据,根据数据的特点和用途可以分为多种存储方式。
- 关系型数据库:如 MySQL、Oracle 等,适用于存储结构化数据,以表格形式组织数据,通过 SQL 语言进行数据的操作。它们提供了强大的事务处理能力,适合处理企业核心业务数据,如财务数据、订单交易数据等。
- 非关系型数据库:
- 键值存储数据库(如 Redis):以键 - 值对的形式存储数据,数据读写速度快,常用于缓存数据或者存储简单的配置信息。例如,在一个电商网站中,Redis 可以存储热门商品的信息,加快用户访问这些商品详情页的速度。
- 文档数据库(如 MongoDB):适合存储半结构化数据,以文档(如 JSON 格式)为单位存储数据。它在处理具有复杂结构的应用数据(如内容管理系统中的文章数据,包含标题、作者、内容、标签等多种字段)方面具有优势。
- 列存储数据库(如 HBase):主要用于存储海量数据,按列存储数据,适合数据分析场景,特别是在处理大数据量的查询和统计分析时,能够快速地检索列相关的数据。
- 数据湖:是一个集中存储大量原始数据(包括结构化、半结构化和非结构化数据)的存储库。例如,一个大型互联网公司的数据湖可能存储了网站日志数据、用户上传的各种文件、从不同业务系统抽取的备份数据等。数据湖通常使用分布式文件系统(如 Hadoop 的 HDFS)构建,支持在数据上进行灵活的分析和处理。
- 数据处理层
- 对存储的数据进行加工处理,以满足数据分析和应用的需求。
- 批处理:例如使用 Hadoop MapReduce 或 Spark 等大数据处理框架,对大规模的数据进行批量处理。以电商公司的销售数据分析为例,通过批处理可以每天或者每周对大量的订单数据进行汇总、统计,计算出销售额、销售量等指标,为企业决策提供数据支持。
- 流处理:针对实时性要求高的数据,如金融交易数据、物联网设备的实时监测数据等,采用流处理技术(如 Apache Flink、Apache Storm)。这些技术可以在数据产生的瞬间进行处理,及时发现异常情况或者提取有价值的信息。例如,在金融风控领域,通过对流式的交易数据进行实时分析,能够快速识别出可疑的交易行为并及时预警。
- 数据分析层
- 提供数据分析和挖掘的功能,帮助用户从数据中获取有价值的信息。
- 数据挖掘工具:可以发现数据中的潜在模式和关系。例如,在零售行业,通过关联规则挖掘算法可以发现顾客购买商品之间的关联,如购买尿布的顾客很可能同时购买啤酒,从而为商品陈列和促销策略提供依据。
- 数据可视化工具:如 Tableau、PowerBI 等,将分析的数据以直观的图表(柱状图、折线图、饼图等)、地图或者仪表盘的形式展示出来。这使得数据更容易被理解,方便企业管理者、分析师等人员快速把握数据的关键信息,做出决策。
- 数据应用层
- 将数据分析的结果应用于实际业务场景,实现数据的价值转化。例如,在精准营销场景中,根据用户的行为数据和画像数据,向用户推送个性化的产品推荐和营销活动;在智能交通领域,通过分析交通流量数据,优化交通信号灯的控制策略,缓解交通拥堵。
- 数据源层
-
架构模式
- 集中式架构
- 数据集中存储在一个或几个中心服务器或数据中心中。优点是便于管理和维护,数据一致性容易保证。例如,一些小型企业的内部数据平台,所有的数据都存储在企业内部的数据中心,通过统一的数据库管理系统进行管理。但这种架构可能存在单点故障风险,并且在处理海量数据和高并发场景时可能会面临性能瓶颈。
- 分布式架构
- 数据和处理任务分布在多个节点上,通过网络进行通信和协调。这种架构能够处理大规模的数据和高并发的请求。例如,大型互联网公司的数据平台采用分布式架构,如使用 Hadoop 集群、分布式数据库等,将数据存储和处理任务分散到多个服务器甚至多个数据中心,提高了系统的扩展性和容错性。
- 混合架构
- 结合了集中式和分布式架构的特点。例如,对于企业的核心敏感数据采用集中式存储和管理,以确保数据的安全性和一致性;而对于海量的日志数据、用户行为数据等采用分布式架构进行存储和处理,以满足数据量和性能的要求。
- 集中式架构
数据基础平台主要组件包括:HDFS 分布式存储集群,YARN 计算集群,Spark、Hive 计算引擎。
yarn小调度,flink=》+ Kyuubi
升级 Spark3 的时候,废弃原有的 Spark2 的 Thrift Server 的改造实现,引入 Apache Kyuubi 项目。