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 排名
    复购率
     
  • 相关阅读:
    Mysql数学函数不求人数据库专栏,MySQL
    下班以后就不要开电脑了,
    在ubuntu下用eclipsecdt调试memcached C language ITeye论坛
    mperham/sidekiq
    Reference C++ Reference
    请问一下哪有机械键盘的实体店可以体验一下? 外设 Chiphell 分享与交流用户体验的最佳平台 Powered by Discuz!
    Linux的cron和crontab iTech 博客园
    MIUI官方论坛 发烧友必刷的Android ROM
    机器学习视频
    crossover 海客谈, 季小军, 义乌人
  • 原文地址:https://www.cnblogs.com/beyondbit/p/14766627.html
Copyright © 2011-2022 走看看