hive 学习笔记——表的入门操作和命令
1、受控表(managed table)包括内部表、分区表、桶表;
1.1、分区表
创建分区表:
create table banji(id INT,name STRING) partitioned by(grade INT) row format delimited fields terminated by '\t';
create table member(id INT,name STRING) partitioned by(year INT,month INT) row format delimited fields terminated by '\t';
为分区表加载数据
load data local inpath 'student1' into table banji partition(grade=1);
load data local inpath 'student1' into table banji partition(year=2014,month=1);
*分区字段在文件中是没有的,但是查询是显示出来的,分区字段是作为虚拟列存在的
分区不是越多越好,需要对分区数量进行限制(分区过多,会产生过多的小文件)
分区字段:查询比较频繁 ,并且不会有很多枚举值的字段适合作为分区字段
1.2、桶表(bucket table)
桶就是那个模的数字
优点:每个桶的数据量差不多,在进行表连接查询的的时候方便
缺点:按业务字段查的时候没效果
应用场景:抽样、表连接
创建桶表
create table bucket(id INT,name STRING) clustered by(id) into 3 buckets;
启用桶表
SET hive.enforce.bucketing=true;
添加数据
insert overwrite table bucket select id ,name from banji;
*不能用load方式,load方式是简单的复制进hive表,insert的时候,会通过mr处理分桶
2、非受控表指外部表
删除表的时候只删除了表定义,不会对HDFS中的数据进行删除
创建外部表
create external table ext_table(c1 STRING,c2 STRING) row format delimited fields terminated by '\t' location '/ext_data';
3、命令行工具
3.1、set命令可以设置变量也可以显示变量
3.2、设置启动初始化命令
*hive启动时会默认执行home下的.hiverc文件,该文件位于home目录下
set hive.cli.print.current.db=true ;
#打印当前数据库名
set hive.cli.print.header=true;
#打印标题行
set hive.querylog.location=logpath;
#设置hive的查询日志保存地址
3.2、在不进入hive的命令行的情况下执行hvie命令
hive -e "hive命令"
hive -e "">>aaa
#结果追加到aaa文件中
hive -S -e "">>bbb
#输出较少日志
3.3、指定hive执行日志存放地址
hive --hiveconf hive.querylog.location=logpath
3.4、执行文件中的hive脚本
hive -f file
在hive命令行时执行:
source file
hive 学习笔记——表的入门操作和命令的更多相关文章
- hive学习笔记——表的基本的操作
1.hive的数据加载方式 1.1.load data 这中方式一般用于初始化的时候 load data [local] inpath '...' [overwrite] into table t1 ...
- hive学习笔记-表操作
Hive数据类型 基本数据类型 tinyint,smallint,int,biging,float,double,decimal,char,varchar,string,binary,boolean, ...
- hive学习笔记之三:内部表和外部表
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之四:分区表
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之五:分桶
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之六:HiveQL基础
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之七:内置函数
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- hive学习笔记之十:用户自定义聚合函数(UDAF)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
随机推荐
- 【rest】 深入理解rest
起因是想搞明白 ajax.rest风格和http请求数据会有什么区别 再来回顾一下概念: REST即表述性 状态 传递 满足这些约束条件和原则的应用程序或设计就是RESTful.需要注意的是,REST ...
- 用于主题检测的临时日志(d94169f9-f1c0-45a2-82d4-6edc4bd35539 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
这是一个未删除的临时日志.请手动删除它.(5327dce0-d2d1-4fba-8801-d3ff67564a96 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
- 2016 系统设计第一期 (档案一)jQuery checkbox 取值赋值
<div class="form-group"> <label for="IsActive" class="col-sm-2 con ...
- mysql left( right ) join使用on 与where 筛选的差异
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异. 可能只看着两个关键字看不出任何的问题.那我们使用实际的例子来说到底有没有 ...
- Error: Cannot find module 'express'
安装Express命令如下: npm install -g express 安装成功之后会在C:\Users\[YOUR_USER_NAME]\AppData\Roaming\npm\node_mod ...
- Tern Server Timeout
- 移动端页面使用rem来做适配
文/九彩拼盘(简书作者)原文链接:http://www.jianshu.com/p/eb05c775d3c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. rem介绍 rem(font ...
- 【BZOJ】【2132】圈地计划
网络流/最小割 Orz Hzwer 这类大概是最小割建模中的经典应用吧…… 黑白染色,然后反转黑色的技巧感觉很巧妙!这个转化太神奇了…… /****************************** ...
- Java多线程——<五>后台线程(daemon)
一.后台线程(守护线程) 学一个东西,最重要的一点就是,为什么要用它? 后台线程区别于普通线程,普通线程又可以称为用户线程,只完成用户自己想要完成的任务,不提供公共服务.而有时,我们希望编写一段程序, ...
- 高性能网络编程1----accept建立连接
转 http://taohui.org.cn/tcpperf1.html 陶辉 taohui.org.cn 回到应用层,往往只需要调用类似于accept的API就可以建立TCP连接.建立连接的流程大 ...