首先,用于支持决策,面向分析型数据处理;其次,对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
数据仓库(Data Warehouse)是一个面向主题的(subject oriented)、集成的(integrated)、相对稳定的(non-volatile)、反应历史变化(time variant)的数据集合,用于支持管理决策(decision making support)。
从目标、用途、设计来说
数仓模型的选择是灵活的,不局限于某种模型方法。
数仓数据是灵活的,以实际需求场景为导向。
数仓设计要兼顾灵活性、可扩展性,要考虑技术可靠性和实现成本。
https://www.zhihu.com/question/19703294
系统分析,确定主题。通过与业务部门的交流,了解建立数仓要解决的问题,确认各个主题下的查询分析要求
选择满足数据仓库系统要求的软件平台。选择合适的软件平台,包括数据库、建模工具、分析工具等
建立数据仓库的逻辑模型。确定建立数据仓库逻辑模型的基本方法,基于主题视图,把主题视图中的数据定义转到逻辑数据模型中
逻辑数据模型转换为数据仓库数据模型
数据仓库数据模型优化。随着需求和数据量的变化进行调整
数据清洗转换和传输。业务系统中的数据加载到数据仓库之前,必须进行数据的清洗和转换,保证数据仓库中数据的一致性。
开发数据仓库的分析应用。满足业务部门对数据进行分析的需求。
数据仓库的管理。包括数据库管理和元数据管理。
数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台吧数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。
这些服务和企业的业务有较强的关联性,是企业所独有且能复用的,它是企业业务和数据的积淀,其不仅能降低重复建设,减少烟囱式协作的成本,也是差异化竞争的优势所在。
数据中台通过整合公司开发工具、打通全域数据、让数据持续为业务赋能,实现数据平台化、数据服务化和数据价值化。数据中台更加侧重于“复用”与“业务”。
数据平台:提供的是计算和存储能力
数据仓库:利用数据平台提供的计算和存储能力,在一套方法论指导下建设的一整套的数据表
数据中台:包含了数据平台和数据仓库的所有内容,将其打包,并且以更加整合以及更加产品化的方式对外提供服务和价值。
数据平台:为业务提供数据主要方式是提供数据集
数据仓库:相对具体的功能概念是存储和管理一个或多个主题数据的集合,为业务提供服务的方式主要是分析报表
数据中台:企业级的逻辑概念,提现企业数据产生价值的能力,为业务提供服务的主要方式是数据API
总的来说,数据中台距离业务更近,数据复用能力更强,能为业务提供速度更快的服务。数据中台是在数据仓库和数据平台的基础上,将数据生产为一个个数据API服务,以更高效的方式提供给业务。数据中台可以建立在数据仓库和数据平台之上,是加速企业从数据到业务价值的过程的中间层。
数仓设计中心:按照主题域、业务过程,分层的设计方式,以维度建模作为基本理论依据,按照维度、度量设计模型,确保模型、字段有统一的命名规范
数据资产中心:梳理数据资产,基于数据血缘,数据的访问热度,做成本的治理
数据质量中心:通过丰富的稽查监控系统,对数据进行事后校验,确保问题数据第一时间被发现,避免下游的无效计算,分析数据的影响范围。
指标系统:管理指标的业务口径、计算逻辑和数据来源,通过流程化的方式,建立从指标需求、指标开发、指标发布的全套协作流程
数据地图:提供元数据的快速索引,数据字典、数据血缘、数据特征信息的查询,相当于元数据中心的门户。
http://baijiahao.baidu.com/s?id=1651988047250956280&wfr=spider&for=pc
数据中台在企业落地实践时,结合技术、产品、数据、服务、运营等方面,逐步开展相关工作。
中台建设需要有全员共识,由管理层从上往下推进,由技术和业务人员去执行和落地是一个漫长的过程,在实施数据中台时,最困难的地方就是需要有人推动。
数据湖是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。
个人认为是数据集成。
企业的数据通常是存储在多个异构数据库中的,要进行分析,必须先要对数据进行一致性整合。
集成整合后才可以对数据进行分析、挖掘数据潜在的价值。
概念数据模型设计与逻辑数据模型设计、物理数据模型设计是数据库及数据仓库模型设计的三个主要步骤。
conceptual data model
概念数据模型是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,以数据类的方式描述企业级的数据需求。
概念数据模型的内容包括重要的实体与实体之间的关系。在概念数据模型中不包含实体的属性,也不包含定义实体的主键
概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系
logical data model
逻辑数据模型反应的是系统分析设计人员对数据存储的观点,是对概念数据模型的进一步的分解和细化。逻辑数据模型是根据业务规则确定的,关于业务对象、业务对象的数据项以及业务对象之间关系的基本蓝图
逻辑数据模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键,指定实体的外键,需要进行范式化处理。
逻辑数据模型的目标是尽可能详细的描述数据,但并不考虑在物理上如何实现
physical data model
物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。
物理数据模型的内容包括确定所有的表和列,定义外键用于确认表之间的关系,基于用户的需求可能要进行反范式化等内容。
slowly changing dimensions缓慢变化维度
https://www.jianshu.com/p/f7c26b4ebe3c
狭义来讲就是用来描述数据的数据
广义来看,除了业务逻辑直接读写处理的业务数据,所有其他用来维护整个系统运转所需要的数据,都可以较为元数据。
定义:元数据metadata是关于数据的数据。在数仓系统中,元数据可以帮助数据仓库管理员和数据仓库开发人员方便的找到他们所关心的数据;元数据是描述数据仓库内部数据的结构和建立方法的数据。按照用途可分为:技术元数据、业务元数据。
存储关于数据仓库技术细节的数据,用于开发和管理数据仓库使用的数据
从业务角度描述了数据仓库中的数据,他提供了介于使用者和实际系统之间的语义层,使不懂计算机技术的业务人员也能读懂数仓中的数据。
元数据管理往往容易被忽视,但是元数据管理是不可或缺的。一方面元数据为数据需求方提供了完整的数仓使用文档,帮助他们能自主快速的获取数据;另一方面数仓团队可以从日常的数据解释中解脱出来,无论是对后期的迭代更新还是维护,都有很大的好处。元数据管理可以让数据仓库的应用和维护更加的高效。
自研
apache atlas
https://www.jianshu.com/p/708f5606dd01
主题是在较高层次上将数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对企业中某一宏观分析领域所涉及的分析对象。
面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。
主题是根据分析的要求来确定的。
主题语通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域的确定由最终用户和数仓设计人员共同完成。
主题域是对某个主题进行分析后确定的主题的边界。
数仓建设过程中,需要对主题进行分析,确定主题所涉及到的表、字段、维度等界限。
数仓主题定义好以后,数仓中的逻辑模型也就基本成形了,需要在主题的逻辑关系中列出属性和系统相关行为。此阶段需要定义好数据仓库的存储结构,向主题模型中添加所需要的信息和能充分代表主题的属性组。
https://www.jianshu.com/p/44d7618f32b6
数据治理不仅需要完善的保障机制,还需要理解具体的治理内容,比如数据应该怎么进行规范,元数据该怎么来管理,每个过程需要那些系统或者工具来配合?
数据治理领域包括但不限于以下内容:数据标准、元数据、数据模型、数据分布、数据存储、数据交换、数据声明周期管理、数据质量、数据安全以及数据共享服务。
构建数据仓库有两种方式:自上而下、自下而上
Bill Inmon推崇自上而下的方式,一个企业建立唯一的数据中心,数据是经过整合、清洗、去掉脏数据、标准的、能够提供统一的视图。要从整个企业的环境入手,建立数据仓库,要做很全面的设计。偏数据驱动
Ralph Kimball推崇自下而上的方式,认为数据仓库应该按照实际的应用需求,架子啊需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期短,用户能很快看到结果。偏业务驱动
https://blog.csdn.net/kuangfeng88588/article/details/99085074
数据质量管理是对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的数据质量问题,进行识别、度量、监控、预警等,通过改善了提高组织的管理水平使数据质量进一步提高。
数据质量管理是一个集方法论、技术、业务和管理为一体的解决方案。放过有效的数据质量控制手段,进行数据的管理和控制,消除数据质量问题,从而提高企业数据变现的能力。
会遇到的数据质量问题:数据真实性、数据准确性、数据一致性、数据完整性、数据唯一性、数据关联性、数据及时性
数据模型就是数据组织和存储的方法,通过抽象的实体以及实体间联系的形式来表达现实世界中事务的相互关系的一种映射,他强调从业务、数据存取和使用角度合理的存储数据。
数仓建模需要按照一定的数据模型,对整个企业的数据进行采集,整理,提供跨部门、完全一致的报表数据。
合适的数据模型,对于大数据处理来讲,可以获得得更好的性能、成本、效率和质量。良好的模型可以帮助我们快速查询数据,减少不必要的数据冗余,提高用户的使用效率。
数据建模进行全方面的业务梳理,改进业务流程,消灭信息孤岛,更好的推进数仓系统的建设。
OLTP系统是操作事物型系统,主要数据操作是随机读写,主要采用满足3NF的实体关系模型存储数据,在事物处理中解决数据的冗余和一致性问题。
OLAP系统是分析型系统,主要数据操作是批量读写,不需要关注事务处理的一致性,主要关注数据的整合,以及复杂大数据量的查询和处理的性能。
有四种模型:ER模型、维度模型、Data Vault模型、Anchor模型。用的较多的是维度模型和ER模型。
ER模型用实体关系模型描述企业业务,在范式理论上满足3NF。数仓中的3NF是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。
采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据按照主题进行相似性整合,并进行一致性处理。
维度建模按照事实表和维度表来构建数仓。
维度建模从分析决策的需求出发构建模型,为分析需求服务。重点关注用户如何快速的完成数据分析,可以直观的反应业务模型中的业务问题,需要大量的数据预处理、数据冗余,有较好的大规模复杂查询的响应性能。
发生在现实世界中的操作性事件,其产生的可度量数值,存储在事实表中。从最细粒度级别来看,事实表的一行对应一个度量事件。事实表表示对分析主题的度量。‘
事实表中包含了与各个维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型,且记录数不断增加,表数据量迅速增长。
维度表示分析数据时所用的环境。
每个维度表都包含单独的主键列。维度表行的描述环境应该与事实表行完全对应。维度表通常比较宽,是扁平型的非规范表,包含大量的低粒度的文本属性。
事实表的设计是以能够正确记录历史信息为准则
维度表的设计是以能够以合适的角度来聚合主题内容为准则
事实表有:事务事实表、周期快照事实表、累积快照事实表、非事实事实表
事务事实表记录的是事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。
以具有规律性的、可预见的时间间隔来记录事实。它统计的是间隔周期内的度量统计,每个时间段一条记录,是在事务事实表之上建立的聚集表。
累积快照表记录的不确定的周期的数据。代表的是完全覆盖一个事务或产品的生命周期的时间跨度,通常具有多个日期字段,用来记录整个生命周期中的关键时间点。
https://www.cnblogs.com/lijun4017/archive/2010/08/05/1792293.html
这个与上面三个有所不同。事实表中通常要保留度量事实和多个维度外键,度量事实是事实表的关键所在。
非事实表中没有这些度量事实,只有多个维度外键。非事实型事实表通常用来跟踪一些事件或说明某些活动的范围。
第一类非事实型事实表是用来跟踪事件的事实表。例如:学生注册事件
第二类非事实型事实表是用来说明某些活动范围的事实表。例如:促销范围事实表
理论上数据分为:操作数据层、数据仓库层、数据服务层。可根据需要添加新的层次,满足不同的业务需求。
Operate Data Store操作数据存储。数据源中的数据经过ETL后装入ODS层。
ODS层数据的来源一般有:业务数据库、日志、抓取等。
根据ODS层中的数据按照主题建立各种数据模型。
DW通常有:DWD、DWB、DWS
DWD: data warehouse detail细节数据层,是业务层和数据仓库的隔离层。
DWB: data warehouse base基础数据层,存储的是客观数据,一般用作于中间层。
DWS: data warehouse service服务数据层,整合汇总分析某个主题域的服务数据。一般是大宽表。
该层主要提供数据产品和数据分析使用的数据,一般会放在ES、Mysql系统中供线上系统使用
经典数仓架构:使用传统工具来建设数仓
离线大数据架构:开始使用大数据工具来替代经典数仓中的传统工具
Lambda架构:在离线大数据架构的基础上,使用流处理技术直接完成实时性较高的指标计算
Kappa:实时处理变成了主要的部分,出现了以实时处理为核心的kappa架构
数据源通过离线的方式导入离线数仓中。下游应用根据业务需求选择获取数据的方式
在离线数仓的基础上增加了实时计算的链路,并对数据源进行流式改造,实时计算去订阅消息队列,并推送到下游的数据服务中去。
Lambda架构问题:同样的需求需要开发两套一样的代码;资源占用增多
kappa架构可以认为是lambda架构的简化版,移除了lambda架构中的批处理部分。
在kappa架构中,需求修改或者历史数据重新处理都通过上游重放完成
kappa架构最大的问题是流式重新处理历史数据的吞吐能力会低于批处理,但可以通过增加计算资源来弥补
真实场景中,是lambda架构和kappa架构的混合。大部分实时指标通过kappa架构计算,少量关键指标用lambda架构批量计算
随着数据多样性的发展,数据库这种提前规定schema的模式显得力不从心。这时出现了数据湖技术,把原始数据全部缓存到某个大数据存储上,后续分析时根据需求去解析原始数据。简单来说,数据仓库模式是schema on write,数据湖模式是schema on read
OLAP(On-line Analytical Processing),联机分析处理,其主要的功能在于方便大规模数据分析及统计计算,对决策提供参考和支持
特点:数据量大、高速响应、灵活交互、多维分析
ROLAP(RelationalOLAP)
MOLAP(MultimensionalOLAP)
HOLAP(HybridOLAP)
https://blog.csdn.net/weixin_42529806/article/details/97615618
https://www.cnblogs.com/kaleidoscope/p/10163678.html
Facebook开发的分布式大数据SQL查询引擎,专门进行快速数据分析
Druid是一个用于实时查询和分析的分布式实时处理系统,主要用于广告分析,互联网广告监控、度量和网络监控
Kylin是提供与Hadoop之上的SQL查询接口及多维分析能力以支持超大规模数据
面试问题准备-数据仓库建模篇 https://blog.csdn.net/lurrass/article/details/89061562
事实表的类型 https://blog.csdn.net/a6822342/article/details/99189806
浅析非事实表 https://www.cnblogs.com/lijun4017/archive/2010/08/05/1792293.html