hive map 转string_hive知识点重点难点总结(2020/11/26/早上)

本文详细介绍了SQL查询的书写顺序及其执行顺序,强调了MySQL优化器的作用。同时,深入探讨了Hive的特点,包括其适用于读多写少的场景、较高的延迟性以及在大数据规模下并行计算的优势。文章还对比了Hive与传统数据库的差异,并重点解析了Hive的数据类型,包括基本数据类型和集合数据类型,以及如何在Hive中使用它们。此外,还介绍了Hive的DDL操作,如创建和删除数据库及表。
摘要由CSDN通过智能技术生成

必读:

1)SQL的书写顺序

SELECT-DISTINCT-FROM-JOIN ON-WHERE-GROUP BY-HAVING-ORDER BY-LIMIT

2)真正执行的顺序:

随着mysql版本的更新换代,其优化器也在不断升级,优化器会分析不同执行顺序产生的性能消耗不同而动态调整执行顺序。下面是经常出现的查询顺序:

FROM-ON-JOIN-WHERE-GROUP BY-HAVING-SELECT-DISTINCT-ORDER BY-LIMIT

3)外连接

外连接确定主从表:左外连(左主右从),右外连(右主左从)

外连接的结果集:主表取所有,从表取搭配。主表与从表未匹配的数据通过null来补全。


Hive总结

1什么是hive?

1.

2.优缺点

-- 

3.架构原理

a7b2fb4a9379b6100a6c7ed19577ed83.png
--1.用户接口:Client

4.hive与数据库的比较

由于hive采用了类似sql的查询语言HQL(Hive query Language),因此很容易将Hive理解为数据库。其实从结构上看,hive和数据库除了类似的查询语言,再无类似之处

--1.查询语言
    hive有类似sql的hql查询语言
--2.数据更新
    1.hive针对数据仓库而设计,适合读多写少的场景
    2.mysql的数据需要经常进行修改
--3.执行延迟
    1.hive没有索引+基于mr计算,延迟性高;
    2.这个低是有条件的,即数据规模小,当数据规模大到超过数据库的处理能力的时候,hive的并行计算
    就能体现出优势
--4.数据规模
    支持大数据规模的数据

5.tez引擎

1.‘mr引擎’:每个任务及任务之间都需要落盘

2.‘Tez引擎’:可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。

d95c46f165b28070a7e94d8768c2bc93.png

一.HiveJDBC客户端基本操作

1.1HiveJDBC的登入与退出

方式一:使用beeline方式
访问方式:beeline -u jdbc:hive2://hadoop102:10000 -n atguigu
退出方式:!quit、!exit、ctrl+c
前提:mysql服务和hiveserver2服务一定要启动

方式二:使用hive的方式:
访问方式:hive
退出方式:quit;exit;

1.2Hive常用的交互命令

“e"不进入hive的交互窗口执行sql语句 “f”执行脚本中sql语句

1.3Hive数据类型

  • 基本数据类型
Hive数据类型Java数据类型长度例子
TINYINTbyte1byte有符号整数20
SMALLINTshort2byte有符号整数20
INTint4byte有符号整数20
BIGINTlong8byte有符号整数20
BOOLEANboolean布尔类型,true或者falseTRUE FALSE
FLOATfloat单精度浮点数3.14159
DOUBLEdouble双精度浮点数3.14159
STRINGstring字符系列。可以指定字符集。可以使用单引号或者双引号'now is the time',"for all good men"
TIMESTAMP时间类型
BINARY字节数组
  • 重点关注:int,string,double,bigint
  • 使用注意事项:在sql中需要指定字段的长度,而在hive中不需要,可以理解为可变参数
  • 数据类型的字节数
byteshortintlongfloatdoublechar
1248482

其中float的取值范围比long还要大

  • 集合数据类型
数据类型描述语法示例
STRUCT和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。struct()例如struct<street:string,city:string>
MAPMAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素map()例如map
ARRAY数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。Array()例如array

创建表的实例:

create 

获取集合中属性的方法:

数组:使用索引的方式:字段名[index]
集合:使用key的值获取:字段名[key的值]
Struct:使用:字段.属性值

二、DDL数据定义

2.1数据库操作

2.1.1显示和查询数据库与表信息

1

2.1.2创建数据库

CREATE 

实例:

create 

2.1.3删除数据库

当数据库不为空时,加上

2.2表的操作

2.2.1建表语法

CREATE 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值