zoukankan      html  css  js  c++  java
  • 数据仓库-需求沟通和开发示例

    0.需求开发之前,

     首先要确认需求,这一步很重要,
      1. 你真正想要的是什么?这个需求是否合理?
       需求的核心诉求是什么,当前有没有相应的功能或者流程改善?有时候产品想要的和说出来的不是一回事,更多的时候
       他们会把他们认为合理步骤分解,要求这么做,那么做,所以,沟通很重要,首先问他们想要什么,在什么场景下,明确
       要什么之后,然后确认现在有什么,具体怎么实现可以从开发的角度进行评估和判断。实现的资源和时间。
           常见的一些定式:
               探访原因:什么时候开始……? 不用全部
               探访层次: 你这个需求使用的频率是什么?
      2.目前我们有什么?
           目前在做的任务,优先级,人力资源,技术程度,事情要把时间这个变量加上
      3.实现你想要的需要什么?
          目前可实现的,需要多长时间,优先级是什么?
          如果有难度的话 是不是可以分阶段,分批次,是不是可以简化功能,如果不能,那是不是可以加资源。
    

    1. 需求梳理

      -- 表:  student.dwd_t_calss_learn_d
      -- 汇总指标:
       -- 指标层级
         -- 业务域 : **业务
         -- 业务过程:**
         -- 时间周期:   2020年 起止的边界点 左右是否包含
         -- 涉及字段:   kind_cd standards
         -- 维度    :   种类  +退化维度(线上教学和线下教学)
         -- 度量:  :   单数 人数 学费
         -- 默认值和空值处理
         -- 开发注意事项: 字符串的比较和排序 与数字不同
         --  距离 int   确认单位制以及对应的度量
          -- 指标等级: 内部局部使用的测试逻辑数据,无敏感数据
    

    2.数据探查和业务理解

      select * from student.dwd_t_calss_learn_d where sta_date=20180910
    --业务确认:历史的统计逻辑
    -- 数据维度确认
      select DISTINCT kind_cd    from student.dwd_t_calss_learn_d where sta_date=20180910
      select DISTINCT standards  from student.dwd_t_calss_learn_d where sta_date=20180910
      standards 规格是NULL值的,保留NULL值
    

    3. 需求开发实战

      WITH q1 AS(
      SELECT
         t1.school_cd
        ,t1.standards_nm
        ,COUNT(DISTINCT student_id ) AS  stu_cnt
        ,ROUND(SUM(tuition_amt),4)   AS  tuition_amt
        ,COUNT(DISTINCT CASE WHEN school_kind =1 THEN student_id ELSE NULL end )  AS on_stu_cnt
        ,COUNT(DISTINCT CASE WHEN school_kind =1 THEN student_id ELSE NULL end )  AS off_stu_cnt
      FROM 
        (select   
       school_cd  
     , school_kind  
         , CASE WHEN   standards == 1                  THEN '差评'
            WHEN   standards= 1  AND standards<= 4 THEN '中评'
            WHEN   standards> 4                    THEN '好评'
            ELSE  NULL 
            END AS  standards_nm
     ,student_id  
     ,tuition_amt  
        from student.dwd_t_calss_learn_d 
        where sta_date >=20200916 AND  sta_date <=20200916
         )t1
       GROUP BY t1.school_cd, t1.standards_nm
       )
       SELECT  school_cd ,standards,on_stu_cnt,off_stu_cnt,off_stu_cnt+ on_stu_cnt as data
       FROM q1 
      ;
    

    4 数据查验和确认

    查看总的数据量
    查看抽样数据  对比数据,查看一些维度数据等
    

    5 最终脚本确认和数据服务

      drop table if EXISTS student.tmp_class_cd_learn_info_ed;
      create table   student.tmp_class_cd_learn_info_ed  stored as parquet AS
  • 相关阅读:
    编译安装php5 解决编译安装的php加载不了gd
    apache-php
    使用ab对网站进行压力测试
    正则表达式实例 -- 匹配Windows消息宏
    SDK 操作 list-view control 实例 -- 遍历进程
    malloc/free、new/delete 区别
    Python实例 -- 爬虫
    multimap实例 -- 添加、遍历数据
    CListCtrl 扩展风格设置方法---SetExtendedStyle和ModifyStyleEx
    创建指定大小的空文件
  • 原文地址:https://www.cnblogs.com/ytwang/p/13691713.html
Copyright © 2011-2022 走看看