浅谈企业数据仓库

      本篇文章,我们来谈谈数据仓库,我们从以下几个点来阐述数据仓库

  1. 什么是企业数据仓库?
  2. 企业数据仓库建设方法以及优缺点
  3. 企业数据仓库的规范
  4. 企业数据仓库的数据建模方法
  5. 范式建模和维度建模
  6. 数据仓库存在的痛点
  7. 企业数据仓库的管理
  8. 未来发展趋势  

1.什么是企业数据仓库?

            数据仓库是一个集成的面向主题的数据集合,设计的目的是支持DSS(决策支持系统)的功能,在数据仓库里,每个数据单元都和特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据。数据仓库是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程。不能将数据仓库简单地理解成一套软件,数据仓库是重建企业数据流和信息流的过程,在这个过程中,构造企业的决策支持环境,以区别原来的业务系统所构建的操作型环境。数据仓库的价值并不是你在仓库中所存储的数据量的多少,而关键在于从仓库中能够获得的信息和分析结果的质量。

2.企业数据仓库建设方法以及优缺点

      2.1  数据仓的建设方法

                  数据仓库的建设方法采用分层的方式,如下图:

          

  • ODS 数据接入层

              数据同步,基本保持与源数据格式一致,不进行过多的校验            

  • DIM维表层

             一致性维度建设

  • DWD明细数据层

            标准化,异常处理

  • DWS轻度汇总层

          单业务场景,行为数据组装,提炼公共数据的指标,增加复用性

  • DWM数据集市层

         宽表集市,跨业务场景,行为数据组装

  • APP数据应用层

         个性化指标加工,基于应用的数据组装

下面是分层调用的图:

3.企业数据仓库的规范

  •      表命名规范

                (数据仓库分层,ods,dwd,dws,app)_(业务)_(数据域)_(业务描述)_(时间周期)

                具体入下图:

                

              举例说明:

                           如下表名:dwd_order_trade_detail_day  (订单交易明细天表)

                                             dwd_order_trade_detail_month  (订单交易明细月表)

  •     字段命名规范

                      1.属性字段:文本字段,使用通用单词即可

                      2.指标字段:修饰词+原子词+时间

                      4.计数字段:<计数主体>_cnt

                      5.比例字段:<比例主体>_rate

                      6. 分区字段:日/周/月/季度/年:ds,小时:hh ,分钟:mm,业务分区:业务描述文本

                      7.费用字段:<费用主体>_amt

                      8.标识字段:is_<标识主体>

                      9.时间字段:<业务主体>_time

                     10.日期字段:<业务主体>_date                  

  •      数据开发规范

          1. 指定库和队列:声明使用的库,指定本账号所属的队列

          2.表创建:外部表,ORC,分割,Location指定

          3.分区加载:删除分区,加载分区,指定分区Location

          4.UDF/临时表创建

          5.数据写入:通过覆盖的方式写入

          6.临时表删除    

4.企业数据仓库的数据建模方法

  数据仓库建模主要遵循以下:

          

  • 概念模型

         概念模型主要是通过分析和归纳,将业务划分成几个主题,并确定主题之间的关系

   比如:

         电影行业:影院,影片  ,影人,用户,订单,渠道,发行等

         出行行业:司机,乘客,订单,支付,车辆等

  • 逻辑模型

逻辑模型是指在概念模型的基础上,定义数据仓库的各种实体,属性,关系,指导后续的数据存储,组织和数据应用的开发,目前比较流行的建模理论为inmon提出的自下而上的范式建模理论和Kimball的从上而下的维度建模理论

范式建模:

         1. 第一范式(INF):原子性,数据不可分割

         2.第二范式(2NF):唯一性,每一行数据都具备唯一性

         3.第三范式(3NF):独立性,消除传递依赖

维度建模:

     1. 星型:

                由一个事实表和一组维表组成,每个维表都有一个维度作为主键,事实表居中,多个维表呈辐射状分布其四周,

并与事实表连接。形成一个星型结构

     2.雪花型:

               在星型模型基础上,基于范式理论进一步层次化,将某些维表扩展成事实表,最终形成雪花状结构

  • 物理模型

          物理模型设计是根据逻辑模型设计的结构为基础,设计数据对象的物理实现,比如表的命名规范,字段的命名规范,字段的类型选择,分区设置,存储设置,更新方式等等

5.范式建模和维度建模

  • 范式建模

       由Inmon所倡导,主要利用关系型数据库进行数据仓库的建设,且模型的建设方法和业务系统的数据模型比较类似

        一个符合第三范式的关系必须具有以下三个条件:

          a. 1NF:每个属性值唯一,不具有多义性;

          b.2NF:每个非空主属性必须完全依赖于整个主键,而非主键的一部分

         c:3NF:每个非主属性不能依赖于其他关系中的属性

   优点:

              节约存储,结构清晰,易于理解,适合关系型数据库

  缺点:

            构建比较繁琐

            查询复杂

           不适合构建在大数据分布式环境下

虽然有这些缺点,但是范式建模的理论,任然是需要我们去熟练掌握,原因有如下几点:

       数据仓库上游有相当一部分数据源是业务数据库,这些业务数据库,其理论一般都是基于范式理论;

       数据源的规范定义需要我们了解范式理论

       数据仓库下游系统比如报表系统设计时,可能会用到范式理论

  • 维度建模

由于范式建模存在的问题,Kimball 提出了维度建模理论,即数据可以抽象成事实和维度,维度为客观事物的角度,事实为对应某粒度下的度量值,一般维度建模的步骤如下:

 1. 选择业务过程

        业务过程是一系列操作活动,转换为事实表中的事实,例如每个月的每个账单快照

 2. 声明粒度

        粒度是指事实表中的一行代表什么,同一个事实表不能混用粒度,最好从最小的粒度开始设计维度,因其可能承受用户无法预计的查询需求

 3.确认维度

       维度是根据粒度将表分开成多个维度表,即从不同的维度(角度)去看

      维度是数据仓库的灵魂,是BI的入口和驱动

4.确认事实

      事实是指一种在某个粒度下的度量,例如在销售维度中,销量和总额是良好的事实,而商店经理的工资则不允许出现在该维度中。

优点:

     方便使用

    适合大数据下的数据处理场景(与大数据的处理方式有关,适合处理大文件,不适合处理小文件,避免多表关联)

    适合进行OLAP操作

缺点:

    维度补全造成的数据存储的浪费

    维度变化造成的数据更新量大

    与范式理论差异很大,是典型的反三范式

6.企业数据仓库的管理

  • 调度系统

                1. Azkaban

                2.airflow 

                3.DolphinScheduler

                4.Oozie

  • 元数据管理(数据地图) 

              元数据管理包括如下信息:

 
序号名称说明
1表信息包括表英文名,中文注释,表状态,表类型(外部,内部),等
2字段信息包括字段类型,英文名,中文名,字段注释,安全等级,统计逻辑说明
3负责人信息业务/开发负责人名称,所在部门,以及联系方式
4分区信息分区名,分区大小,分区记录条数,生成分区的时间
5血缘关系表的上游,下游
6代码信息生成该表对应的代码
7存储信息数据存储的位置,格式,
8热度信息数据的使用热度
9权限信息表的权限,字段的权限
10使用注意事项使用规范
  • 权限管理 

               数据权限管理,资源权限管理(存储,集群计算资源)

  • 血缘分析 

                表上下游依赖分析,任务执行流程,是数据质量监控的重要部分等

  • 指标管理

               包括指标解析,指标录入,指标申请,指标说明等,指标管理是实现数据指标,计算口径统一的重要策略

  • 数据质量监控

               数据质量监控主要基于规则判断达到数据监控的目的,系统建设一般分为三个阶段

                       1.表级别的监控:主要为表的总条数,总大小,分区数据,各分区条数,各分区大小,

               条数/大小同行比,日增长情况等

                       2.字段级别的数据监控:枚举值异常判断,特殊值判断,范围判断等

                       3.全链路数据监控:主要依赖于上下游血缘分析,自动判断跟踪故障点,并及时告知相关负责人

                                                       其中,表级别和字段级别的监控是比较常规且易实现的监控方式,

                                                       全链路数据监控比这两者要复杂

                                                        很多,涉及到从源数据-》数据通道-》数据ETL-》数据展示的全过程

  • 通用的离线和实时计算平台

7.数据仓库存在的痛点

  • 临时取数的需求占用数仓人员大部分数据
    • 自主取数+OLAP系统(自助查询平台)
  • 数仓规范和流程不一致,跨部门合作困难
    • 建模规范和开发规范(数据开发平台)
  • 指标口径不一致导致数据可信度下降
    • 指标字典
  • 烟筒式开发形成数据孤岛与重复计算
    • 指标字典
    • 建模规范和开发规范
  • 数据膨胀导致数据计算资源紧张,出数时间得不到保障
    • 指标字典
    • 建模规范和开发规范
    • 数据产品和服务话
  • 异常排查时间和修复时间长
    • 元数据与数据质量监控
  • 数据安全和数据共享矛盾不可调和
    • 数据分级和权限管理
  • 产出形式单一
    • 数据产品和服务化
  • 业务需求响应不及时
    • 自助查询平台
    • 数据产品和服务

7.未来发展趋势  

            1. 数据产品化

                    面向管理层的宏观经营分析系统(报表,邮件,BI);

                    面向运营人员的业务监控报表系统

            2.数据服务化

                   数据服务管理平台(http,grpc)

                   数据运营平台

            3. 数据资产化(数据银行)

            

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值