前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据仓库

数据仓库

作者头像
awwewwbbb
发布2023-10-16 19:36:54
1970
发布2023-10-16 19:36:54
举报
文章被收录于专栏:chaplinthink的专栏

SQL

  1. 给一张城市和交易额表,一张城市对应省份表, 取出 省份 总 交易额大于 500 的 省份 的名字
代码语言:javascript
复制
select max(tmp.province_name) from  

(select bt.city_num, bt.gmv, pt.province_num, pt.province_name from business_table bt  

left join province_table pt  on bt.city_num  = pt.city_num) tmp

GROUP BY (tmp.province_num) HAVING  sum(tmp.gmv) > 500
  1. 基于上面1问题, 得出 省份 总 交易额 [0,500 ] , [500,1000 ] , [1000,+oo ] 在以下三个区间的 省份 的 数量
代码语言:javascript
复制
select 
count(case when tmp1.pro_gmv >=0 and tmp1.pro_gmv <500 then tmp1.pro_name  else NULL END ) as gmv_0_500,
count(case when tmp1.pro_gmv  >=500 and tmp1.pro_gmv  <1000 then tmp1.pro_name  else NULL END ) as gmv_500_1000,
count(case when tmp1.pro_gmv  >=1000 then tmp1.pro_name  else NULL END ) as gmv_1000_
from 
(select  max(tmp.province_name) as pro_name , sum(gmv) as pro_gmv from 

(select bt.city_num, bt.gmv, pt.province_num, pt.province_name from business_table bt  

left join province_table pt  on bt.city_num  = pt.city_num) tmp

group by  tmp.province_num) tmp1
  1. 还是基于刚才, 按从小到大的顺序得出每个城市的累计交易额,可以用窗口
代码语言:javascript
复制
-- group by 
select city_num, sum(gmv) as c_gmv  from business_table bt group by city_num   order by c_gmv

-- window
select bt.city_num, bt.c_gmv from 

(select DISTINCT city_num, sum(gmv) over (PARTITION by city_num) as c_gmv from business_table) bt 

order by  bt.c_gmv

指标

指标的价值

海盗指标法(AARRR海盗模型) 它反映了增长是系统性地贯穿于用户生命周期各个阶段的:用户拉新(Acquisition)、用户激活(Activation)、用户留存(Retention)、商业变现(Revenue)、用户推荐(Referral)

指标如何做到精准

选指标常用方法是指标分级方法和OSM模型。

  • 指标分级方法 T1 公司战略层面指标 T2 业务策略层面指标 T3 业务执行层面指标
  • OSM模型 O 业务目标 S 业务策略 M 业务度量

建模

维度建模的模式:

  1. 星型模型: 以事实表为中心,所有的维度表直接连在事实表上
  2. 雪花模式:雪花模式的维度表可以拥有其他的维度表,这种表不易维护,一般不推荐使用
  3. 星座模型: 基于多张事实表,而且共享维度信息,即事实表之间可以共享某些维度表

维度建模步骤:

事实表种类:

  1. 事物事实表: 表中的一行对应空间或时间上某点的度量事件
  2. 周期快照事实表: 单个周期内数据, 每行都带有时间值字段,代表周期
  3. 累计快照事实表: 由多个周期数据组成,每行汇总了过程开始到结束之间的度量
  4. 无事实的事实表: 有少量的没有数字化的值但是还很有价值的字段,无事实的事实表就是为这种数据准备的,利用这种事实表可以分析发生了什么。
  5. 聚集事实表: 原子粒度的数据进行简单的聚合操作,目的就是为了提高查询性能
  6. 合并事实表: 属于相同粒度,就可以合并为一个事实表

维度表技术

  1. 维度表结构 维度表谨记一条原则,包含单一主键列
  2. 跨表钻取 使不同的查询能够针对两个或更多的事实表进行查询 上钻(roll-up):上卷是沿着维的层次向上聚集汇总数据。例如,对产品销售数据,沿着时间维上卷,可以求出所有产品在所有地区每月(或季度或年或全部)的销售额。 下钻(drill-down):下钻是上钻的逆操作,它是沿着维的层次向下,查看更详细的数据。
  3. 退化维度 退化维度就是将维度退回到事实表中。因为有时维度除了主键没有其他内容,虽然也是合法维度键,但是一般都会退回到事实表中,减少关联次数,提高查询性能
  4. 多层次维度 多数维度包含不止一个自然层次,如日期维度可以从天的层次到周到月到年的层次。所以在有些情况下,在同一维度中存在不同的层次。
  5. 维度表空值属性 推荐采用描述性字符串代替空值
  6. 日历日期维度 在日期维度表中,主键的设置不要使用顺序生成的id来表示,可以使用更有意义的数据表示,比如将年月日合并起来表示,即YYYYMMDD,或者更加详细的精度。

数据抽取

业务数据 -- Sqoop 日志数据 -- Flume 其他数据 -- 通用第三方接口

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL
  • 指标
    • 指标的价值
      • 指标如何做到精准
      • 建模
      • 数据抽取
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档