数仓(Data Warehouse)
数据仓库存在的意义在于对企业的所有数据进行
汇总
,为企业各个部门提供一个
统一、规范的出口
。做数仓就是做
方案
,是
用数据治理企业
的方案。
数据仓库的特点
- 面向主题集成 - 公司中不同的部门都会去数据仓库中拿数据,把独立从数据仓库中拿数据的单元,称为一个主题。- 数据仓库中的数据是从各个分散的数据库中抽取出来的,需要进行完整集合,还要进行数据处理。
- 涉及的数据操作主要是查询
数仓的本质
能够完整记录某个对象在一段时期内的变化情况的存储空间。随着时间变化不断增加新的数据内容,不断删去旧的数据内容。
数仓设计方案
1. 需求分析
- 找谁了解需求? - 老板:大方向- 运营人员:具体,多问几个运营人员- 行业标准规范,行业运营(搜索能力)- 行业专家
2. 确定主题指标体系
典型领域指标
- 电商:转化
- 新闻:浏览
- 社交媒体:活跃度
- 多媒体:转化、活跃
数据挖掘、人工智能
- 确定历史事实数据间的因果关系
- 筛选出不必要的重复指标
命题:主题
事实数据
- Who + When + Where + How + What
- 谁 何时 何地 方式 做了什么
电商示例
- 传统订单: - Who + When + Where-
order_id, user_id, purchase_time, store_id
- 订单详情: -
order_detail_id, order_id, product_id, purchase_count, price
- 订单支付: -
pay_id, pay_type, pay_account, pay_time
- 大数据订单(着重对HOW扩展): - How: - 搜索直接来源 - 关键词搜索- 分类检索- 主页推荐- 外链引流- 分析商品搜索过程: - 在哪些商品处停留?- 有哪些同样感兴趣的商品?- 什么时候就开始关注这个商品?- 是否存在其他行为(收藏、加入购物车、下单、购买)?- 处理其他行为: - 定时提醒"XXX商品已被您收藏30天但还没有购买…"
3. 确定数据标准
- 原始数据:行为数据(因) RDMBS(果)
- 基于原始数据预聚合数据
4. 数仓设计
数据规模,成本核算
数据埋点获得埋点数据
- 前端埋点:类似于视频浏览过程数据,只能通过前端埋点
- 后端埋点:类似于支付,后端才是直接和第三方支付接口交互的。
- 能用后端埋点就用后端埋点,前端埋点是不得已采用
埋点数据格式与容量
- 公共数据格式
- 事件数据
服务器集群配置
- 买/租
技术选型与服务器环境搭建
- hdfs
- yarn
- hive
- hbase
- zk
- spark
5. 数据采集
- 行为日志 -> flume -> hdfs
- RDBMS -> sqoop -> hbase
6. 操作数仓
- plsql
declare 变量名 数据类型 = 初值;set 变量 = 值;print'常量'|| 变量
vim ~/pl_demo.ql
------------------------------------------------------------createfunction FUNC_NAME(name TYPE,...)returns RETURN_TYPE
begindeclare VAR = INIT_VALUE;...print'CONSTANTS'|| VAR;end;call FUNC_NAME(...);--------------------------------------------------------------案例:自定义函数生成日期维度表
vim pl_demo.ql
------------------------------------------------------------------------------------------------------------ 定义存储过程createprocedure getSumAmount()begindeclare sum_amount decimal(10,2)=0.0;selectsum(order_amount)into sum_amount from yb12211_2.hive_internal_par_cluster_regex_test1w;print'sum of order amount : '|| sum_amount;end;-- 调用存储过程call getSumAmount();----------------------------------------------------------------------------------------------------------
执行plsql文件
hplsql -f FILE_PATH
- hive -e “SHOW DATABASES”
- hive -f QL_FILE_PATH
本文转载自: https://blog.csdn.net/m0_74120525/article/details/135741452
版权归原作者 Byyyi耀 所有, 如有侵权,请联系我们删除。
版权归原作者 Byyyi耀 所有, 如有侵权,请联系我们删除。