Hadoop生态hive(三)Hive QL介绍

一、表

创建表

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 

CREATE TABLE 创建一个指定名字的表。Hive 创建内部表时,会将数据移动到数据仓库指向的路径;

EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),记录数据所在的路径,不对数据的位置做任何改变
 

创建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 
指定数据库表模式(Schemas):
例:

CREATE TABLE demo1 (
  id INT,
  name STRING);

两列:
一列Int类型
一列STRING类型

二、数据类型

简单数据类型

复杂数据类型

例:

Hive 中为了采用复杂数据类型是为了提高访问的速度

三、数据存储格式

TEXTFILE
SEQUENCEFILE
RCFILE
自定义格式

(1)TEXTFILE

分隔符

四、其他操作

(1)删除表 Drop Table
删除一个内部表的同时会同时删除表的元数据和数据。删除一个外部表,只删除元数据而保留数据。
(2)修改表Alter Table
用 ALTER TABLE tbl_name ADD PARTITION …来向一个表中增加分区
用ALTER TABLE tbl_name RENAME TO tbl_name_new 来修改表名
(3)加载数据Load data

LOAD DATA [LOCAL] INPATH 'filepath' 
[OVERWRITE] INTO TABLE tablename 
[PARTITION (partcol1=val1, partcol2=val2 ...)]

(4)查询语句 Select

SELECT [ALL | DISTINCT] select_expr, select_expr, ... 
FROM table_reference 
[WHERE where_condition]
 [GROUP BY col_list]
[ CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ]
 [LIMIT number]

1. 简单查询

SELECT * FROM t1
SELECT * FROM t1 LIMIT 10
SELECT * FROM sales WHERE amount > 10 AND region = "US"
SELECT DISTINCT col1, col2 FROM t1

2.子查询语句

SELECT t2.col1 
FROM  (
         SELECT 
                col1, 
                SUM(col2) AS col2sum 
         FROM t1 
        GROUP BY col1
)  t2 
WHERE t2.col2sum > 10
发布了354 篇原创文章 · 获赞 522 · 访问量 128万+

猜你喜欢

转载自blog.csdn.net/moakun/article/details/103001855