| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> hive从入门到实战No.1 -> 正文阅读 |
|
[大数据]hive从入门到实战No.1 |
Hive架构设计原理一. Hive基本使用????????直接输入hive回车,进入hive cli ????????常用命令使用 ? ? ? ? ? ? ? ? 查看数据库:show databases; ? ? ? ? ? ? ? ? 创建数据库:create database tianliangedu; ? ? ? ? ? ? ? ? 选择数据库:use tianliangedu; ? ? ? ? ? ? ? ? 查看某个数据库下的所有表:show tables; ? ? ? ? ? ? ? ? 创建表:create table userinfo(id int,username string); ? ? ? ? ? ? ? ? 向表中插入数据:insert into userinfor values(1,'sss') ? ? ? ? ? ? ? ? 查询数据表中的数据:select * from... ? ? ? ? ? ? ? ? 删除一个表: drop table 表名称 ? ? ? ? ? ? ? ? 上述使用方法与mysql类似 ? ? ? ? ? ? ? ? 删除hive cli 会话:老版本:exit,新版本:!exit ? ? ? ? 使用总结:简单,面向数据和业务编程 二.Hive架构设计???????? ? 特别说明:hive2.2以后版本变化较大,去掉了HWI模块,HiveCLI模式也直接采用了beeline链接。 三. Hive运行流程详解Hive基础概念 ? ? ? ? 1.Hive数据模型 ? ? ? ? ? 2.数据类型 ????????? ?数值型
日期类型
字符串
?布尔类型
字节数组
?复杂(集合)数据类型
3.Hive数据文件格式和压缩格式 ????????
文件格式按面向的存储形式不同,分为面向行和面向列两大类文件格式。
压缩格式按其可切分独立性,分成可切分和不可切分两种。
?4.数据操作分类
?四.HiveSQL? ? ? ? 1.DDL ? ? ? ? ? ? ? ? external: 创建内部表还是外部表,此为内外表的唯一区分关键字。
? ? ? ?
show create table或者desc tablename/desc formatted tablename
?
?
视图:本身不存储实际数据,只存储表关系,使用时再去通过关系查找数据。 查看所有视图:show views;
? ? ? ? ? ?2.DML (1)加载数据脚本 ????????LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION ????????(partcol1=val1, partcol2=val2 ...)] ? (2)加载本地数据文件 创建一个文本文件存储的表,并以"\t"作为分隔符,方便构造和上传数据 ?CREATE??TABLE student( id string comment '学号', ?username string comment '姓名', classid int comment '班级id', classname string comment '班级名称' ) comment '学生信息主表' partitioned by (come_date string comment '按入学年份分区') ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'?? STORED AS ?textfile; 将本地数据文件加载到表中? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LOAD DATA local INPATH './student.txt' OVERWRITE INTO TABLE student PARTITION (come_date=20170903); 通过SELECT查看表中是否加载了数据 ?(3) 加载HDFS数据文件 将之前的本地文件上传至自己的hdfs目录中 hdfs dfs -copyFromLocal student.txt /tmp/tianliangedu/input_student_info/ 加载HDFS数据文件的脚本 LOAD DATA INPATH '/tmp/tianliangedu/input_student_info/student.txt' OVERWRITE INTO TABLE student PARTITION (come_date=20170904); 通过SELECT查看表中是否加载了数据 SELECT * FROM STUDENT; (4)将查询结果插入到数据表中 脚本模板 INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement
insert overwrite table student partition(come_date='20170904') select id,username,classid,classname from student where come_date='20170903'; 通过SELECT查看表中是否插入了数据 (5)多插入模式(一次查询多次插入)
FROM from_statement INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol=val)] select_statement1?? [INSERT OVERWRITE TABLE tablename2 [PARTITION ...] select_statement2 ...
from student insert overwrite table student partition(come_date='20170905') select id,username,classid,classname where come_date='20170904' insert overwrite table student partition(come_date='20170906') select id,username,classid,classname where come_date='20170904' insert overwrite table student partition(come_date='20170907') select id,username,classid,classname where come_date='20170904' ? 面向分析和面向事务的处理 ? ? ? ? 面向分析要准,但不要快 ? ? ? ? 面向事务要快 DAG ? ? ? ? Directed Acycle Graph,有向无环图 Yarn-tez 模式 ? ? ? ? 为什么抛弃掉mr? ? ? ? ? ? ? ? ? 因为mr一个是计算效率太慢,一个是启动时间太慢 ? ? ? ? 为什么选择了tez ? ? ? ? ? ? ? ? 第一是优化了计算效率,DAG效率优化 ? ? ? ? ? ? ? ? 第二是优化了应用的启动响应时间 ? ? ? ? ? ? ? ? ? ? ? ? 使用代理机制优化 ? ? ? ? 编程抽象的等级划分 ? ? ? ? ? ? ? ? 面向二进制机器码编程 ? ? ? ? ? ? ? ? 面向机器指令编程-汇编 ? ? ? ? ? ? ? ? 面向过程-C语言 ? ? ? ? ? ? ? ? 面向对象-Java语言 ? ? ? ? ? ? ? ? 面向函数-函数式编程-js、scala、r语言 ? ? ? ? ? ? ? ? 面向数据编程-SQL ? ? ? ? ? ? ? ? 面向自然语言编程-说人话就可以实现编程 ? ? ? ? 嵌入式数据库 ? ? ? ? ? ? ? ? 随着具体的代码应用而伴随运行的组件,即称为嵌入式组件 ? ? ? ? ? ? ? ? 其中嵌入式数据库是最典型的应用之一 ? ? ? ? ? ? ? ? ? ? ? ? Derby ? ? ? ? ? ? ? ? ? ? ? ? Sqllite ? ? ? ? ? ? ? ? ? ? ? ? Berkerly db ? ? ? ? Varchar和char对比 ? ? ? ? ? ? ? ? 相同点 ? ? ? ? ? ? ? ? ? ? ? ? 多是存储数据的类型 ? ? ? ? ? ? ? ? 差异点 ? ? ? ? ? ? ? ? ? ? ? ? Varchar是变长 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 节省存储空间,不利于计算 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 用时间换空间 ? ? ? ? ? ? ? ? ? ? ? ? Char是定长 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 浪费了存储空间,节省了计算时间 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 用空间换时间 ? ? ? ? 请介绍一下hive的内外表 ? ? ? ? ? ? ? ? 概念说明 ? ? ? ? ? ? ? ? ? ? ? ? hive将表的分类共2类,即内外表 ? ? ? ? ? ? ? ? ? ? ? ? 以元数据和实体数据的操作权限作为分类依据 ? ? ? ? ? ? ? ? 特点特征 ? ? ? ? ? ? ? ? ? ? ? ? 内表:元数据和实体数据全归hive管理,一删全删 ? ? ? ? ? ? ? ? ? ? ? ? 外表:元数据归hive管理,实体数据不归hive管理,而是归hdfs,删表的话,只会删除? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Hive元数据,不会改变实体数据 ? ? ? ? ? ? ? ? 应用场景 ? ? ? ? ? ? ? ? ? ? ? ? 数据表生成时,如果时hive内部自生成的,而是外部导入,则设置外表 ? ? ? ? ? ? ? ? 代码实现 ? ? ? ? ? ? ? ? ? ? ? ? Create [external] table...... ? ? ? ? 请介绍一下hive当中的试图view ? ? ? ? ? ? ? ? 概念说明 ? ? ? ? ? ? ? ? ? ? ? ? hive当中对数据表数据即关系的一种抽象,称为视图. ? ? ? ? ? ? ? ? 特点特征 ? ? ? ? ? ? ? ? ? ? ? ? 虚表,只存关系,不存实际的数据.但是通过他可以查询出来对应的数据 ? ? ? ? ? ? ? ? 应用场景 ? ? ? ? ? ? ? ? ? ? ? ? 解耦 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 解真实用户和各个不同关系的藕 ? ? ? ? ? ? ? ? ? ? ? ? ????????将复杂的表关系抽象出来,形成一个虚表,相当于将表关系进一步抽象 ? ? ? ? ? ? ? ? ? ? ? ? ????????当这个复杂表关系需要反复利用时,应该使用视图 ????????????????代码实现 ? ? ? ? ? ? ? ? ? ? ? ? Create view ......? ? ? ? ? ? ? ? 请介绍一下hive的表区分作用 ? ? ? ? ? ? ? ? 概念介绍 ? ? ? ? ? ? ? ? ? ? ? ? 表结构当中为了提升查询效率而设计的一个水平切分数据的虚字段,成为分区 ? ? ? ? ? ? ? ? 特点特征 ? ? ? ? ? ? ? ? ? ? ? ? 虚字段的设计,并不占用表结构对应的实体数据 ? ? ? ? ? ? ? ? ? ? ? ? 其每个分区值对应的hive表当中hdfs存储的一个物理目录 ? ? ? ? ? ? ? ? 应用场景 ? ? ? ? ? ? ? ? ? ? ? ? 数据量较大、且具备明显的水平可切分字段,均可使用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 比如日期、位置、国家等区域性 明显的可枚举的顿号品牌名称等可枚举字段 ? ? ? ? ? ? ? ? 代码实现 ? ? ? ? ? ? ? ? ? ? ? ? Create table ......partitioned by col comment '' ...... ? ? ? ? 数据上报 \? ? ? ? ? ? ? ? 各平台型公司或是公司自有线上平台,会将访问或是用户在该平台上的各项用户行业通过web前端收集数据,并发送数据到后台的数据收集方,完成平台用户的收集任务.此过程统称为数据上报. ???????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:53:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |