当前位置: 首页 > news >正文

企业数据仓库

文章目录

    • 何为数据仓库(data warehouse)
    • 数据仓库的解决的问题
    • 数据仓库的主要特征
    • 数据仓库与数据库区别
    • 数据仓库为什么要进行分层
    • 数据仓库分层
      • 数仓分层应用示例
      • 涉及到的概念
        • 事实表Fact Table
        • 维表层Dimension(DIM)
        • 临时表TMP
        • 数据集市
    • ETL(数据的抽取、转换和加载)
    • 数据仓库数据流
    • 云数据仓库
      • 云数据仓库的优势
      • 全代管式,节省运营费用
      • 比本地数据仓库更好的正常运行时间
      • 可灵活扩缩
      • 价格灵活,成本效益高
      • 实时分析

何为数据仓库(data warehouse)

数据仓库(英语:data warehouse,也称为企业数据仓库),简称DW。数据仓库是用于集成,存储大量数据,并用于数据分析和报告的企业系统,通常用于企业级数据管理。

数据仓库可以将来自一个或多个不同源的当前和历史数据都存储在一个中央存储库,旨在提供长期数据视图,这使其成为商业智能BI的核心组件,为企业的分析性报告和决策支持提供帮助,还可以指导业务流程改进。

在实际应用中,数据仓库中的数据一般来源事务应用系统(比如:销售终端交易、客户关系管理系统),关系数据库,应用日志文件等广泛来源。

数据仓库的解决的问题

数据仓库用于企业级数据管理。它的主要目的是解决以下问题:

  1. 数据集成与一致性: 企业通常有多个数据源,这些数据可能存储在不同的系统中,格式也各不相同。数据仓库可以将这些数据集成到一个统一的存储库中,并确保数据的一致性,使得企业能够基于全面的数据进行决策和分析。
  2. 提供决策支持: 数据仓库为企业提供了一个可靠的数据基础,使得决策者能够基于准确、完整的数据进行分析和决策。通过数据仓库,企业可以进行趋势分析、预测模型构建、业务智能等操作,从而更好地理解业务状况,做出更明智的决策。
  3. 支持商业分析和报告: 数据仓库可以为企业提供高度灵活的商业分析和报告功能。通过各种数据挖掘技术和报告工具,企业可以从数据仓库中提取有价值的信息,生成各种类型的报告,如销售报告、市场趋势分析、客户行为分析等,为企业提供重要的业务洞察。
  4. 提高数据查询和检索效率: 数据仓库通常采用优化的存储结构和查询引擎,能够支持高效的数据查询和检索。这使得用户可以在较短的时间内获取所需的数据,并且可以通过复杂的查询和分析操作来深入探索数据。
  5. 支持业务增长和创新: 通过数据仓库,企业可以更好地理解自己的业务运营情况和市场环境,发现潜在的机会和挑战,从而支持业务的增长和创新。数据仓库还可以为企业提供数据驱动的决策支持,帮助企业更快地适应变化的市场需求和竞争环境。

数据仓库的主要特征

数据仓库之父兼计算机科学家 William Inmon 定义了数据仓库的 4 大特征,这 4 大特征为数据仓库的强大优势奠定了坚实基础。根据定义,数据仓库具有以下主要特征:

面向主题:传统数据库最大的特点就是面向应用进行组织数据,一个业务系统管理一部分企业数据,多个业务系统之间是相互分离的,而数据仓库则是面向主题的。数据仓库中的数据是按照特定业务主题来组织的,如客户、产品、销售等,而非按照业务操作流程来组织(如订单处理、库存更新)。

集成性:数据仓库将来自企业各个业务系统的数据集中在一起,形成一个统一的数据模型。

时间变化性:数据仓库中的数据是随时间变化的,可以用来进行历史数据分析,趋势分析,从而洞察业务变化。

非易失性(不可更新,非实时交易处理):一旦数据被加载到数据仓库中,就不会轻易地被修改或删除。 数据仓库主要用于读取操作,而不是日常的增删改操作,通常不支持在线事务处理(OLTP)。

总之,数据仓库的核心价值在于它通过集成和整理企业的历史数据,为企业决策支持系统(DSS)、商务智能(BI)应用和数据分析人员提供了一个可靠、一致、易于访问的数据环境

数据仓库与数据库区别

数据仓库(Data Warehouse)和数据库(Database)在功能和设计上有一些重要区别:

目的和使用场景:

  • 数据库通常用于在线交易处理(OLTP)系统,用于处理实时的数据操作,例如插入、更新和删除数据。它们通常支持大量的并发操作,但对于复杂的分析和报告功能可能不够高效。
  • 数据仓库则主要用于数据分析和决策支持(OLAP)场景。它们被设计为支持复杂的查询和分析操作,用于提供历史数据的综合视图,并支持业务智能、数据挖掘和预测分析等任务。

数据结构和存储方式:

  • 数据库通常使用面向事务的模式(例如关系数据库),设计用于快速的数据增删改查操作。
  • 数据仓库则通常采用面向主题的模式,以支持分析为重点。它们常常使用星型或雪花型的数据模型,将数据组织成事实表和维度表的结构,并使用列式存储或其他优化技术来提高查询性能。

数据量和范围:

  • 数据库通常处理相对较小的数据集,并且通常只包含最新的数据。
  • 数据仓库则处理更大规模的数据,包括历史数据,并且通常被用于分析大量的数据以发现趋势和模式。

查询和性能优化:

  • 数据库通常针对快速的事务处理进行了优化,例如索引、事务控制和并发处理。
  • 数据仓库则更注重查询性能的优化,包括使用预聚合、分区、分区裁剪等技术来提高复杂查询的执行效率。

数据更新频率:

  • 数据库中的数据通常是实时更新的,以反映当前状态。
  • 数据仓库中的数据更新频率可能较低,通常是以批处理或定期更新的方式进行,以确保数据的一致性和完整性。

数据仓库为什么要进行分层

为了解决我们可能面临的问题,需要一套行之有效的数据组织、管理和处理方法,来让我们的数据体系更加有序,这就是数据分层。数据分层的好处:

  1. 清晰数据结构和职责分明:每个数据层都应具有清晰的职责和用途,使得在使用和维护时更加方便和直观。通过明确定义的数据结构,可以提高数据的可理解性和可维护性。
  2. 复杂问题简化:数据分层将复杂的任务分解成多个简化的步骤,每个层级只需解决特定问题。这种分层方法有助于问题定位和解决,避免了需要全面修复所有数据的情况,提高了系统的容错性和可靠性。
  3. 统一数据口径:通过数据分层,可以实现统一的数据出口,确保对外输出的数据口径一致。这有助于提高数据的一致性和可信度,同时简化了与外部系统或用户的集成和交互。
  4. 减少重复开发:规范的数据分层架构可以促进通用中间层的开发,从而减少重复计算和开发工作。通过重复使用已有的数据处理逻辑和功能模块,可以提高开发效率并降低开发成本。
  5. 异常处理和容错机制:数据分层可以提供有效的异常处理和容错机制,屏蔽原始数据的异常,确保系统的稳定性和可靠性。当数据出现问题时,可以更加精确地定位和处理异常,而无需对整个数据流程进行修改或重新接入数据。

通过优化以上原因,数据仓库分层可以更好地支持数据管理、处理和分析需求,提高系统的可维护性、可扩展性和稳定性。

数据仓库分层

数据仓库的分层通常包括以下几个层次,每个层次负责不同的功能和任务:

  1. ODS(Operation Data Store,操作型数据存储)
    • ODS 是用于存储来自业务系统的原始、操作型数据的存储层。它主要用于收集、存储和提供业务操作数据,通常具有较短的数据保留周期,以便支持实时或近实时的业务操作需求。ODS 中的数据一般不经过或仅经过少量的转换,保持与源系统一致性。ODS 通常作为数据仓库中的第一层存储,用于快速响应业务操作需求。
  2. DWD(Data Warehouse Detail,数据仓库详细层)
    • DWD 是数据仓库中用于存储经过清洗、集成和转换后的详细数据的存储层。在 DWD 中,数据被组织成维度表和事实表的结构,以支持多维分析和数据挖掘。DWD 层的数据质量通常较高,适合用于历史数据分析和复杂查询。
  3. DWM(Data Warehouse Middle,数据仓库中间层)
    • DWM 是数据仓库中的一个中间存储层,用于存储经过汇总、聚合和预处理后的数据。DWM 层的数据通常是按照业务主题或业务过程组织的,以满足特定的业务分析和报表查询需求。DWM 层可以用于提高数据查询性能,减少对 DWD 层的查询压力,并且可以提供更高层次的数据汇总和分析。
  4. DWS(Data Warehouse Service,数据仓库服务层)
    • 数据仓库服务层是数据仓库架构中的一个存储层,用于存放预计算、聚合和处理后的数据,以便向应用程序或业务用户提供数据访问和查询服务。DWS 层的数据通常以服务化的方式提供,可以通过API、Web服务或其他接口进行访问。
    • 在DWS 中,可能包括预计算的指标数据、聚合数据、缓存数据等。这些数据用于支持数据分析、报表查询、应用集成等业务需求,为业务用户提供更快速、更高效的数据访问和使用体验。
  5. ADS(Application Data Store,数据应用层)
    • 数据应用层是数据仓库架构中的一个存储层,用于存放应用程序或业务应用所需的数据。与数据服务层不同,ADS层的数据更加直接地服务于具体的业务应用,通常是按照业务领域或业务过程组织的。
    • 在ADS中,可能包括应用程序所需的数据、业务应用的配置信息、用户访问日志等。这些数据用于支持具体的业务功能和业务流程,为应用程序提供所需的数据支持。

这些存储层共同构成了数据仓库的分层结构,每个层次都有其特定的作用和功能,相互配合来支持数据仓库的构建和使用。

数仓分层应用示例

下图一个电商网站的数据体系设计。我们暂且只关注用户访问日志这一部分数据。

img

按业务分类汇总数据源,ODS层不同来源的日志文件汇总成一张表,保存到DWD层;

从DWD层中选取业务关注的核心维度来做聚合操作,比如只保留人、商品、设备和页面区域维度,以此类推生成很多个DWM的中间表;

从DWM层抽取数据,将一个人在整个网站中的行为数据放到一张表中,到DWS层,这就是我们的宽表了,可以快速满足大部分的通用型业务需求;

最后,在APP应用层,根据需求从DWS层的一张或者多张表取出数据拼接成一张应用表即可。

涉及到的概念

事实表Fact Table

事实表是指存储有事实记录的表,比如系统日志、销售记录等。事实表的记录在不断地增长,比如电商的商品订单表,就是类似的情况,所以事实表的体积通常是远大于其他表。

维表层Dimension(DIM)

维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。维度表主要是包含两个部分:

  • 高基数维度数据:一般是用户资料表、商品资料表类似的资料表,数据量可能是千万级或者上亿级别
  • 低基数维度数据:一般是配置表,比如枚举字段对应的中文含义,或者日期维表等;数据量可能就是个位数或者几千几万。

常见的维度表有:日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。

img
临时表TMP

每一层的计算都会有很多临时表,专设一个DWTMP层来存储我们数据仓库的临时表。

数据集市

数据集市(Data Mart)是数据仓库架构中的一个重要组成部分,它是一个面向特定业务部门或业务功能的数据存储区域,用于存放经过整理、加工和聚合的数据,以支持特定业务需求的分析和报告。

数据集市与数据仓库的关系和区别如下:

  1. 关系:
    • 数据集市是数据仓库的一个子集,是数据仓库架构中的一部分。它们都是用于存储和管理数据,支持数据分析和报告的关键组件。
  2. 区别:
    • 范围和目标: 数据仓库通常是面向整个企业的,存储所有部门和业务功能的数据,旨在提供全面的、一致的数据视图和分析能力。而数据集市则是针对特定业务部门或功能领域的,存储与该领域相关的数据,旨在提供定制化的、专业化的数据分析和报告功能。
    • 数据量和复杂性: 数据仓库通常存储大量的数据,包括原始数据、清洗后的数据、汇总数据等,涉及多个业务领域和功能。而数据集市通常规模较小,只包含特定业务领域的数据,数据量相对较小,但精度和准确性更高。
    • 管理和维护: 数据仓库的设计和管理通常由企业的中央数据团队负责,涉及整个企业的数据架构、规范和治理。而数据集市的设计和管理通常由业务部门或业务用户自主进行,他们了解自己的业务需求和数据使用场景,可以更灵活地对数据进行管理和分析。

总的来说,数据集市是数据仓库架构中的一个重要组成部分,它为特定业务部门或功能领域提供了定制化的数据分析和报告功能,是数据仓库的一种延伸和补充。

ETL(数据的抽取、转换和加载)

ETL 是数据仓库中常见的一种数据处理过程,它的名称来源于英文单词 Extract、Transform、Load,分别表示数据的抽取、转换和加载。ETL 过程通常用于将数据从一个或多个来源抽取出来,经过各种转换操作后加载到目标数据仓库或数据集市中,以支持数据分析、报表查询等业务需求。

下面是 ETL 过程的三个主要步骤:

  1. 抽取(Extract)
    • 在这个阶段,数据从源系统中提取出来。源系统可以是数据库、文件、API、日志文件等等。数据抽取的方式可以包括增量抽取、全量抽取、定时抽取等,目的是将源系统中的数据获取到数据仓库中。
  2. 转换(Transform)
    • 在这个阶段,抽取得到的数据经过各种清洗、转换和加工的操作。这些操作包括数据清洗、格式化、合并、分割、计算衍生指标、数据标准化等,以确保数据的质量和一致性,并将数据转换为适合数据仓库存储和分析的格式。
  3. 加载(Load)
    • 在这个阶段,经过转换处理后的数据被加载到目标数据仓库或数据集市中。加载过程可以包括将数据插入到数据库表中、更新维度表、执行聚合操作等。加载过程需要考虑数据的完整性、性能和并发等方面的问题,以确保数据正确地进入目标系统中。

ETL 过程是数据仓库中至关重要的一环,它负责将各种数据源中的数据集成、清洗和加工,为数据分析和报表查询提供高质量的数据支持。一个有效的 ETL 过程可以提高数据仓库的效率和性能,帮助企业更好地利用数据做出决策和规划。

数据仓库数据流

img

常见的数据仓库数据流有

DB(数据库) -> ODS -> ETL -> DWD -> DWM -> DWS -> ADS -> DM(数据集市)

DB(数据库) -> ETL -> ODS -> DWD -> DWM -> DWS -> ADS -> DM(数据集市)

说到数据仓库数据流就不得不说ETL,ETL(Extract, Transform, Load)是数据仓库中的一个重要组成部分,而数据仓库分层是数据仓库整体架构的一个设计模式。它们之间存在密切的关系,具体体现在以下几个方面:

  1. 数据仓库分层中的位置
    • ETL 过程通常属于数据仓库架构中的操作数据存储(ODS)和数据仓库存储(DWD)之间。在数据仓库分层中,ETL 负责将原始数据从源系统中抽取出来,经过转换和加工后加载到数据仓库存储中,为后续的数据分析和报表查询提供数据支持。
  2. 数据仓库分层的数据流向
    • ETL 过程负责将数据从操作数据存储(ODS)抽取到数据仓库存储(DWD)中。这个过程是数据仓库分层中从原始数据到数据仓库存储的关键环节,确保了数据的准确性、一致性和完整性。
  3. 支持数据仓库分层的数据加工
    • 在数据仓库分层中,ETL 过程的转换阶段负责对数据进行清洗、格式化、合并、计算衍生指标等操作,使得数据适合被存储到数据仓库中。这些操作为后续的数据分析和报表查询提供了高质量的数据基础。
  4. 数据仓库分层的优化
    • ETL 过程的设计和优化直接影响到数据仓库分层的性能和效率。一个高效的 ETL 过程可以保证数据的及时加载和准确性,从而提升数据仓库的整体性能和可用性。

综上所述,ETL 过程和数据仓库分层是密切相关的,它们共同构成了数据仓库架构中数据流动和数据处理的重要环节,为数据仓库的建设和使用提供了基础支持。

云数据仓库

云数据仓库解决方案由云服务提供商管理和托管。这为您提供了云环境固有的灵活性,以及可以根据使用量或固定金额进行费用预测的能力。

由于无需购买硬件,因此前期投资通常比使用本地解决方案要低得多,交货期也更短,因而可以减少资本支出。您还可以利用云数据仓库的无服务器/无运维特性来提高运营效率。

云数据仓库的优势

越来越多的公司开始将数据从传统数据仓库移动到云,以利用代管式服务提供的可伸缩性来节省费用。

云数据仓储具有以下主要优势:

全代管式,节省运营费用

云数据仓库可以让您将麻烦的管理任务外包给必须满足服务等级协议的云服务商。这样可以节省运营费用,并使您的内部团队专注于增长计划。

比本地数据仓库更好的正常运行时间

云服务商有义务满足服务等级协议 (SLA),并通过可顺畅扩缩的可靠云基础架构提供更好的正常运行时间。本地数据仓库具有规模和资源限制,可能会影响性能。

可灵活扩缩

云数据仓库具有弹性,因此可以根据您的业务需求变化顺畅扩容或缩减。

价格灵活,成本效益高

借助云,您可以采用灵活的价格模式,选择根据用量付费或使用更可预测的统一费率方案。有些服务商按吞吐量或每节点每小时收费,有些服务商则对一定量的资源按固定价格收费。不管采用哪些模式,您都可以避免为每周 7 天、每天 24 小时不间断运行的本地数据仓库支付巨额费用,无论是否有在使用资源。

实时分析

云数据仓库支持流式数据,允许您实时查询数据,以便快速做出明智的业务决策

http://www.dtcms.com/a/524162.html

相关文章:

  • 如何用 HTML 生成 PC 端软件
  • Apache Spark算法开发指导-特征转换Normalizer
  • 泗洪网站建设变化型网页网站有哪些
  • 渭南哪家公司可以做网站小程序开发制作价格
  • 广州城市建设规划局网站我想给网站网站做代理
  • 蓝蜂 MQTT 网关打通 120 台设备数据,助汽车零部件厂降本 40%​
  • C++异常详细介绍
  • AKKO 3180键盘插到联想笔记本无法使用问题
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第六天)
  • 从项目中学习CAN和CANFD报文结构(新手入门)
  • SpreadJS 赋能在线 Excel:协同编辑与精细化权限管控的技术实现
  • RabbitMQ 持久性详解
  • cms网站栏目介绍html免费模板下载
  • 太原网站建设培训班wordpress购买按钮插件
  • 北斗导航 | 接收机自主完好性监测(RAIM)在列车中的应用:原理、现状、挑战与案例
  • 前端Sass完全指南:从入门到精通
  • 网站建设地域名高校网站建设 网站群
  • 破局制造业数据孤岛,大腾智能PDM实现产研协同
  • 小程序文件在线显示(支持word,图片,视频等)
  • 记录自己写项目的第三天,springbot+redis+rabbitma高并发项目
  • Linux下查看系统启动时间、运行时间
  • Linux中子系统注册subsystem_register等函数的实现
  • MFC应用程序,工作线程学习记录
  • 在什么网站做公司人员增减wordpress主题标签
  • 广州新塘网站制作推广网站服务器检测
  • 金仓多模数据库:电子证照系统国产化替代MongoDB的优选方案
  • SQL之键与约束——数据库设计的基石与数据完整性的守护者
  • 百度网站收录查询地址保定网站推广多少钱
  • 移动端网站如何开发一呼百应网
  • Spring Boot集合RabbitMQ