zoukankan      html  css  js  c++  java
  • 数仓分层

    大数据下的数据仓库对数据进行了分层管理,分为ODS、DWD,DWS,ADS层,可以把数仓分层和程序设计中的三层架构进行对比:
    相同点:
    • 第N-1层为第N层提供服务,每一层都有单独的职责。
    • 降低复杂度,
    • 减少重复开发,提高复用性
    不同点
    • 程序中的分层是为了关注点分离, 而数据的分层更像是一个萃取的过程,数据由低价值到高价值转变。
    ODS 是原始数据层  , 这一层好理解  就是把从各个地方抽取的数据,按照原貌保存下来,关于这一层, 有四点
    • 数据在抽取过程中,不要有过滤和转换操作,保持数据的原汁原味,在数据出现问题的时候,方便溯源。
    • 因为这层的数据保存时间长(至少半年),所以数据格式尽量采用带压缩格式的。
    • 数据分区(partiton)保存
    • 如果使用HIVE处理,使用Hive外部表。
    这一层是数仓的基础,根据以往经验, 这一层至关重要,数据要确保完整性,不丢 ,不重复。如果这一层数据不准确,后续下游数据也一定不准确,产出的报表也就失去了意思, 甚至会误导运营。 
    DWD叫数据明细层, 一般做两件事:
    • 数据清洗:DWD的数据来源于ODS层,从ODS层抽取数据的时候会做数据的清洗和转换
    • 数据连接:这层的数据是为DWS层(汇聚层)做准备, 而为了方便汇总数据, 就先要把相关统计维度和要统计的表放入到一个表里面
    这一层除了ETL, 最常见的可能就是 Join 操作。
    数据服务层,这一层 就是“站”各个维度看数据,时间粒度一般为当日。
    比如
        用户宽表:  用户当日访问次数,当日浏览商品次数,当日点击商品次数,当日购买次数,当日支付数。
    这一层最常见的就是  group by 操作。 
    这一层,是在DWS层的基础上进一步计算。计算出的数据更贴合业务。 
    比如 留存率,流失率,连续登陆 
    用户漏斗分析
    top 排名
    复购率
     
  • 相关阅读:
    ionic入门之AngularJS扩展基本布局
    ionic入门之AngularJS扩展(一)
    test
    面试题小整理
    使用Code first 进行更新数据库结构(数据迁移)
    SQL模糊查询与删除多条语句复习
    GridView 根据要求显示指定值
    个人工作记录---工作中遇到的sql查询语句解析
    数据库,inner join,left join right join 的区别
    利用set实现去重
  • 原文地址:https://www.cnblogs.com/beyondbit/p/14766627.html
Copyright © 2011-2022 走看看