大数据设计为何要分层,行业常规设计会有几层数据

大数据设计通常采用分层结构的原因是为了提高数据管理的效率、降低系统复杂度、增强数据质量和可维护性。这种分层结构能够将数据按照不同的处理和应用需求进行分类和管理,从而更好地满足不同层次的数据处理和分析需求。行业常规设计中,数据通常按照以下几个层次进行划分:

ODS(Operational Data Store)操作型数据存储
DWD(Data Warehouse Detail)数据仓库明细层
DIM(Dimensional Data Mart)维度数据集市
DWS(Data Warehouse Summary)数据仓库汇总层
TDM(Temporary Data Mart)临时数据集市
ADS(Application Data Store)应用数据存储
TMP(Temporary Storage)临时存储层
在这里插入图片描述

1.ODS(Operational Data Store)操作型数据存储:ODS层主要用于存储原始的、经过简单处理的业务数据,通常是从各个业务系统中提取的数据,保留了数据的原始状态和结构,是数据仓库中的第一层。ODS层的数据主要用于日常业务的操作和处理。

当设计大数据架构时,操作型数据存储是整个数据处理流程中的第一步。ODS的主要目的是在保持数据的原始状态的同时,提供一个中间层,用于将来自各个业务系统的数据整合、清洗和标准化,以支持后续的数据分析、报表生成和业务应用等需求。

ODS的概念

  1. 原始数据存储:ODS作为大数据架构中的第一层,主要负责存储来自不同业务系统的原始数据。这些数据通常是实时或近实时地从业务系统中抽取而来,保留了数据的原始格式和结构。
  2. 简单处理:尽管ODS层存储了原始数据,但通常也会进行一些简单的处理,例如去除重复记录、填充缺失值、解析数据等,以保证数据的一致性和可用性。
  3. 提供数据服务:除了存储和处理数据外,ODS还可以作为数据服务的提供者,为其他系统和业务流程提供数据访问接口,使其能够实时获取到最新的业务数据。

ODS的设计思路

  1. 数据集成:ODS的设计需要考虑如何有效地集成来自不同业务系统的数据。这可能涉及到数据抽取、转换和加载(ETL)过程,以确保数据能够被正确地捕获、整合和存储。
  2. 数据质量保证:在数据进入ODS之前,需要进行一定程度的数据质量检查和修复,以确保数据的准确性、完整性和一致性。这包括检测并处理重复数据、缺失值、错误格式等问题。
  3. 数据标准化:为了支持后续的数据分析和应用,ODS中的数据通常需要进行标准化,以确保不同来源的数据能够在语义上一致。这可能涉及到数据格式的统一、命名规范的制定等方面。
  4. 实时性需求:根据业务需求,ODS可能需要实现实时数据处理和更新,以确保业务系统能够及时获取到最新的数据。因此,需要考虑如何实现高效的数据抽取和加载机制,以及实时处理的技术方案。
  5. 扩展性和性能:随着业务的发展和数据量的增长,ODS需要具备良好的扩展性和性能,以应对不断增长的数据存储和处理需求。因此,在设计ODS时需要考虑到数据分区、索引优化、集群部署等方面。
  6. 安全性:由于ODS层存储了原始的业务数据,因此需要采取必要的安全措施,保护数据的机密性和完整性,防止数据泄露和不当使用。
  7. 数据访问接口:ODS需要提供适当的数据访问接口,以便其他系统和应用程序能够方便地访问和使用其中的数据。这可能包括API接口、数据库连接等方式。

DWD(Data Warehouse Detail)数据仓库明细层
DWD层用于存储经过清洗、转换、集成等处理后的详细数据,通常包括事实表和维度表,是数据仓库中的核心层。DWD层的数据通常被用于复杂的数据分析、报表生成等任务。

DWD的概念

  1. 数据清洗与转换:DWD层接收来自ODS层的数据,并对其进行清洗和转换。这包括去除错误、重复、不完整或不一致的数据,以及将数据转换成适合分析和报表生成的格式。

  2. 数据集成与统一:DWD层负责将来自不同业务系统的数据进行集成和统一,以确保数据在整个数据仓库中的一致性和可比性。这可能涉及到数据合并、标准化、规范化等操作。

  3. 建模与标记:在DWD层中,数据通常会按照维度建模的方式进行组织和标记。这包括将数据划分为事实表(包含业务事实数据)和维度表(包含描述性维度数据),以支持多维分析。

  4. 历史数据管理:DWD层也负责管理历史数据,包括记录数据的变化历史、跟踪数据的版本信息等,以支持时间序列分析和趋势分析。

  5. 数据质量保证:在DWD层,还需要实施一系列数据质量控制措施,以确保数据的准确性、完整性和一致性。这可能包括数据验证、异常检测、数据修复等操作。

DWD的设计思路

  1. 业务需求分析:在设计DWD层时,首先需要深入了解业务需求,明确需要分析的业务指标和报表需求,以便确定数据模型和转换规则。
  2. 数据建模:基于业务需求,设计合适的数据模型,包括事实表和维度表的定义,以及它们之间的关联关系。这需要考虑业务过程、数据粒度、数据关系等因素。
  3. 数据清洗与转换:实施数据清洗和转换操作,包括去重、填充缺失值、数据格式转换、计算衍生指标等,以保证数据的质量和一致性。
  4. 数据集成与统一:将来自不同来源的数据进行集成和统一,确保数据的一致性和可比性。这可能涉及到数据合并、标准化、规范化等操作。
  5. 数据质量管理:实施数据质量管理措施,包括数据验证、异常检测、数据修复等操作,以确保数据的准确性和完整性。
  6. 性能优化:针对DWD层的性能优化,可以采取一系列措施,包括数据分区、索引优化、查询优化等,以提高数据处理和查询的效率。
  7. 历史数据管理:对于需要保留历史数据的业务需求,需要设计合适的历史数据管理策略,包括数据的版本控制、变化跟踪等操作。
  8. 安全性管理:在设计DWD层时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。

DIM(Dimensional Data Mart)维度数据集市
DIM层是在DWD层基础上构建的,用于存储维度化的数据,通常包括各种维度表。维度数据集市主要用于支持多维分析、OLAP(联机分析处理)等业务需求。

DIM的概念:

  1. 维度化数据存储:维度数据集市主要用于存储与业务相关的维度数据,例如时间、地域、产品、客户等。这些维度数据通常是具有层级结构的,并且对于分析和报表生成非常重要。
  2. 支持多维分析:维度数据集市是支持多维分析(OLAP)的关键组成部分。通过将事实数据与各种维度数据关联起来,可以进行复杂的多维度分析,发现数据间的关联和趋势。
  3. 提供一致的维度视图:维度数据集市提供了一致的维度视图,以便不同部门和用户可以使用相同的维度定义和标准化的数据。这有助于确保数据分析的一致性和可比性。
  4. 支持业务智能应用:维度数据集市是许多业务智能应用的基础,包括报表、仪表盘、数据挖掘等。通过将维度数据与事实数据关联起来,可以为用户提供丰富的分析和可视化功能。

DIM的设计思路:

  1. 确定维度:首先需要确定需要存储的维度数据。这可能涉及到与业务部门的沟通,了解业务需求和关键维度,例如时间、地域、产品、客户等。
  2. 设计维度模型:基于确定的维度,设计相应的维度模型。维度模型通常由维度表和事实表组成,其中维度表包含维度数据,而事实表包含度量数据。
  3. 建立维度表:根据维度模型设计维度表,包括定义维度的属性、层级关系等。维度表的设计需要考虑到数据的完整性、一致性和易用性。
  4. 填充维度数据:将维度数据填充到维度表中。这可能涉及到从不同数据源中抽取、转换和加载维度数据的过程,确保数据的准确性和完整性。
  5. 维护维度数据:维度数据可能会随着时间的推移而发生变化,因此需要建立相应的维度数据维护机制,包括更新、插入、删除等操作,以保持数据的最新和一致。
  6. 建立维度关系:将维度表与事实表进行关联,建立维度关系。这有助于进行多维分析,发现数据间的关联和趋势。
  7. 性能优化:为了提高维度数据集市的查询性能,可以采取一系列性能优化措施,包括索引优化、分区管理、数据压缩等。
  8. 安全性管理:在设计维度数据集市时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。

DWS(Data Warehouse Summary)数据仓库汇总层
DWS层用于存储经过聚合、汇总等处理后的数据,通常包括汇总后的事实表。DWS层的数据通常被用于生成汇总报表、支持决策分析等任务。

DWS的概念:

  1. 数据聚合与汇总:DWS层主要用于存储经过聚合、汇总等处理后的数据,以提供高层次的数据视图和分析能力。这些汇总数据通常是从DWD层中的详细数据中计算而来,可以是按时间、地域、产品等维度进行汇总的。
  2. 提供决策支持:DWS层为决策者和管理人员提供了更高层次的数据视图,帮助他们更好地理解业务趋势、做出决策。通过预先计算和汇总数据,可以加速查询和分析过程,提高决策效率。
  3. 支持报表和仪表盘:DWS层提供了汇总的数据视图,可以用于生成各种报表、仪表盘和可视化图表,为用户提供直观的数据分析和监控能力。
  4. 优化查询性能:通过事先计算和汇总数据,可以减少查询时的计算量,提高查询性能。这对于大规模数据和复杂查询场景尤为重要。
  5. 支持复杂分析需求:DWS层提供了高层次的数据聚合和汇总,支持复杂的数据分析需求,包括趋势分析、比较分析、排名分析等。

DWS的设计思路:

  1. 确定汇总需求:首先需要明确业务需求,确定需要汇总的指标和维度。这可能涉及与业务部门的沟通,了解他们的分析和决策需求。
  2. 设计汇总模型:基于确定的汇总需求,设计相应的汇总模型。这包括定义需要汇总的指标、选择适当的汇总级别和维度等。
  3. 选择汇总方法:根据汇总模型选择合适的汇总方法,包括求和、计数、平均值等。同时,还需要考虑如何处理不同维度之间的关系,以及如何处理空值和异常值。
  4. 建立汇总表:根据汇总模型设计汇总表,包括定义表结构、选择合适的数据类型、确定索引等。这有助于提高查询性能和数据的访问效率。
  5. 填充汇总数据:将从DWD层中抽取的详细数据进行汇总,并填充到汇总表中。这可能涉及到定期的数据抽取、转换和加载过程,确保汇总数据的准确性和完整性。
  6. 维护汇总数据:汇总数据可能随着时间的推移而发生变化,因此需要建立相应的数据维护机制,包括更新、插入、删除等操作,以保持数据的最新和一致。
  7. 性能优化:为了提高汇总数据集市的查询性能,可以采取一系列性能优化措施,包括索引优化、分区管理、数据压缩等。
  8. 安全性管理:在设计DWS层时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。

TDM(Temporary Data Mart)临时数据集市
TDM层是临时性的数据存储层,用于存储临时性的数据,通常是一些中间计算结果或者临时性的数据文件。

TDM的概念:

  1. 临时数据存储:TDM层主要用于存储在数据处理过程中产生的临时数据,例如中间计算结果、临时数据文件等。这些数据通常是在数据清洗、转换、计算等阶段产生的,是数据处理过程中的中间产物。
  2. 支持数据流程:TDM层为数据处理流程提供了临时的数据存储功能,帮助管理数据处理过程中的中间结果。这有助于确保数据处理流程的连续性和可靠性。
  3. 减少重复计算:通过将中间计算结果存储在临时数据集市中,可以避免重复计算相同的数据,提高数据处理效率。
  4. 支持数据调试和分析:TDM层存储了数据处理过程中的中间结果,可以帮助开发人员进行数据调试和分析,发现数据处理中的问题和异常。

TDM的设计思路:

  1. 确定临时数据需求:首先需要明确数据处理流程中产生的临时数据的类型和需求。这可能涉及到与数据工程师、分析师等相关人员的沟通,了解数据处理流程和中间数据的特点。
  2. 设计临时数据模型:根据确定的临时数据需求,设计相应的临时数据模型。这包括定义临时数据的结构、格式、存储方式等。
  3. 选择存储技术:根据临时数据的特点和需求,选择合适的存储技术。这可能涉及到文件系统、数据库、内存数据库等不同的存储方式。
  4. 建立临时数据存储:根据设计的临时数据模型和选择的存储技术建立临时数据存储。这可能涉及到建立临时数据表、设置存储参数、优化存储性能等操作。
  5. 填充临时数据:将数据处理过程中产生的临时数据填充到临时数据存储中。这通常是在数据处理流程的中间阶段完成的,确保中间数据的可用性和一致性。
  6. 数据清理和维护:定期清理和维护临时数据存储,删除不再需要的临时数据,释放存储空间,确保系统的稳定性和性能。
  7. 安全性管理:在设计TDM层时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。

ADS(Application Data Store)应用数据存储
ADS层用于存储与特定应用程序相关的数据,通常包括应用程序的配置信息、日志数据等。

ADS的概念

  1. 与应用程序相关的数据存储:ADS层主要用于存储与特定应用程序相关的数据,例如应用程序的配置信息、用户会话数据、日志数据等。
  2. 提供给应用程序访问的数据接口:ADS提供了数据访问接口,供应用程序读写数据。这样,应用程序可以将数据存储在ADS中,或者从ADS中检索数据。
  3. 与业务逻辑紧密相关:ADS中存储的数据通常与应用程序的业务逻辑密切相关。这些数据可能包括用户信息、商品信息、订单信息等,用于支持应用程序的正常运行和业务功能实现。

ADS的设计思路

  1. 确定存储需求:首先需要明确应用程序的存储需求,确定需要存储哪些类型的数据。这可能涉及到与应用程序开发团队的沟通,了解应用程序的功能和数据存储需求。
  2. 设计数据模型:根据确定的存储需求,设计相应的数据模型。这包括定义存储的数据结构、字段、关系等。
  3. 选择存储技术:根据数据模型和性能要求选择合适的存储技术。这可能涉及到关系型数据库、NoSQL数据库、内存数据库等不同的存储方式。
  4. 建立数据存储:根据设计的数据模型和选择的存储技术建立数据存储。这可能涉及到创建数据库表、设置索引、优化性能等操作。
  5. 数据填充和初始化:在应用程序启动或初始化阶段,将必要的数据填充到数据存储中。这可能包括初始化配置信息、创建用户账户、加载基础数据等。
  6. 数据访问接口设计:设计数据访问接口,供应用程序读写数据。这可能涉及到API接口设计、数据库连接配置等。
  7. 安全性管理:在设计ADS层时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。
  8. 性能优化:为了提高ADS层的性能,可以采取一系列性能优化措施,包括索引优化、缓存机制、数据分区等。

TMP(Temporary Storage)临时存储层
TMP层用于存储临时性的数据,通常是一些处理过程中的临时文件或者缓存数据。

TMP的概念:

  1. 临时性存储:TMP层主要用于临时存储在数据处理过程中产生的数据,例如中间计算结果、临时文件、缓存数据等。这些数据通常是在数据处理过程中需要暂时存储或传递的,而不是长期存储的。
  2. 支持数据处理流程:TMP层为数据处理流程提供了临时的数据存储功能,帮助管理数据处理过程中的中间结果。这有助于确保数据处理流程的连续性和可靠性。
  3. 临时性数据传递:TMP层也可以用于临时性数据传递,例如在不同数据处理任务之间传递数据,或者在不同节点之间传递数据。这有助于提高数据处理的效率和灵活性。

TMP的设计思路

  1. 确定临时存储需求:首先需要明确数据处理过程中产生的临时数据的类型和需求。这可能涉及到与数据工程师、分析师等相关人员的沟通,了解数据处理流程和中间数据的特点。
  2. 选择临时存储技术:根据临时存储需求选择合适的临时存储技术。这可能涉及到文件系统、数据库、内存数据库等不同的存储方式。
  3. 建立临时存储空间:根据选择的临时存储技术建立临时存储空间。这可能涉及到创建临时文件夹、设置存储参数、优化存储性能等操作。
  4. 填充临时数据:将数据处理过程中产生的临时数据填充到临时存储空间中。这通常是在数据处理流程的中间阶段完成的,确保中间数据的可用性和一致性。
  5. 临时数据传递:如果需要在不同数据处理任务之间传递数据,或者在不同节点之间传递数据,可以利用临时存储空间进行临时性数据传递。
  6. 数据清理和维护:定期清理和维护临时存储空间,删除不再需要的临时数据,释放存储空间,确保系统的稳定性和性能。
  7. 安全性管理:在设计TMP层时,也需要考虑数据的安全性管理,包括数据权限控制、数据加密、访问审计等方面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/296165.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++11:声明 初始化

C11:声明 & 初始化 初始化{ }初始化initializer_list 声明autodecltypenullptr 初始化 { }初始化 在C98中,允许使用花括号{ }对数组或者结构体元素进行统一的列表初始化。 用{ }初始化数组: int arr[] { 1, 2, 3, 4, 5 };用{ }初始化…

Qt C++ | Qt 元对象系统、信号和槽及事件(第一集)

01 元对象系统 一、元对象系统基本概念 1、Qt 的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。 2、元对象系统是 Qt 对原有的 C++进行的一些扩展,主要是为实现信号和槽机制而引入的, 信号和槽机制是 Qt 的核心特征。 3、要使用元…

VMware虚拟机三种网络模式配置

vmware有三种网络工作模式:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 1. 打开网络编辑器(编辑 --> 虚拟网络编辑器) 在主机上有VMware Ne…

【阿里淘天笔试题汇总】2024-04-03-阿里淘天春招笔试题(第一套)-三语言题解(CPP/Python/Java)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新淘天近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢&#x1f…

[RK3588-Android12] 调试MIPI-双通道-压缩屏(Video Mode/MIPI Dphy 8Lane/DSC 144HZ)

问题描述 被测屏幕:小米Pad6 分辨率:1800X2880 模式:Video Mode/MIPI Dphy 8Lane/DSC 144HZ PPS: 11 00 00 89 30 80 0B 40 03 84 00 14 01 C2 01 C2 02 00 01 F4 00 20 01 AB 00 06 00 0D 05 7A 06 1A 18 00 10 F0 03 0C 20 00 06 0B 0B 33…

[Leetcode笔记] 动态规划相关

前言 写题目写到了一些和动态规划相关的内容,所以在这里记录一下 LCR 089 题解思路 总的来说,就是用一个数组去存储当前的最优解,然后从0开始一路向上顺推过去,求得最后一位的最优解。 class Solution { public:int rob(vect…

k8s calico由IPIP模式切换为BGP模式

按照官网calico.yaml部署后,默认是IPIP模式 查看route -n , 看到是tunl0口进行转发 怎么切换到BGP模式呢? kubectl edit ippool 将ipipMode由Always修改为Never ,修改后保存文件即可。无需做任何操作,自动就切换为BG…

公众号爆文策略与实践:揭秘千万阅读量的秘密

1. 引言 介绍公众号爆文的重要性,以及分享个人通过每天投入半小时赚到30倍门票的经验。强调跟上大佬步伐,提升认知的重要性。 2. 爆文的底层逻辑 2.1 推荐的底层逻辑 内容分发机制的变化,从仅限于直接关注到通过搜索、浏览推荐等多种方式…

【详解】Windows系统安装Nginx及简单使用

【详解】Windows系统安装Nginx及简单使用 一、Nginx是什么? “Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。”Nginx 是一款 http 服…

实景三维:城市数据要素的新维度

引言 在数字化转型的大潮中,数据已成为推动社会发展的关键要素。实景三维技术,作为一种新兴的数据表达形式,正在成为城市数据要素中不可或缺的一部分。它不仅丰富了数据的类型,更为城市规划、管理和服务提供了全新的视角。本文将…

N1912A安捷伦N1912A功率计

181/2461/8938产品概述: 安捷伦N1912A双通道P系列宽带功率传感器为R&D和制造工程师提供精确和可重复的功率测量,应用市场包括航空航天和国防(雷达)、无线通信和无线802.11a/b/g网络。该仪表/传感器组合提供的测量包括峰值功率…

QT-自定义参数设计框架软件

QT-自定义参数设计框架软件 前言一、演示效果二、使用步骤1.应用进行参数注册2.数据库操作单例对象3.参数操作单例对象 三、下载链接 前言 常用本地数据参数通常使用的是xml等文本的格式,进行本地的数据参数的存储。这种参数的保存方式有个致命的一点,就…

基于单片机20v数字电压表仿真系统设计

**单片机设计介绍,基于单片机20v数字电压表仿真系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机20V数字电压表仿真系统设计的主要目标是实现一个能够准确测量和显示20V直流电压的仿真系统。以下是该设计的主…

Sy6 编辑器vi的应用(+shell脚本3例子)

实验环境: 宿主机为win11,网络:10.255.50.5 6389 WSL2 ubuntu 目标机的OS:Ubuntu 内核、版本如下: linuxpeggy0223:/$ uname -r 5.15.146.1-microsoft-standard-WSL2 linuxpeggy0223:/$ cat /proc/version Linux vers…

VMware创建Ubuntu虚拟机详细教程

下载ISO映像文件 进入官网下载:Download Ubuntu Desktop | Download | Ubuntu 下面是一些其他的下载路径: 中国官网 https://cn.ubuntu.com/ 中科大源 Index of /ubuntu-releases/ (ustc.edu.cn) 阿里云开源镜像站 ubuntu-releases安装包下载_开源镜像…

真·面试题总结——JVM虚拟机

JVM虚拟机 JVM虚拟机规范与实现 JVM虚拟机规范 JVM虚拟机实现 JVM的常见实现 JVM虚拟机物理架构 JVM虚拟机的运转流程 JVM类加载过程 JVM类加载器及类加载器类型 JVM类加载器双亲委派机制 JVM运行时数据区的内存模型 JVM运行时数据区的内存模型:程序计数器…

day08 java 静态方法调用 方法的内存实现机制

目录 静态方法调用 方法的内存实现 静态方法调用 静态方法: 静态方法要在方法上用修饰符static。 静态方法可以通过类名调用 :类名.方法名()或者 直接调用 :方法名() 在同一个类中时&#xf…

网工内推 | 国企运维,IA认证,大专以上即可,最高22K

01 深圳建广数字科技有限公司青岛分公司 招聘岗位:桌面运维工程师 职责描述: 1.根据运维服务请求完成关于操作系统、应用软件、办公设备、网络等方面的安装、管理与维护; 2.各种PC软硬件故障诊断、排查及升级; 3.桌面设备&…

自动化测试如何管理测试数据

前段时间,知识星球里有同学问到:自动化case越多,测试数据越多,数据的管理成本也越来越高,是否需要一个数据池来专门管理测试数据?这是一个好问题,也是很多测试同学在自动化测试实践中必须面对的…

新手使用GIT上传本地项目到Github(个人笔记)

亲测下面的文章很有用处。 1. 初次使用git上传代码到github远程仓库 - 知乎 (zhihu.com) 2. 使用Git时出现refusing to merge unrelated histories的解决办法 - 知乎