<>一 hive三种部署方式
<>1.嵌入模式,元数据存在本地deby,只能创建一个连接 <>2.单用户模式,存到mysql,mysql和hive运行在同一个机器上 <>
3.远程服务器模式,mysql和hive运行在不同机器上,适用于生产模式
<>二 hive当中所支持的数据类型

<>1.基本类型

tinyint/smallint/int/bigint:整数类型
float/double:浮点数类型

<>2.复杂类型

Array 我们也要给数组元素指定类型
Map 和java的map集合是一个道理,map可以和array一起使用的。
Struct 可以包含不同数据类型的元素,和数组的不同是它可以不同的数据类型

<>3.时间类型

Date类型 日期 YYYY-MM-DD
Timestamp类型 存储的时间是一个偏移量,和mysql一样。long类型

<>三 创建表

<>1.创建表的三种方式
<>直接建表法 只创建表结构,之后加载数据。 <>查询建表法 CREATE TABLE tbl2 as SELECT … 有表结构也有数据。 <>
like建表法 CREATE TABLE tbl3 like tbl4 只有表结构没有数据。
<>四 hive表分类

<>1.内部表

删除内部表,删除表元数据和数据
hive> create table fz > (id int,name string,age int,tel string) > ROW FORMAT
DELIMITED> FIELDS TERMINATED BY ',' > STORED AS TEXTFILE;
<>2.外部表

删除外部表,删除元数据,不删除数据
hive> create external table fz_external_table(id int,name string,age int,tel
string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY ',' > STORED AS TEXTFILE >
location'/user/hive/external/fz_external_table';
两个关键点:external关键字和location,location可以不加,不加的话就是默认位置

<>3.分区表

hive分区,举个栗子,加入按天分区,每天产生的日志存储在对应每一天的目录里面。
也可以按照业务类型分区,加入我们按性别分区,
记住: 分区字段不能在表的列名里面。

<>4.桶表

对数据进行hash取值,我们可以对学生名字进行hash运算分组,然后存到对应的桶里。
create table xxxx clustered by (对应的字段) into N buckets;
到N个桶里。

<>5.视图

它是一个虚表
操作视图和操作表的方式是完全一样的。
视图建立在已经有的表的基础上。
create view XXX as select …
视图最大的优点是简化查询。
视图是不存数据的,它的数据来源于依赖表。

<>五 数据导入

<>1.load

load data local inpath 路径 into table XX;
local指的是我们操作系统的文件。这里我们要注意表的分隔符和文件的分隔符是否一致。
这个路径也可以是目录,可以覆盖原来的数据。
xx/ 如果要覆盖 overwrite into table XX;
如果将HDFS文件导入到HIVE中。
所以我们不用写local
load data inpath 路径 into table XX;
如果我们导入分区,我们先建好分区表,
load data local inpath 路径 into table 表 parition (列名 = ‘X’);

<>2.sqoop

apache开源框架,批量数据的导入和导出

<>六 函数

函数大全 <https://www.jianshu.com/p/29e43fb6e95f>

<>1.内置函数
<>1.1数学函数:round ceil floor 和java一样。 <>1.2字符函数
length 长度 包含空格。
trim 去掉前后空格
<>1.3收集函数
size(map<1,‘tom’,2,‘mary’>)
<>1.4转换函数
转换数据类型
<>1.5日期函数
to_date 返回一个字符串日期的部分,不包含时间
<>1.6条件函数
case when
<>1.7聚合函数
count,sum

<>2.自定义函数

创建java类继承udf,然后重载evaluate,注意要用hadoop认识的类型,string转成text
把程序打包到目标机器上
进入hive客户端添加jar包
在hive客户端创建临时函数。

<>七 表连接

表连接也是转换成mapreduce
等值连接
不等值连接
外连接(左连接,右外链接)
自连接
通过表的别名,将一张表改造成多张。

<>八 操作hive

<>1.jdbc操作hive

获取连接
创建HQL环境
执行HQL
处理结果
释放资源

在工程先加上jar文件。然后和mysql jdbc一样的。

<>2.thirft操作hive

<>3.hue操作hive

基于soclet,连接服务器,基本不使用。

<>九 其它

<>1.fetch task

开启这个之后,简单查询,没有函数,没有排序,就不会创建mapreduce。配置方式可以随便搜一下。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信