Hive 数仓及数仓设计方案

数仓(Data Warehouse)

数据仓库存在的意义在于对企业的所有数据进行汇总,为企业各个部门提供一个统一、规范的出口。做数仓就是做方案,是用数据治理企业的方案。

数据仓库的特点

  1. 面向主题集成
    • 公司中不同的部门都会去数据仓库中拿数据,把独立从数据仓库中拿数据的单元,称为一个主题。
    • 数据仓库中的数据是从各个分散的数据库中抽取出来的,需要进行完整集合,还要进行数据处理。
  2. 涉及的数据操作主要是查询

数仓的本质

能够完整记录某个对象在一段时期内的变化情况的存储空间。随着时间变化不断增加新的数据内容,不断删去旧的数据内容。

数仓设计方案

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
sql 复制代码
declare 变量名 数据类型 = 初值;
	set 变量 = 值;
	print '常量' || 变量
	
	vim ~/pl_demo.ql
	------------------------------------------------------------
	create function FUNC_NAME(name TYPE,...) returns RETURN_TYPE
	begin
		declare VAR = INIT_VALUE;
		...
		print 'CONSTANTS' || VAR;
	end;
	
	call FUNC_NAME(...);
	------------------------------------------------------------
	
	--案例:自定义函数生成日期维度表
		vim pl_demo.ql
		----------------------------------------------------------------------------------------------------------
		-- 定义存储过程
		create procedure getSumAmount()
        begin
            declare sum_amount decimal(10,2) = 0.0;
            select sum(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
相关推荐
yumgpkpm15 小时前
CMP(类Cloudera CDP 7.3 404版华为Kunpeng)与其他大数据平台对比
大数据·hive·hadoop·elasticsearch·kafka·hbase·cloudera
陈辛chenxin19 小时前
【大数据技术06】大数据技术
大数据·hadoop·分布式·python·信息可视化
yumgpkpm20 小时前
Hadoop在AI时代如何实现生态协同? CMP 7.13(或类 Cloudera CDP7.3 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)
大数据·hadoop·elasticsearch·zookeeper·kafka·hbase·cloudera
piepis1 天前
Doris Docker 完整部署指南
数据仓库·docker·doris·容器部署
qqxhb1 天前
系统架构设计师备考第68天——大数据处理架构
大数据·hadoop·flink·spark·系统架构·lambda·kappa
yumgpkpm2 天前
Hadoop大数据平台在中国AI时代的后续发展趋势研究CMP(类Cloudera CDP 7.3 404版华为鲲鹏Kunpeng)
大数据·hive·hadoop·python·zookeeper·oracle·cloudera
凯子坚持 c2 天前
基于VMware与CentOS 7的Hadoop集群部署全景指南
linux·hadoop·centos
KANGBboy3 天前
ES 总结
hive·elasticsearch
FeelTouch Labs3 天前
数据仓库和数据集市之ODS、CDM、ADS、DWD、DWS
数据仓库
大数据CLUB3 天前
酒店预订数据分析及预测可视化
大数据·hadoop·分布式·数据挖掘·数据分析·spark·mapreduce