Hive 数仓及数仓设计方案

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 数仓整合企业数据,提供统一出口,用于数据治理。其特点包括面向主题集成和主要支持查询操作。数仓设计涉及需求分析(如咨询老板、运营人员和行业专家)、确定主题指标(如电商的转化率)、数据标准设定、规模与成本计算、技术选型(如Hadoop生态组件)以及数据采集和操作。设计流程涵盖从理解需求到实施SQL函数和存储过程的全过程。

数仓(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_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
相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
2月前
|
SQL 数据库 HIVE
hive数仓 ods层增量数据导入
根据业务需求,当表数据量超过10万条时采用增量数据导入,否则全量导入。增量导入基于`create_date`和`modify_date`字段进行,并确保时间字段已建立索引以提升查询效率。避免在索引字段上执行函数操作。创建增量表和全量表,并按日期进行分区。首次导入全量数据,后续每日新增或变更数据保存在增量表中,通过全量表与增量表的合并保持数据一致性。
89 13
|
4月前
|
SQL 关系型数据库 MySQL
如何在Dataphin中构建Flink+Paimon流式湖仓方案
当前大数据处理工业界非常重要的一个大趋势是一体化,尤其是湖仓一体架构。与过去分散的数据仓库和数据湖不同,湖仓一体架构通过将数据存储和处理融为一体,不仅提升了数据访问速度和处理效率,还简化了数据管理流程,降低了资源成本。企业可以更轻松地实现数据治理和分析,从而快速决策。paimon是国内开源的,也是最年轻的成员。 本文主要演示如何在 Dataphin 产品中构建 Flink+Paimon 的流式湖仓方案。
7764 10
如何在Dataphin中构建Flink+Paimon流式湖仓方案
|
6月前
|
存储 消息中间件 运维
友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案
本文主要分享友盟+ U-App 整体的技术架构,以及在实时和离线计算上面的优化方案。
625 2
友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案
|
SQL 分布式计算 API
轻松驾驭Hive数仓,数据分析从未如此简单!
轻松驾驭Hive数仓,数据分析从未如此简单!
239 1
|
6月前
|
SQL 存储 Apache
Paimon 实践 | 基于 Flink SQL 和 Paimon 构建流式湖仓新方案
Paimon 实践 | 基于 Flink SQL 和 Paimon 构建流式湖仓新方案
1837 59
|
6月前
|
SQL 存储 Apache
基于 Flink SQL 和 Paimon 构建流式湖仓新方案
阿里云智能开源表存储负责人,Founder of Paimon,Flink PMC 成员李劲松在云栖大会开源大数据专场的分享。
1029 0
基于 Flink SQL 和 Paimon 构建流式湖仓新方案
|
6月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
529 0
|
存储 SQL 数据挖掘
Paimon+StarRocks 湖仓一体数据分析方案
Paimon+StarRocks 湖仓一体数据分析方案
798 0
|
SQL 分布式计算 Java
如何在 hive udf 中访问配置数据-踩坑记录,方案汇总与对比-udf中可以写sql吗?
如何在 hive udf 中访问配置数据-踩坑记录,方案汇总与对比-udf中可以写sql吗?
|
1月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。