当前位置: 首页 > news >正文

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
declare 变量名 数据类型 = 初值;set 变量 =;print '常量' || 变量vim ~/pl_demo.ql------------------------------------------------------------create function FUNC_NAME(name TYPE,...) returns RETURN_TYPEbegindeclare VAR = INIT_VALUE;...print 'CONSTANTS' || VAR;end;call FUNC_NAME(...);--------------------------------------------------------------案例:自定义函数生成日期维度表vim pl_demo.ql------------------------------------------------------------------------------------------------------------ 定义存储过程create procedure getSumAmount()begindeclare 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
http://www.lryc.cn/news/285784.html

相关文章:

  • Ubuntu使用docker-compose安装redis
  • 大数据安全 | 期末复习(上)| 补档
  • Kylin 安装novnc 远程访问
  • 神经网络算法与逻辑回归:优势与差异
  • 【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市
  • C#,入门教程(30)——扎好程序的笼子,错误处理 try catch
  • 操作教程|JumpServer堡垒机结合Ansible进行批量系统初始化
  • 序列化VS反序列化
  • 新数智空间:阿里云边缘云持续保持中国公有云市场第一
  • 【开源】基于JAVA语言的陕西非物质文化遗产网站
  • C++(Qt)软件调试---静态分析工具clang-tidy(18)
  • 2401llvm,clang的重构引擎
  • 【C语言深度剖析——第四节(关键字4)】《C语言深度解剖》+蛋哥分析+个人理解
  • 鸿蒙开发系列教程(五)--ArkTS语言:组件开发
  • Java:正则表达式讲解加举例,简洁易懂
  • 2.机器学习-K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解
  • ​WordPress顶部管理工具栏怎么添加一二级自定义菜单?
  • Linux安装ossutil工具且在Jenkins中执行shell脚本下载文件
  • Docker命令---搜索镜像
  • docker使用http_proxy配置代理
  • 综述:自动驾驶中的 4D 毫米波雷达
  • 蓝桥杯:1.特殊日期(Java)
  • 服务异步通讯之 SpringAMQP【微服务】
  • LED闪烁
  • php array_diff 比较两个数组bug避坑 深入了解
  • c++中STL的vector简单实现
  • C# 更改Bitmap图像色彩模式
  • 5.2 基于深度学习和先验状态的实时指纹室内定位
  • AIGC时代高效阅读论文实操
  • 对网站进行打点(不要有主动扫描行为)