数据仓库分层架构深度讲解

数据仓库分层架构深度讲解,第1张

         分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

清晰数据结构:

         每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。

方便数据血缘追踪:

          简单来说,我们最终给业务呈现的是一个能直接使用业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。

减少重复开发:

          规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

把复杂问题简单化:

         将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤 ,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。

屏蔽原始数据的异常:

         屏蔽业务的影响,不必改一次业务就需要重新接入数据

         数据分层每个企业根据自己的业务需求可以分成不同的层次,但是最基础的分层思想,理论上 数据分为三个层 , 数据运营层 、 数据仓库层 和 数据服务层 。基于这个基础分层之上添加新的层次,来满足不同的业务需求。

数据运营层(ODS)

         Operate data store( *** 作数据-存储),是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入ODS层 。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如:MySQL里面的一张表可以通过sqoop之间抽取到ODS层ODS层数据的来源方式:

数据仓库层(DW)

         Data warehouse(数据仓库) 。在这里, 从ODS层中获得的数据按照主题建立各种数据模型 。例如 以研究人的旅游消费为主题的数据集中 ,便可以结合航空公司的登机出行信息,以及银联系统的刷卡记录,进行结合分析,产生数据集。在这里,我们需要了解四个概念:维(dimension)、事实(Fact)、指标(Index)和粒度( Granularity)。

数据服务层/应用层(ADS):         

Application Data Service(应用数据服务)。该层主要是提供数据产品和数据分析使用 的数据,一般会存放在ES、MySQL等系统中供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用。例如:我们经常说的报表数据,或者说那种大宽表,一般就放在这里。

ODS 数据准备层

功能:         

         ODS层是数据仓库准备区,为DWD层提供基础原始数据,可减少对业务系统的影响

建模方式及原则:     

        从业务系统增量抽取 、保留时间由业务需求决定、 可分表进行周期存储、数据不做清洗转换与业务系统数据模型保持一致 、按主题逻辑划分

DWD 数据明细层

功能:       

       为DW层提供来源明细数据,提供业务系统细节数据的长期沉淀 ,为未来分析类需求的扩展提供历史数据支撑

建模方式及原则:       

        数据模型 与ODS层一致,不做清洗转换处理 、为支持数据重跑 可额外增加数据 业务日期字段、可按年月日进行分表、用增量ODS层数据和前一天DWD相关表进行merge处理

DW(B/S) 数据汇总层

功能:         

       为DW、ST层提供细粒度数据,细化成DWB和DWS;       

        DWB是根据DWD明细数据进行转换 ,如维度转代理键、身份z清洗、会员注册来源清晰、字段合并、空值处理、脏数据处理、IP清晰转换、账号余额清洗、资金来源清洗等;      

         DWS是根据DWB层数据按各个维度ID进行高粒度汇总聚合 ,如按交易来源,交易类型进行汇合

建模方式及原则:

         聚合、汇总增加派生事实;

         关联其它主题的事实表,DW层可能会跨主题域;

         DWB保持低粒度汇总加工数据,DWS保持高粒度汇总数据;

         数据模型可能采用反范式设计,合并信息等。

Data Market (数据集市)层

功能:        

        可以是一些宽表,是根据DW层数据按照各种维度或多种维度组合把需要查询的一些事实字段进行汇总统计并作为单独的列进行存储 ;         

        满足一些特定查询、数据挖掘应用        

         应用集市数据存储

建模方式及原则:         

      尽量减少数据访问时计算 (优化检索)        

      维度建模,星型模型;         

      分表存储

ST 数据应用层(ADS层)

功能:        

        ST层面向用户应用和分析需求 ,包括前端报表、分析图表、KPI、仪表盘、OLAP、专题等分析, 面向最终结果用户          

     适合做OLAP、报表模型,如ROLAP,MOLAP

         根据DW层经过聚合汇总统计后的粗粒度事实表

建模方式及原则:         

         本篇文章主要讲解数仓项目中为什么分层,比如 我们在完成一个需要的需求的时候也许只需要一个复杂的SQL语句就可以完成。但一个复杂的SQL语句方便后面维护吗?当出现了问题方便追踪吗? 这时候就体现出分层的好处。顺便给大家分享阿里的数仓模型是什么样的。信自己,努力和汗水总会能得到回报的。我是大数据老哥,我们下期见~~~

在空间数据库的逻辑设计中,往往将不同类,不同级的地理要素进行分层存放,每一层存放一种专题或一类信息。按照用户一定的需求或标准把某些地理要素组合在一起成为图层,它表示地理特征以及描述这些特征的属性的逻辑意义上的集合。在同一层信息中,数据一般具有相同的几何特征和相同的属性特征。

对空间数据进行分层管理,能提高数据的管理效率,便于数据的二次开发与综合利用,实现资源共享。同时,它也是满足多用户不同需要的有效手段,各用户可以根据自己的需要,将不同内容的图层进行分离、组合和叠加,形成自己需要的专题图。

空间数据分层可以按专题、时间、垂直高度等方式来划分。按专题分层就是每层对应一个专题,包含一种或几种不同的信息。专题分层就是根据一定的目的和分类指标对地理要素进行分类,按类设层,每类作为一个图层,对每一个图层赋予一个图层名。分类可以从性质、用途、形状、尺度、色彩等5个方面的因素考虑。按时间序列分层则可以从不同时间或时期进行划分,时间分层便于对数据的动态管理,特别是对历史数据的管理。按垂直高度划分是以地面不同高层来分层,这种分层从二维转化为三维,便于分析空间数据的垂向变化,从立体角度去认识事物的构成。

空间数据分层要考虑如下一些问题:

(1)数据具有同样的特性,也可以说是具有相同的属性信息。

(2)按要素类型分层,性质相同或相近的要素应放在同一层。

(3)即使是同一类型的数据,有时其属性特征也不相同,所以应该分层存储《

(4)分层时要考虑数据与数据之间的关系,如哪些数据有公共边,哪些数据之间有隶属关系等。很多数据之间都具有共同或重叠的部分,即多重属性的问题,这些因素都将影响层的设置。

(5)分层时要考虑数据与功能的关系,如哪些数据经常在一起使用,哪些功能是起主导作用的功能。考虑功能之间的关系,不同类型的数据由于其应用功能相同,在分析和应用时往往会同时用到,因此在设计时应反映这样的需求,可以将此类数据设计为同一专题层。例如,水系包括多边形水体(湖泊、水库等)、线状水体(河流、小溪等)和点状水体(井、泉等)。由于多边形的湖泊、水库,线状的河流、小溪和点状的井、泉等在功能上有着不可分割、相互依赖的关系,在设计上可将这3种类型的数据组成同一个专题数据层.

(6)分层时应考虑更新的问题。数据库中各类数据的更新可能使用各种不同的数据源,更新一般以层为单位进行处理,在分层中应考虑将变更频繁的数据分离出来,使用不同数据源更新的数据也应分层进行存储,以便更新。

(7)比例尺的一致性。

(8)同一层数据会有同样的使用目的和方式。

(9)不同部门的数据通常应该放人不同的层,这样便于维护。

(10)数据库中需要不同级别安全处理的数据也应该单独存储。

(11)分层印应顾及数据量的大小,各层数据的数据量最好比较均衡。

(12)尽量减少冗余数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6920556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存