数据仓库大体框架

而 从ods层开始就要开始记录一些字段来保证数据的一致性

比如有 从哪个库来的等等,

 

个人整理关于数据仓库的一些知识点以备后续查询

ods(贴源层) dw(数据仓库层) dm(数据集市层)

数据仓库(data warehouse)是一个 面向主题的  集成的 相对稳定的 反映历史变化的 数据集合用于支撑管理决策 

面向主题:不同主题对应于不同的业务,如淘宝,买家,卖家

集成:多种表面是一样但表示不同,需要将其中一种作为标准,如 性别 有的用 0 男 1 女,有的 m 男 f女 所以在数据仓库中要选择一种作为标准,此为集成

相对稳定:数据仓库会保存一段时间的数据,一般只有添加,不能删除

反映历史变化:和历史信息相对比

olap(on-line anylsis processing)在线联机分析,一次性处理的数据大


维度建模:事实表是指其中保存了大量业务度量数据的表,一般只放数字或一些标志做统计 销售事实:维ID,收益 数量 支出 毛利

维度表:可以看作是事实表中某个字段的细分,比如时间(年月日) 等用于细分

粒度:数据的详细程度,影响查询 存储

层次:梯度阶级 国家 省 市

建模模型:
    星星模型:事实表被维度表所包围,通过主外关键字类似与外键,且维度表没有被新的表所关联
    雪花模型:维度表又链接着其他的新的表,一般在处理大的且相对静态的层次的时候使用,查询较慢


建模的一般过程:
    1确定每个事实表的粒度:比如按天,按月粒度综合考虑    查询,存储
    2确定维度的属性:即需要哪些字段,过滤字段
    3确定惟独的层次:省 市 县
    4每个事实表所关联那些维度
    5
    6确定缓慢变化维:那些维度的变化,需要保留,

实例:
根据需求关注的主题定义粒度,每个主题相当于一个事实表
根据不同主题在去建模
不同主题需要那些维度,需要对业务的熟悉,日期产品,等等
确定每个事实表数字型事实,每个事实的主键数量
然后构建,根据外键链接,etl填数据
分解需求:


hive udf 

hive官方文档:
map array 
round 四舍五入 
cast (exp as type )强制转类型
from_unixtime(timestamp,format) 将时间戳转换成具体指定的格式
unix_timestamp(时分秒) 转换成时间戳
to_date()日期
year()
date_add()
date_sub()
case a when b  then c
concat 链接字符
get_json_object(string,path) $.k=v  $.k.second.[0]
lpad()截取字符 从左边 rpad()从右边
itrim() 去掉左边的空格
parse_url() 解析url
str_to_map() 
count(distinct )

collect_set() 去重的集合
collect_list() 全部的集合,比如订单编号集合,合并
explode(array) 返回数组里面的值
explode(map) 返回map kv
posexplode(array) 下标和数据

hive存储格式:textfile默认格式,数据不做压缩,磁盘开销大,数据解析开销大,stored as textfile指定

sequenceFile
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值