hive olap 数据仓库_电商复购分析建模hive+spark使用案例

前言

记得10年前看过本书《数据仓库与数据挖掘》,反正文字很多,也没记得多少,那就是数据库和数据仓库之类的介绍,我们大部分时候比较难接触,然后传统数据仓库还没摸到,好吧大数据时代来了,多了非常多新鲜概念,当然这时候也很多都是各方的技术,也有不少开源的,也给我们学习和应用提供了便利。要是现在这本书应该会非常厚了。 不过还是先抄点废话吧,整体把握下就好

数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。——百度百科

数据集市

是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题,按照多维的方式进行存储,包括定义维度需要计算的指标维度的层次等,生成面向决策分析需求的数据立方体。——wikipedia

数据仓库

是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合用于支持管理决策。其主要功能是将组织透过资讯系统之联机事务处理(OLTP)经年累月所积累的大量资料,透过数据仓库理论所特有的资料存储架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助构建商业智能(BI)。——《Building the data warehouse》W.H.Inmon

数据湖

数据湖是以其自然格式存储的数据的系统或存储库,同行是对象blob或文件。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖可以包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构数据(电子邮件、文档、PDF)和二进制数据(图像、音频、视频)。——wikipedia

数据中台

    “以全域大数据建设为中心,技术上覆盖整个大数据从采集、加工、服务、消费的全链路的各个环节,对内对外提供服务。丰富的大数据生态组件,构成了阿里的核心数据能力,通过大数据生态组件,可以迅速的提升数据应用的迭代能力,人人都有可能成为大数据专家。”——《阿里巴巴全域数据建设》,阿里巴巴数据技术及产品部高级技术专家张磊,2017杭州云栖大会-阿里大数据分论坛

“数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念。”——《数据中台已成下一风口,它会颠覆数据工程师的工作吗?》,ThoughtWorks数据和智能总监史凯

     数据仓库和数据集市

数据集市一般是面向某个主题域,比如营销主题,那么会关联某几个部门,数据集市一般使用维度建模。

 

82fdf6257287c62c92dcab98affafef8.png

数据仓库VS数据湖

数据湖是较为新的概念,也是新技术,架构也在实践中不断演变,数据湖主要是为了适合大数据时代带来的多样和多种类型数据带来的问题,数据湖存储任何形式(包括结构化和非结构化)和任何格式(包括文本、音频、视频和图像)的原始数据。根据定义,数据湖不会接受数据治理,但专家们都认为良好的数据管理对预防数据湖转变为数据沼泽不可或缺。数据湖在数据读取期间创建模式。与数据仓库相比,数据湖缺乏结构性,而且更灵活;它们还提供了更高的敏捷性。值得一提的是,数据湖非常适合使用机器学习和深度学习来执行各种任务,比如数据挖掘和数据分析,以及提取非结构化数据等。

110ee3536b75a67491ae79a964262638.png

                                           数据仓库VS数据中台

636900efc5e39cc1fdf4e578b1358869.png

离线数据仓库hive

hive英文是蜂箱的意思,也是指仓储地方,忙碌的地方,这里比喻的是数据仓库是数据的集中地方,而且很多查询报表都在这里进行,相当繁忙。

2fea73416459983da870af02b8165f5a.png

 hive是基于Hadoop的离线数据仓库,底层是将数据存储在Hadoop的HDFS上,一般Hadoop编程需要进行mapper reduce 将查询语句转为分布式查询,hive就是简化和封装了这一个过程,使得我们应用开发者可以直接使用类似SQL的查询语句,hive做中间转换,然后转给Hadoop,Hadoop将查询结果返回hive。

首先我们了解下数据仓库,数据仓库与数据库不同的是不满足第三范式,也就是有很多冗余,因为是为了数据挖掘做的。数据挖掘可以很好地直接调取里面的宽表,也很容易在上面进行多维分析,探索分析等。
数据仓库里主要分为事实表和维度表,事实表比如一个销售数据,一个订单数据,维度表就是看问题的角度,就像用户窗口,比如你可以关注用户维度,也可以看地区,也可以关注产品或是时间维度。
hive是基于大数据Hadoop平台的,所以类似很多大数据平台特点,不善于update,主要是查询,也符合数据仓库的特点。所以它主要为数据仓库的管理提供了许多功能:数据 ETL (抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。

Hive 体系结构

hive是Hadoop大家庭的一员,架构主要由以下组成

60bd8190da702a01b98dd31e571f4b43.png

用户接口,包括 CLI, JDBC/ODBC, WebUI
元数据存储,通常是存储在关系数据库如 MySQL, Derby 中
另外核心驱动引擎有四个组成
解释器:主要将hiveSQL转为抽象语法树(AST)
编译器:将语法树转为逻辑执行计划(类似oracle等数据库执行计划)
优化器:主要优化逻辑执行计划
执行器:执行器就是最终执行者,调用底层框架执行执行计划。
Hadoop, 用 HDFS 进行存储,利用 MapReduce 进行计算
所以学习前最好先学Hadoop HDFS 至少搭建好Hadoop集群并熟悉基本操作,然后还有基本了解Java可以看一些报错和一般的MapReduce程序。

hive应用场景

因为是基于Hadoop分布式文件系统,所以和数据库基于本地文件不同,
数据库主要是为了实时业务查询,而 Hive 则是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致 Hive 的应用场景和关系数据库有很大的不同;而且hive有很好的扩展存储和计算能力。
Hive 并不提供实时的查询和基于行级的数据更新操作;
hive主要是在大规模批处理等场景,比如:网络日志分析,系统日志分析等。
还有海量结构化数据离线分析、多维分析等。

Hive 的数据存储

由于是在Hadoop文件系统上,hive没有特殊的数据格式也无法建立索引,但是可以方便的读取文本文件,通过分隔符解析数据,比如csv文件可以直接导入

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值