27-数据仓库与Apache Hive-2
1.数仓开发语言概述
理论上来说,任何一款编程语言只要具备读写数据、处理数据的能力,都可以用于数仓的开发。比如大家耳熟能详的C、java、Python等;
关键在于编程语言是否易学、好用、功能是否强大。遗憾的是上面所列出的C、Python等编程语言都需要一定的时间进行语法的学习,并且学习语法之后还需要结合分析的业务场景进行编码,跑通业务逻辑。
不管从学习成本还是开发效率来说,上述所说的编程语言都不是十分友好的。
在数据分析领域,不得不提的就是SQL编程语言,应该称之为分析领域主流开发语言。
2. SQL语言介绍
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据。
SQL语言使我们有能力访问数据库,并且SQL是一种ANSI(美国国家标准化组织)的标准计算机语言,
各大数据库厂商在生产数据库软件的时候,几乎都会去支持SQL的语法,以使得
用户在使用软件时更加容易上手,以及在不同厂商软件之间进行切换时更加适应,因为大家的SQL语法都差不多。select列名from 表名where 条件
3.数仓与SQL
大数据数仓领域,很多软件都会去支持SQL语法
1.学习sql成本低
2.sql语言对于数据分析非常友好
4结构化数据
5.二维表结构
6.SQL语法的分类
数据定义语言 DDL数据操纵语言 DMLDDL赋予我们创建或删除表 以及数据库、索引等各种对象 ,不涉及表中的具体操作。create database --创建数据库create table --创建数据表
DML语法针对于数据表的相关操作
select-- 从数据库表中获取数据
update --更新数据库表中的数据
delete --删除数据库表中数据
insert --向数据库表中插入数据
7.Apache Hive 概述
Apache Hive 是一款建立在Hadoop之上的开源数据仓库 系统,可以将存储在Hadoop文件中的结构化 半结构化数据文件映射成一张数据库表,基于表提供一种类似于SQL的查询模型,称为Hive查询语言(HQL )
用户访问和分析存储在Hadoop文件中的大型数据集.
核心是将HQL转换为MapReduce程序,提交到Hadoop集群中执行。
Hive是由Facebook 实现并开源
8. 为什么用Hive
使用hadoop mapreduce直接处理数据面临的问题
人员学习成本高 需要掌握java语言
mapreduce 实现复杂的查询开发难度大
使用hive的好处
操作使用类似于SQL的语法 简单 容易上手
减少开发人员学习成本
支持自定义函数
背靠Hadoop ,擅长存储分析海量数据集
9.Hive和Hadoop关系
从功能上讲: 数据仓库,具备两个能力
存储数据
分析数据
Hive具备上述两个能力
Hive借助Hadoop实现了上述两个能力
Hive利用HDFS存储数据
利用MapReduce查询分析数据
Hive最大的魅力值让用户专注于编写HQL,Hive能帮助我们转化成为MapReduce程序完成对数据的分析
10.模拟Apache Hive 的功能
Hive的理解:
hive能将数据文件映射成一张表吗?这个映射指的是什么?
能
文件和表之间的对应关系
Hive本身到底承担什么职责?
SQL语法解析编译成为MapReduce程序
11.官方架构图
下一步:
分别启动 node1 node2 node3
测试保证我们的hadoop集群是健康可用的!!!
jps 查看 4 3 2
访问两个web页面让其正常显示!!!