大数据学习(69)-数据架构
🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞
目录
数据架构
🍋一、ODS(Operational Data Store)——操作数据存储
ODS概述
ODS是什么?
ODS的核心特点
ODS的作用
ODS的典型场景
ODS的常见问题与应对策略
ODS与其他层的关系
ODS技术实现的关键点
ODS的发展趋势
🍋二、DWD(Data Warehouse Detail)——数据仓库明细层
DWD概述
DWD的核心特点
DWD的作用
DWD的典型场景
DWD的常见问题与应对策略
DWD与其他层的关系
DWD技术实现的关键点
🍋三、DWS(Data Warehouse Summary)——数据仓库汇总层
DWS概述
DWS的核心特点
DWS的作用
DWS的典型场景
DWS的常见问题与应对策略
DWS与其他层的关系
DWS技术实现的关键点
🍋四、ADS(Application Data Store)——应用数据存储
ADS概述
ADS的核心特点
ADS的作用
ADS的典型场景
ADS的常见问题与应对策略
ADS与其他层的关系
ADS技术实现的关键点
数据架构
数据层的存储一般如下:
Data Source:数据源一般是业务库和埋点,当然也会有第三方购买数据等多种数据来源方式。业务库的存储一般是Mysql 和 PostgreSql。
ODS 层:ODS 的数据量一般非常大,所以大多数公司会选择存在HDFS上,即Hive或者Hbase,Hive居多。
DW 层:一般和 ODS 的存储一致,但是为了满足更多的需求,也会有存放在 PG 和 ES 中的情况。
ADS 层:应用层的数据,一般都要求比较快的响应速度,因此一般是放在 Mysql、PG、Redis中。
按业务分类汇总数据源,ODS层不同来源的日志文件汇总成一张表,保存到DWD层;从DWD层中选取业务关注的核心维度来做聚合操作,比如只保留人、商品、设备和页面区域维度,以此类推生成很多个DWM的中间表;从DWM层抽取数据,将一个人在整个网站中的行为数据放到一张表中,到DWS层,这就是我们的宽表了,可以快速满足大部分的通用型业务需求;
最后,在APP应用层,根据需求从DWS层的一张或者多张表取出数据拼接成一张应用表即可。
从能力范围来讲,我们希望80%需求由20%的表来支持。直接点讲,就是大部分(80%以上)的需求,都用DWS的表来支持就行,DWS支持不了的,就用DWM和DWD的表来支持,这些都支持不了的极少一部分数据需要从原始日志中捞取。结合第一点来讲的话就是:80%的需求,我们都希望以对应用很友好的方式来支持,而不是直接暴露给应用方原始日志。
🍋一、ODS(Operational Data Store)——操作数据存储
ODS概述
ODS作为数据仓库的起点,承载着连接源系统与数据仓库其他层次的重要任务。它不仅是原始数据的存储地,也是数据清洗、整合的出发点。通过合理设计和管理ODS层,企业可以确保数据的完整性、实时性和可用性,从而为后续的分析和决策提供坚实的基础。
ODS是什么?
ODS(操作数据存储)是数据仓库架构中的第一层,主要用于存储从多个业务系统中采集的原始数据。这些数据可能来自ERP、CRM、日志系统、传感器数据或第三方平台等多种来源。ODS类似于一个“原材料仓库”,为数据仓库提供未经加工的数据。
ODS的核心特点
- 实时性强:ODS中的数据通常与业务系统保持高度同步,能够近实时地获取最新数据。
- 未加工状态:ODS中的数据基本是“原生态”的,未经任何清洗或加工,可能包含重复、不一致甚至错误的信息。
- 多样性和复杂性:数据格式多样,包括结构化、半结构化或非结构化数据。
- 生命周期短:ODS不是数据的长期存储地,数据会随着时间被迁移到其他层或被清理。
ODS的作用
- 统一数据入口:作为数据仓库的“统一入口”,从不同来源系统获取的数据会首先进入ODS进行存储。
- 提供原始数据:后续的清洗、分析、建模等操作都需要基于原始数据,ODS的完整性对整个数据链条的可靠性至关重要。
- 支持轻量级查询:在某些场景下,ODS也可用于轻量级的实时查询或分析。
- 数据备份和恢复:作为业务系统数据的备份点,为应对突发情况提供支持。
ODS的典型场景
- 实时订单流处理:在电商平台中,用户下单行为会立即记录到ODS中。
- 跨系统数据整合:将CRM系统中的客户信息和ERP系统中的订单信息整合到ODS中。
- 日志存储和初步分析:网站用户的访问日志首先进入ODS,随后进行清洗和行为分析。
- 设备数据采集:工业场景下,来自传感器或机器设备的数据会直接写入ODS。
ODS的常见问题与应对策略
- 数据量过大,存储成本高:使用高效的压缩技术和分区存储策略。
- 数据质量问题:设计基础的校验机制,如主键重复检查或字段完整性校验。
- 多源数据格式不一致:建立标准化的字段映射规则。
ODS与其他层的关系
ODS为DWD层提供最基础的数据来源。数据从ODS进入DWD时,需要进行清洗和规范化处理。ODS需要满足高频数据写入和快速读取的要求,而DWD更注重清洗后的数据质量。
ODS技术实现的关键点
- ETL工具:借助流行的ETL工具实现多源数据的采集、导入与基本清洗。
- 存储技术:选择合适的存储技术来支撑高频的数据写入需求。
- 数据监控:建立数据质量监控系统,实时检测ODS中的数据异常情况。
ODS的发展趋势
- 实时化趋势:引入流式计算框架实现高频数据流的实时写入和处理。
- 云原生化:借助云服务降低本地存储的成本,提高弹性和可扩展性。
- 智能化数据管理:利用AI技术对ODS中的数据质量进行智能化监控和优化。
🍋二、DWD(Data Warehouse Detail)——数据仓库明细层
DWD概述
DWD是数据仓库架构中的第二层,主要负责接收ODS或其他来源的数据,并进行初步的清洗、转换和整合。这一层的数据通常是按天或按小时细粒度的,并且保留了原始数据的大部分细节。DWD的目的是为后续的数据处理和分析提供一个干净、一致的数据基础。
DWD的核心特点
- 细粒度数据:DWD中的数据通常是按天或按小时细粒度的。
- 数据清洗和整合:对ODS中的数据进行清洗、去重、填补缺失值等操作,并整合不同来源的数据。
- 数据规范化:将不同格式的数据规范化为统一的标准格式。
DWD的作用
- 提供干净、一致的数据基础:为后续的数据处理和分析提供可靠的数据源。
- 支持复杂查询和分析:经过清洗和整合后的数据更适合进行复杂的查询和分析。
DWD的典型场景
- 订单明细数据处理:将ODS中的订单数据清洗后存储到DWD中,以便后续分析。
- 客户信息整合:将来自不同系统的客户信息整合到DWD中,形成统一的客户视图。
DWD的常见问题与应对策略
- 数据清洗复杂度高:设计合理的清洗规则和流程,利用自动化工具提高效率。
- 数据整合难度大:建立统一的数据模型和字段映射规则,确保数据的一致性和准确性。
DWD与其他层的关系
DWD接收来自ODS的数据,并进行清洗和整合后,为DWS层提供数据支持。同时,DWD也可以作为某些查询和分析的直接数据源。
DWD技术实现的关键点
- 数据清洗工具:利用数据清洗工具(如Apache Spark、Pandas等)进行数据的清洗和转换。
- 数据整合技术:使用数据整合技术(如ETL工具、SQL等)将不同来源的数据整合到一起。
- 数据存储技术:选择合适的存储技术(如Hadoop HDFS、分布式数据库等)来存储DWD层的数据。
🍋三、DWS(Data Warehouse Summary)——数据仓库汇总层
DWS概述
DWS是数据仓库架构中的第三层,它基于DWD层的数据进行进一步的汇总和聚合。这一层的数据通常是按天、周、月等更粗的粒度进行汇总的,目的是为了支持更高级的分析和报告需求。DWS层的数据通常更加简洁和高效,适合进行快速查询和分析。
DWS的核心特点
- 数据汇总和聚合:对DWD层的数据进行进一步的汇总和聚合。
- 粗粒度数据:DWS中的数据通常是按天、周、月等更粗的粒度进行汇总的。
- 高效查询:经过汇总和聚合后的数据更适合进行高效的查询和分析。
DWS的作用
- 支持高级分析和报告:为管理层和业务人员提供汇总后的数据,支持决策和分析。
- 提高查询效率:汇总后的数据减少了数据量,提高了查询效率。
DWS的典型场景
- 销售数据分析:将DWD中的销售数据按月度汇总,形成销售报表。
- 客户行为分析:将DWD中的客户行为数据按周汇总,分析客户行为趋势。
DWS的常见问题与应对策略
- 数据汇总规则复杂:设计合理的汇总规则,确保数据的准确性和一致性。
- 查询性能问题:优化查询语句和索引,提高查询效率。
DWS与其他层的关系
DWS基于DWD层的数据进行汇总和聚合,为ADS层提供数据支持。同时,DWS也可以作为某些高级分析和报告的直接数据源。
DWS技术实现的关键点
- 数据汇总技术:使用数据汇总技术(如SQL、Apache Spark等)对DWD层的数据进行汇总和聚合。
- 数据存储技术:选择合适的存储技术(如分布式数据库、列式存储等)来存储DWS层的数据。
- 查询优化技术:利用查询优化技术(如索引、分区等)提高查询效率。
🍋四、ADS(Application Data Store)——应用数据存储
ADS概述
ADS是数据仓库架构中的最后一层,它通常包含从DWD或DWS层中抽取、转换和加载(ETL)的数据,以满足特定应用或服务的性能、可扩展性和安全性要求。ADS层的数据可能更加定制化,以支持特定的业务逻辑和查询模式。
ADS的核心特点
- 定制化数据:ADS中的数据是根据特定应用或服务的需求进行定制化的。
- 高性能:ADS层的数据存储和查询性能需要满足特定应用或服务的要求。
- 安全性:ADS层的数据需要保证安全性和隐私性,防止数据泄露和滥用。
ADS的作用
- 支持特定应用或服务:为特定应用或服务提供定制化的数据存储和查询支持。
- 提高数据可用性:通过优化数据存储和查询性能,提高数据的可用性。
ADS的典型场景
- 在线分析处理(OLAP):为数据分析人员提供在线分析处理支持,快速响应查询请求。
- 实时数据分析:为实时数据分析应用提供数据存储和查询支持。
ADS的常见问题与应对策略
- 数据定制化需求复杂:根据应用或服务的需求设计合理的定制化方案。
- 性能瓶颈:优化数据存储和查询性能,避免性能瓶颈。
- 安全问题:加强数据安全措施,确保数据的机密性和完整性。
ADS与其他层的关系
ADS基于DWD或DWS层的数据进行定制化处理和存储,为特定应用或服务提供支持。同时,ADS也可以作为某些实时分析或查询的直接数据源。
ADS技术实现的关键点
- 数据定制化技术:使用数据定制化技术(如ETL工具、SQL等)根据需求进行数据处理。
- 高性能存储技术:选择合适的存储技术(如内存数据库、分布式数据库等)来满足高性能需求。
- 安全技术:采用数据加密、访问控制等安全技术来保护数据的机密性和完整性。