数仓基础与hive入门

1、数仓

数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。

数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持

  • 数据仓库本身并不“生产”任何数据,也不需要“消费”任何的数据
  • 数仓为了分析数据而来
  • 业务数据存储在联机事务处理系统(OLTP)中,前台接收数据后,快速给出处理结果
    关系型数据库(RDBMS)是OLTP典型应用,比如:Oracle、MySQL、SQL Server等。
  • ,数仓是一个用于存储、分析、报告的数据系统,目的是构建面向分析的集成化数据环境。我们把这种面向分析、支持分析的系统称之为OLAP(联机分析处理)系统
    在这里插入图片描述

数仓主要特征:面向主题、集成性、非易失性、时变性

数据仓库主流开发语言–SQL

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据

SQL应用广泛原因:学习成本低,对数据分析友好

结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据
非结构化数据,包括所有格式的办公文档、XML、HTML、各类报表、图片和音频、视频信息等。

SQL主要语法分为两个部分:数据定义语言 (DDL)和数据操纵语言 (DML) 。

  • DDL语法使我们有能力创建或删除表,以及数据库、索引等各种对象,但是不涉及表中具体数据操作:
    CREATE DATABASE - 创建新数据库
    CREATE TABLE - 创建新表
  • DML语法是我们有能力针对表中的数据进行插入、更新、删除、查询操作:
    SELECT - 从数据库表中获取数据
    UPDATE - 更新数据库表中的数据
    DELETE - 从数据库表中删除数据
    INSERT - 向数据库表中插入数据

2、Apache Hive入门

2.1 hive定义

Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。

Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行

2.2 为什么使用Hive

使用Hadoop MapReduce直接处理数据所面临的问题:

  • 人员学习成本太高 需要掌握java语言
  • MapReduce实现复杂查询逻辑开发难度太大

使用Hive处理数据的好处:

  • 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
  • 避免直接写MapReduce,减少开发人员的学习成本
  • 支持自定义函数,功能扩展很方便
  • 背靠Hadoop,擅长存储分析海量数据集

2.3 Hive和Hadoop关系

从功能来说,数据仓库软件,至少需要具备下述两种能力:
存储数据的能力、分析数据的能力

Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不是自己实现了上述两种能力,而是借助Hadoop。
Hive利用HDFS存储数据,利用MapReduce查询分析数据。

这样突然发现Hive没啥用,不过是套壳Hadoop罢了。其实不然,Hive的最大的魅力在于用户专注于编写HQLHive帮您转换成为MapReduce程序完成对数据的分析

hive可以理解为sql on hadoop

2.4 场景设计:如何模拟实现Hive功能

Hive能将数据文件映射成为一张表,这个映射是指什么?
文件和表之间的对应关系

Hive软件本身到底承担了什么功能职责?
SQL语法解析编译成MapReduce

在hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清楚。

映射信息专业的叫法称之为元数据信息(元数据是指用来描述数据的数据 metadata)。

元数据信息应该包括:

  • 表对应着哪个文件(位置信息)
  • 表的列对应着文件哪一个字段(顺序信息)
  • 文件字段之间的分隔符是什么

用户写完sql之后,hive需要针对sql进行语法校验,并且根据记录的元数据信息解读sql背后的含义,制定执行计划
并且把执行计划转换成MapReduce程序来具体执行,把执行的结果封装返回给用户。
基于上面分析,hive架构图应该如下:
在这里插入图片描述

2.5 Apache Hive架构、组件

在这里插入图片描述
Hive组件:

  • 用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值