Hive基本操作(持续更新ing)

猿人菌 2021-01-22 18:01:44
hive 操作 基本 更新 持续


本篇博客,小菌分享的是关于Hive的基本操作!

数据库的基本操作

创建数据库

 create database [ if not exists ] myhive ;

说明:hive的表存放位置模式是由hive-site.xml当中的一个属性指定的 <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value>

创建数据库并指定hdfs的存储位置:

create database myhive2 location '/myhive2';

删除数据库

drop database myhive2;

使用该命令删除只能删除空数据库,如果数据库下面有数据表,那么就会报错!

强制删除数据库

drop database myhive cascade;

包含数据库下面的表一起删除; 不要执行,危险动作

查看数据库

show databases;

查看详细信息

# 查看数据库基本信息
desc database myhive2;
# 查看数据库更多详细信息
desc database extended myhive2;

数据库切换

use myhive(数据库名);

修改数据库

数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置,但我们可以使用alter database 命令来修改数据库的一些属性。

# 修改数据库的创建日期
alter database myhive2 set dbproperties('createtime'='20880611');

Hive建表时候的字段类型

数据表的基本操作

创建基本数据表(内部表):

create table tableName(字段名称 字段类型,字段名称 字段类型) ROW FORMAT DELIMITED IELDS TERMINATED BY char(char分隔符) 指定数据中字段与字段的分隔符 ‘\t’ 或 ‘,’ 或 ‘|’ 或其他

创建外部数据表:

create EXTERNAL table tableName(字段名称 字段类型,字段名称 字段类型) 建外部表需要指定数据的存储路径。通过LOCATION进行指定。

从本地文件系统向表中加载数据 load data local inpath ‘文件路径’ into table 表名;

加载数据并覆盖已有数据 load data local inpath ‘文件路径’ overwrite into table 表名;

从HDFS文件系统向表中加载数据 load data inpath ‘/hivedatas/techer.csv’ into table techer;

内部表与外部表的区别: 在删除内部表时:内部表删除将表的元数据和数据同时删除。 在删除外部表时:外部表的元数据被删除,数据本身不删除。

创建分区表:

企业常见的分区规则:按天进行分区(一天一个分区)

创建分区表语法 create table score(s_id string,c_id string, s_score int) partitioned by (month string) row format delimited fields terminated by ‘\t’;

创建一个表带多个分区 create table score2 (s_id string,c_id string, s_score int) partitioned by (year string,month string,day string) row format delimited fields terminated by ‘\t’;

加载数据到分区表中 load data local inpath ‘/export/servers/hivedatas/score.csv’ into table score partition (month=‘201806’);

加载数据到一个多分区的表中去 load data local inpath ‘/export/servers/hivedatas/score.csv’ into table score2 partition(year=‘2018’,month=‘06’,day=‘01’);

查看分区 show partitions score;

添加一个分区 alter table score add partition(month=‘201805’);

同时添加多个分区 alter table score add partition(month=‘201804’) partition(month = ‘201803’); 注意:添加分区之后就可以在hdfs文件系统当中看到表下面多了一个文件夹

删除分区 alter table score drop partition(month = ‘201806’); 特别强调: 分区字段绝对不能出现在数据库表已有的字段中!

作用: 将数据按区域划分开,查询时不用扫描无关的数据,加快查询速度。

创建分桶表:

是在已有的表结构之上新添加了特殊的结构。

将数据按照指定的字段进行分成多个桶中去,说白了就是将数据按照字段进行划分,可以将数据按照字段划分到多个文件当中去

开启hive的桶表功能 set hive.enforce.bucketing=true;

设置桶(reduce)的个数 set mapreduce.job.reduces=3;

创建桶表 create table course (c_id string,c_name string,t_id string) clustered by(c_id) into 3 buckets row format delimited fields terminated by ‘\t’;

注意事项: 桶表的数据加载,只能通过insert overwrite。hdfs dfs -put文件或者通过load data无法加载。 所以只能先创建普通表,并通过insert overwrite的方式将普通表的数据通过查询的方式加载到桶表当中去

创建普通表 create table course_common (c_id string,c_name string,t_id string) row format delimited fields terminated by ‘\t’;

普通表中加载数据 load data local inpath ‘/export/servers/hivedatas/course.csv’ into table course_common;

通过insert overwrite给桶表中加载数据 insert overwrite table course select * from course_common cluster by(c_id);

特别强调: 分桶字段必须是表中的字段。

分桶逻辑: 对分桶字段求哈希值,用哈希值与分桶的数量取余,余几,这个数据就放在哪个桶内。 本次关于Hive的基本操作就到这里了,后续小菌会在这为大家补全更多的内容,敬请期待!ε≡٩(๑>₃<)۶

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[猿人菌]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1778570

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云