千家信息网

hive需要掌握哪些基础知识

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要为大家展示了"hive需要掌握哪些基础知识",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"hive需要掌握哪些基础知识"这篇文章吧。关于Hive
千家信息网最后更新 2025年02月02日hive需要掌握哪些基础知识

这篇文章主要为大家展示了"hive需要掌握哪些基础知识",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"hive需要掌握哪些基础知识"这篇文章吧。

关于Hive

Hive作为数据仓库,起源于Facebook,工作原理大致可以解释为:对用户输入的hql进行解释,编译,优化并生成查询计划,并转化为MapReduce任务进而执行:解释器--编译器--优化器--执行器;

Hive的元数据一般存储在关系型数据库中,如MySql;

底层存储用到的是HDFS分布式存储系统;

优点:1. 简单易上手:提供了类SQL查询语言HQL;2.可扩展:为超大数据集设计了计算/扩展能力(MR作为计算引擎,HDFS作为存储系统);3. 提供统一的元数据管理;4. Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数:继承hive的UDF类,重写evaluate方法;5. 容错:良好的容错性,节点出现问题SQL仍可完成执行;

缺点:1. hive的HQL表达能力有限;2. 效率比较低,自动生成的mapreduce作业,通常情况下不够智能化,且调优比较困难;

Hive与传统数据库的异同

Hive数据类型

Hive用户接口

1)Hive CLI(Hive CommandLine,Hive命令行),客户端可以直接在命令行模式下进行操作

2)hwi(Hive WebInterface,Hive Web接口),Hive提供了更直观的Web界面

3)hiveserver,Hive提供了Thrift服务,Thrift客户端目前支持C++/Java/PHP/Python/Ruby

Hive常用文件格式

Textfile:默认格式,数据不做压缩,磁盘开销大,数据解析开销大;

SEQUENCEFILE:SequenceFile是Hadoop API提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点;

rcfile:RCFILE是一种行列存储相结合的存储方式。首先,其将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取;

parquet:Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架;

Hive数据导入导出

从本地数据导入:load data local inpath '/home/hadoop/test.txt' overwrite into table test01partition(state='good', city='xiamen');

从其他表导入数据:from test01 insert overwrite table test02 partition(state='good', city='xiamen') select id,name,age,course,body,address;

导出数据到本地文件系统:insert overwrite localdirectory '/home/hns/test' select * from test01;

导出数据到HDFS中:insertoverwrite directory '/home/hns/test' select * from test01;

导出到hive的另一张表:insertinto table test02 partition (age='25') select id, name, tel from test01;

Hive基本语句

建表:
CTRAT TABLE IF NOT EXISTS page_view(viewTime INT,userid BIGINT)

ROWFORMAT DELIMITED FIELDS TERMINATED BY ',' //指定了列分隔符为,
LINE TERMINATED BY '\n' //指定了行分隔符为换行符\n

PARTITIONEDBY (country STRING, state STRING) //用这两个字段分区
STORED AS TEXTFILE //指定存储文件的格式

删表:

DROPTABLE IF EXISTS page_view;

修改列信息:

ALTERTABLE page_view ADD COLUMNS ( appname STRING COMMENT 'Application name',sessionid LONG COMMENT ' The current session id');

查询:

select* from tablename;(全表查询,生产环境不建议使用,慢且占用资源,仅用作范例)

可添加limit关键字限制查询条数,或where语句筛选查询范围

where… like …:可进行模糊查询,如:

SELECT* from test.scBUS where scBUS.country like concat('%','a1','%')

HAVING子句:允许用户通过一个简单的语法完成原本需要通过子查询才能对GROUP BY语句产 生的分组进行条件过滤的任务,如:

selectsno,sname,stall from student where sage=6 and sex='男' group by sno havingstall>167;

join语句:

Hive支持通常的SQL JOIN语句,但是只支持等值连接:

selectdistinct a.sname from student a left join sc b on (a.sno=b.sno);

关于内连接、外连接和半连接:

几种连接区别简单概括为:内连接只显示了俩张表都存在的数据,而外连接则是显示出所有的数据,其中左连接是左外边的表输出完整数据。右外连接是右边的表输出完整数据,全外连接就是两张表的所有行全部输出。做半连接用来补充hive相对于mysql等语句缺失的in/exists这样的子句,就用left semi join代替,和left join的区别在于右边的表数据不会加载进结果;

Orderby 和sortby:ORDER BY会对查询结果集执行一个全局排序,所有的数据都通过一个reducer进行处理;SORT BY,其只会在每个reducer中对数据进行排序,也就是执行一个局部排序过程,生产中可以和DISTRIBUTE BY一起用,实现分区并排序。

以上是"hive需要掌握哪些基础知识"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 存储 查询 语句 用户 支持 知识 文件 格式 排序 基础 基础知识 内容 篇文章 系统 解释 输出 任务 函数 分隔符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全的手抄报画多字少 软件开发采购协议范本 数据库加端口后要重启吗 学校网络安全部署总结 路由器提示dns服务器未响应 数据库更新索引 数据库国内外新技术区别 反传销和网络安全班会活动 软考 数据库系统工程师 天津文件服务器安全狗 实施思科ios网络安全pt 农行软件开发中心现任总经理 r星服务器不可用啥意思 感觉软件开发要学的东西太多了 利用数据库修改网站关键词 出差软件开发好不好 网络安全治理总结结束语 河南乐讯网络技术有限公司 常州软件开发工资水平 java显示文件服务器下的图片 数据库中课程的数据类型该用什么 生存曲线分析哪个数据库靠谱 上海基站软件开发部华为 中控考勤机怎样建2个数据库 网络安全屏保关闭不了 郑州梦淘网络技术有限公司 现在网络安全形势 搞软件开发的自己开工作室 通信工程可以做软件开发吗 仙侠游戏服务器修改级数
0