当前位置: 首页 > 科技观察

10分钟看懂什么是数据仓库

时间:2023-03-13 07:17:07 科技观察

本文转载自微信公众号《sowhat1412》,作者sowhat1412。转载本文请联系sowhat1412公众号。随着互联网、物联网等技术的发展,产生的数据越来越多,如何有效利用这些数据成为企业制胜法宝。大公司会根据数据做BI、推荐系统、决策支持、统计分析、报表等服务。其中,数据存储涉及到很多知识点。本文旨在对这些术语及其内涵进行分析,使读者对与数据平台相关的概念有一个全面的认识。1OLTPVSOLAP1970年,随着关系数据库理论的引入,诞生了一系列经典的RDBMS,如MySQL、Oracle、SQLServer、DB2等。这些RDBMS为社会信息化的发展做出了重大贡献。但随着数据库使用范围的不断扩大,逐渐分为操作型数据库OLTP和分析型数据库OLAP。1.1OLTP操作型数据库OLTP(On-LineTransactionProcessing)也可以称为面向事务的处理系统。是针对特定业务对数据库的日常操作,通常对记录进行增删改查。在OLTP模式下,用户更关心操作的响应时间、数据的安全性、完整性、并发支持的用户数。传统的数据库系统作为数据管理的主要手段,主要用于业务处理。1.2OLAP分析型数据库OLAP(On-LineAnalyticalProcessing)全称为联机分析处理,主要用于历史数据的分析。这类数据库作为公司独立的数据存储,负责利用历史数据对公司各学科领域进行统计分析。为什么分为运算型和解析型?原因就是他们太不一样了!对比1.3操作型OLTPVS分析型OLAP之所以分为操作型和分析型,是因为两者的核心功能不同!前者主要是面向运营的,后者主要是面向分析的,在细节上有很多不同。1.3.1数据构成的差异数据的时间范围不同:一般操作型数据库只存储90天以内的数据,而分析型数据存储几年以内的数据,因此两者在物理上必须分开。数据明细不同:操作型数据库主要存储明细数据,汇总数据采用动态技术生成。分析数据库存储用户关系的详细数据和汇总数据。数据的时间表示不同:操作数据库反映当前状态,而分析数据库既有当前状态,也有过去时刻的快照数据。1.3.2技术差异查询次数与频率不同:操作型数据库查询频率小,分析型数据库查询量大但低。数据更新不同:操作数据库设计到用户CRUD。分析型数据库是一种归档存储,只提供查询。不同的数据冗余:运营型数据库在设计表时会减少数据冗余,避免复杂的更新。分析型数据库只有查询功能,所以普遍存在数据冗余。1.3.3功能差异数据阅读器不同:运营数据的使用者是业务环节中的各种角色,如用户、商户等。分析型数据库一般只供研发和数据分析师使用。定位不同:运营型数据库主要是为支持特定业务而存在的面向应用的数据库。分析型数据库是为特定业务领域的分析师创建的,是面向主题的数据库。2数据仓库2.1数据仓库简介数据仓库的发展随着人类信息技术的发展,产生的数据越来越多,而且这些数据还可能跨部门、跨业务。如何为OLAP集成数据是一个巨大的挑战。数据仓库(DataWarehouse)应运而生。数据仓库是面向主题的、集成的、反映历史变化的相对稳定的数据集合,用于支持管理决策。数据仓库是随着企业信息化而发展起来的。在企业信息化过程中,随着信息化工具的升级和新工具的应用,数据量越来越大,数据格式越来越多。决策要求越来越苛刻,数据仓库技术也在不断发展。数据仓库的趋势:实时数据仓库满足实时和自动化决策的需求。大数据和数据湖,支持海量和复杂的数据类型(文本、图像、视频、音频)。数据仓库的发展对于数据仓库可以理解为,原始数据孤岛中的数据在存储位置、存储格式、编程语言等各个方面可能是不同的。数据仓库要做的就是将数据按照要求的格式进行抽取、转换、过滤、清洗。最后加载到数据仓库,整个过程也叫ETL。ExtractionExtraction:是指从运行的数据库中收集指定的数据。TransformationTransformation:将数据转换成指定格式,并进行数据清洗,以保证数据质量。Load加载:加载过程是指将转换后的符合指定格式的数据加载到数据仓库中。随着数据仓库的不断普及和使用,信息产业逐渐从以关系数据库为基础的操作系统发展为决策支持系统。这个决策支持系统其实就是我们现在所说的商业智能(BI)。可以说数据仓库为OLAP解决了数据源问题,数据仓库和OLAP相互促进发展,进一步推动了商业智能的成熟,但真正以智能赋能商业智能的其实是数据挖掘.2.2数据仓库的特点2.2.1面向主题面向主题的特点是数据仓库与操作型数据库的根本区别。建立运营数据库以支持各种业务,并根据业务功能进行组织。建立分析数据库来分析从各种复杂业务中提取的分析主题。所谓主题是指用户在使用数据仓库进行决策时所关心的关键方面,例如:收入、客户、销售渠道等。所谓面向主题是指数据仓库中的信息是根据主题组织的。2.2.2集成集成是指数据仓库中的信息不是简单地从各个业务系统中抽取出来,而是经过一系列的加工、整理、汇总过程,使数据仓库中的信息与整个企业全局信息保持一致.2.2.3企业级数据仓库中的数据是面向整个公司的。例如,如果主题字段是成本,则将收集与整个公司和成本相关的信息。2.2.4历史性数据仓库的时间跨度通常比操作型数据库的时间跨度要长。前者一般保存数月,后者可能保存数年甚至数十年。2.2.5时变时变是指数据仓库包含其时间范围内不同时间段的数据快照。有了这些数据快照,用户就可以对其进行汇总,并通过这些信息,对企业的发展历史和未来趋势进行量化分析和预测。2.3数据仓库体系结构2.3.1体系结构数据仓库在标准上分为四层:ODS(临时存储层)、PDW(数据仓库层)、DM(数据集市层)、APP(应用层)。各DWBI系统的数据通过ETL同步到运营数据仓库ODS,对ODS数据进行面向学科领域的建模,形成DW(DataWarehouse)。生成的报告。暂存数据操作层:ODS(OperationalDataStore):ODS层通过ETL(Extract-Transform-Load)将来自不同数据源的数据聚合整合成一个面向主题的、集成的、企业级的、一致的数据集合过程。现在有很多大数据同步技术可以选择,比如datax、canal、kafka等,这一层的主要作用是将源系统的数据基本原样同步到大数据平台(有些数据是高度敏感且不同步),因此更容易统一方案。仓库层:DW(DataWarehouse):DW是数据仓库层,DW层的数据应该是一致的、准确的、干净的数据。主要任务是清洗、拆分、整合、标准化、备份和隔离。即清洗源系统数据后的数据。这一层的数据一般遵循数据库的第三范式。BI系统中所有的历史数据都会保存在DW层,比如10年的数据。DW:DataWarehouse翻译过来就是数据仓库。DW从下往上分为DWD、DWB、DWS。DWD:WarehouseDetail明细数据层,有的也叫ODS层,是业务层和数据仓库之间的隔离层DWB:DataWarehouseBase基础数据层,存储客观数据,一般用作中间层,可以考虑作为指标的大量数据层。DWS:DataWarehouseService服务数据层,以DWB上的基础数据为基础,对某一主题域的服务数据进行整合汇总,一般为宽表。市场层:DM(DataMart):这一层更直观的叫广面层。前面说过,这一层主要是解决某一类分析问题,即面向分析。既然是面向分析的,那么一般来说就是有多个业务流程,将多个业务流程融合到一个分析主题中,必然会关联很多数据。这就是宽表的由来。在OLAP分析工具还不是很成熟的情况下,还是推荐构建多维度的宽表,这样可以避免模型之间过多的关联操作。该层存在通常用于机器学习的宽特征表。衡量市场层建设得好坏的一个更好的衡量标准是是否能满足应用层80%以上的数据需求,剩下的20%来自数据仓库层。Applicationlayer:应用层:这一层的数据完全是为了满足特定的分析需求而构建的。从数据的广度上来说,不一定涵盖所有的业务数据,而是DM层数据的适当子集。从某种意义上说,是DM层数据的重复。面向应用的特性一般具有以下特点,灵活、简单。灵活多变是指业务需要各种形式或各种自定义口径的数据,比如KV结构,各种条件来计算。简单的说就是数据一般是高度聚合的,比如报表或者核心KPI指标。2.3.2数据仓库分层的原因是为了用空间换取时间:通过大量的预处理来提高应用系统的效率,数据仓库中会存在大量的冗余数据。解耦:如果没有分层,如果源头业务系统的业务规则发生变化,整个数据清洗流程都会受到影响,工作量巨大。简化:数据清洗的过程可以通过数据分级管理来简化,因为原来一步到位的工作被分成了多个步骤来完成。当出现数据错误时,往往只需要对某一步进行局部调整即可。2.4元数据介绍2.4.1元数据定义数据仓库的元数据元数据是关于数据仓库中数据的数据。它的作用类似于数据库管理系统的数据字典。简答可以理解为一本书的目录,存放逻辑数据结构、文件、地址、索引等信息。广义上讲,元数据描述了数据仓库中数据的数据结构和建立方法。一般我们使用关系型数据库来存储这些数据,比如MySQL。元数据是数据仓库管理系统的重要组成部分。元数据管理器是企业数据仓库中的关键组件。它贯穿于数据仓库建设的全过程,直接影响到数据仓库的建设、使用和维护。构建数据仓库的主要步骤之一是ETL。这时候,元数据就会发挥重要作用。定义了源数据系统到数据仓库的映射、数据转换规则、数据仓库逻辑结构、数据更新规则、数据导入历史、加载周期。正是通过元数据,数据提取和转换专家以及数据仓库管理员才能高效地构建数据仓库。用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义,定制报表。数据仓库的规模和复杂性与适当的元数据管理密不可分,包括添加或删除外部数据源、更改数据清理方法、控制错误查询和安排备份。元数据可以分为技术元数据和业务元数据。技术元数据由开发和管理数据仓库的IT人员使用。它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗和更新规则、数据映射等。业务元数据服务于管理层和业务分析师,从业务角度描述数据,包括业务术语、数据仓库中有哪些数据、数据的位置、数据的可用性等,以帮助业务人员更好地了解数据仓库中的哪些数据可用以及如何使用它们。由上可知,元数据不仅定义了数据仓库中数据的模式、来源、提取和转换规则,而且是整个数据仓库系统运行的基础。元数据将数据仓库系统中的松散组件连接起来,形成一个有机的整体,如图此处插入图片描述2.4.2元数据在数据仓库中的作用元数据的主要作用如下:描述数据是什么在数据仓库中,帮助决策分析人员定位数据仓库的内容。定义数据如何进入数据仓库,作为数据聚合、映射和清理的指南。记录业务事件的发生和后续的数据提取工作进度。记录和测试系统数据一致性的要求和执行情况。评估数据质量。相当于写了一本数据用户指南2.5数据治理如果你做过推荐系统、BI报表等基于数据的系统,你就会知道数据治理的重要性!如果你做过机器学习,你就会知道数据远比算法重要。通常,我们对数据质量的判断来自三个方面:准确性、完整性和一致性。然而,原始数据通常不具备这三点,原始数据一般具有以下特征。数据重复,字段名称和结构不一致,部分记录缺失字段,原始数据来源和格式不同,关键数据存在异常值。在做数据清洗的时候,一般有以下规律可以发现:确保原始数据准确输入并谨慎处理NA值的字段和为空的字符串检查字符变量是否只包含有效值检查数值变量是否是在预定范围内检查缺失数据检查删除重复数据检查特殊值是否唯一检查无效数据参考数据仓库介绍:https://www.cnblogs.com/coco2015/p/11299620.html40000个数人物:https://t.1yb.co/lQt2