『HIVE』hive基础学习笔记

来源:互联网 发布:照片合成软件下载 编辑:程序博客网 时间:2024/06/05 20:17

1、hive 不支持单句插入,必须从文件中导入或者从其它表里通过读出数据来插入

备注:从文件中导入又分为 2 种情况,一种是从本地导入,需加 LOCAL 作为关键字,另一种情况则是从 HDFS 上导入数据。从表里读出数据来插入也分为 2 种情况,一种是从表里查询出数据并插入表中,另一种情况则是将从表里查询出的数据导入新创建的表中,此时的语句格式是:CREATE TABLE ... AS SELECT ...

2、桶是比分区更小的粒度

3、hive不支持update、insert into ... values ...、delete 操作

4、数据写入文件系统时进行文本序列化,且每列用^A 来区分,\n换行

5、hive 的 where 条件跟传统的 SQL 不同之处:

•不支持EXIST ,NOT EXIST
ORDER BY与SORT BY的不同:
•ORDER BY 全局排序,只有一个Reduce任务
•SORT BY 只在本机做排序

6、hive 只支持等值连接

7、hive 中只支持分号 ; 在语句结束处出现,否则报错。在语句中可以使用 '\073' 作为代替

8、hive 不支持将数据插入表或分区中,只支持覆写整个表

9、执行的 hive 语句中用到 hadoop 时,需要指定队列(分组用户名)如果不是 root 用户,则可能存在权限问题

10、hive 实际例子 http://www.aboutyun.com/thread-7327-1-1.html

11、hive 可以运行文件中的语句,例如:hive -f test.q

备注:文件名的后缀名也可以是其它的

12、在进入到 hive 环境后,如果要运行文件中的语句则要使用 source test.q

备注:此时不需要加 -f 参数

13、设置动态分区:set hive.exec.dynamic.partition.mode=nonstrict

14、hive 导出数据的三种方式

①导出到本地:INSERT OVERWRITE LOCAL DIRECTORY 'outpath' SELECT * FROM table_name;

②导出到 HDFS:在 ① 的基础上去掉 LOCAL 关键字即可

备注:不能使用 INSERT INTO 

备注1:导出数据到文件中时可以指定分隔符,需在 SELECT 语句前加上 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 

③导出到表中:INSERT INTO TABLE table_name SELECT * FROM other_table_name;

15、创建外部表时是建表和加载数据是同时进行的,而内部表则可以分开独立进行

16、创建外部表 EXTERNAL 的关键字 CREATE EXTERNAL TABLE table_name LOCATION inpath;

17、创建分区 PARTITION 的关键字 CREATE TABLE table_name PARTITIONED BY (col_name, type);

18、创建桶 BUCKETS 的关键字 CREATE TABLE table_name (col_name, type) CLUSTERED BY (col_name) INTO number BUCKETS;

19、外部表被删除的时候,只删除元数据,不删除数据

20、建表时,如果是纯文本数据则使用关键字 STORED AS TEXTFILE,如果是需要压缩的话则使用 STORED AS SEQUENCE

21、查看 hadoop 用户:hadoop queue -showacls

原创粉丝点击