hive相关基础
1、进入到hive命令下;(linux下直接输入hive即可)
hive
2、查看工作分区下的hive表都有哪些?
show tables;
3、查看hive中某个具体表,例如要查看'abc'表的结构(在hive命令下执行)
desc abc;
4、建表语句’abc’;(下面是分隔符,加上就好有好处,不然会出现本来要传2列数据到两个字段下面,却发现两列数据全部到了一个字段下面)
CREATE TABLE `abc`(
`dim_user_hid` string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
5、这句话是把本地文件中yz.txt中的数据传到建的hive表'abc'中
load data local inpath 'yz.txt'into table abc;
6、一般情况下是4和5联合起来使用,比如你要导出指定mac的相关数据信息,而数据库中是所有mac的信息,那怎么筛选呢
先把指定的mac信息写成一个txt文本,上传到linux指定目录下,然后把数据导入创建好的hive表中,然后和已知的hive达标数据做join关联即可
7、6说到了文件上传,给你说下上传命令;
linux命令下,rz -be 就会弹出界面,选择你要上传的文件即可;
7、删除某个表;
hive下执行drop table 表名;
8、其实hive的精髓就是表与表之间的关联和相关字段之间的关联,hive数据库建好以后,里面会有很多表,几乎所有信息都在里面储存,但是需求并不一定需要
全部的数据,所以就需要各种各样的条件查询和导出相应的数据;
9、insert那句话是表示在tmp目录下面建立的文件以及文件名称(这句话一般都要加上并写在查询语句前方,方便查询完毕后将文件导出来)
这个查询语句是非常简单的,就是说在导出hehe里面的id、hid信息,条件是id=300119的所有信息
insert overwrite local directory '/tmp/300021' row format delimited fields terminated by ','
select id,hid from hehe where id =300119 ;
10、导完数据后,数据就存储在了tmp目录下面的300021文件中,这个时候,我们去到300021目录中把文件下载到桌面就好了
可以vi 00000_0
然后:wq
再然后sz 00000_0即可;
另一种方法就是在数据导入的目录下执行:
cd /tmp/300019
cat *>> a.log
sz a.log即可(这种方式是将所有文件中的数据导入到了log文件中,用起来比较方便)
先写到这儿吧,hive还是要多多操作才会更加熟练,数据的导出工作是基础的,同时也是磨炼基本功的,特别是多种表关联的时候,hive真的妙不可言,哈哈
元周