hive语法和常用函数Word下载.docx

上传人:b****1 文档编号:13509368 上传时间:2022-10-11 格式:DOCX 页数:77 大小:437.37KB
下载 相关 举报
hive语法和常用函数Word下载.docx_第1页
第1页 / 共77页
hive语法和常用函数Word下载.docx_第2页
第2页 / 共77页
hive语法和常用函数Word下载.docx_第3页
第3页 / 共77页
hive语法和常用函数Word下载.docx_第4页
第4页 / 共77页
hive语法和常用函数Word下载.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

hive语法和常用函数Word下载.docx

《hive语法和常用函数Word下载.docx》由会员分享,可在线阅读,更多相关《hive语法和常用函数Word下载.docx(77页珍藏版)》请在冰豆网上搜索。

hive语法和常用函数Word下载.docx

STRUCT,MAP与ARRAY。

Hive主要有四种数据模型(即表):

(内部)表、外部表、分区表与桶表。

表的元数据保存传统的数据库的表中,当前hive只支持Derby与MySQL数据库。

内部表:

Hive中的表与传统数据库中的表在概念上就是类似的,Hive的每个表都有自己的存储目录,除了外部表外,所有的表数据都存放在配置在hive-site、xml文件的${hive、metastore、warehouse、dir}/table_name目录下。

Java代码 

1.CREATE 

TABLE 

IF 

NOT 

EXISTS 

students(user_no 

INT,name 

STRING,sex 

STRING, 

2. 

grade 

STRING 

COMMOT 

'

班级'

)COMMONT 

学生表'

3.ROW 

FORMAT 

DELIMITED 

4.FIELDS 

TERMINATED 

BY 

'

5.STORE 

AS 

TEXTFILE;

外部表:

外部表指向已经存在在HadoopHDFS上的数据,除了在删除外部表时只删除元数据而不会删除表数据外,其她与内部表很像。

EXTERNAL 

class 

SEQUENCEFILE 

6.LOCATION 

/usr/test/data/students、txt'

;

分区表:

分区表的每一个分区都对应数据库中相应分区列的一个索引,但就是其组织方式与传统的关系型数据库不同。

在Hive中,分区表的每一个分区都对应表下的一个目录,所有的分区的数据都存储在对应的目录中。

比如说,分区表partitinTable有包含nation(国家)、ds(日期)与city(城市)3个分区,其中nation=china,ds=20130506,city=Shanghai则对应HDFS上的目录为:

/datawarehouse/partitinTable/nation=china/city=Shanghai/ds=20130506/。

3.PARTITIONED 

(ds 

STRING,country 

STRING) 

4.ROW 

5.FIELDS 

6.STORE 

SEQUENCEFILE;

分区中定义的变量名不能与表中的列相同。

桶区表:

桶表就就是对指定列进行哈希(hash)计算,然后会根据hash值进行切分数据,将具有不同hash值的数据写到每个桶对应的文件中。

score 

SMALLINT 

总分'

4.CLUSTERED 

BY(user_no) 

SORTED 

BY(score) 

INTO 

32 

BUCKETS 

5.ROW 

6.FIELDS 

7.STORE 

内部表与外部表的主要区别:

1)、内部表创建要2步:

表创建与数据加载,这两个过程可以同步执行。

在数据加载的过程中,数据数据会移动到数据仓库的目录中;

外部表的创建只需要一个步骤,表创建数据加载同时完成,表数据不会移动。

2)、删除内部表时,会将表数据与表的元数据一同删除;

而删除外部表时,紧删除表的元数据而不会删除表数据。

在上一节《深入学习《ProgramingHive》:

Hive的数据模型(表)》中,已经学习过表的定义,接下来接着学习Hive的DDL操作。

复制表结构:

students2 

LIKE 

students;

查瞧表结构:

1.DESCRIBE 

删除表:

1.DROP 

创建视图:

Hive中的视图(view)的概念与传统数据库中的表就是相同的,就是只读的,目前还不支持不支持物化视图。

如果在创建试图后,再将基本表中被视图引用的列修改,那么修改后的数据列将不会体现在视图中;

如果基本表被删除或以不兼容的方式被修改,则查询该视图时会失败。

VIEW 

view_students 

(user_no,name,score) 

2.AS 

3.SELECT 

user_no,name,score 

FROM 

删除视图:

view_students;

定制表存储方式:

employees( 

no 

3. 

name 

4. 

salary 

FLOAT, 

5. 

subordinates 

ARRAY<

STRING>

 

6. 

deductions 

MAP<

STRING,FLOAT>

7. 

address 

STRUCT<

street:

STRING,district:

STRING,city:

STRING,province:

STRING,ZIP:

8.) 

9.ROW 

10.FIELDS 

\001'

11.COLLECTIN 

ITEMS 

\002'

12.MAP 

KEYS 

\003'

13.LINES 

\n'

14.STORED 

15.INPUTFORMAT 

org、linkedin、haivvreo、AvroContainerInputFormat'

16.OUTPUTFORMAT 

org、linkedin、haivvreo、AvroContainerOutputFormat'

修改表结构:

1)、重命名表

1.ALTER 

table_name 

RENAME 

TO 

new_table_name;

只修改了表名,不会改变表结构与数据存放的位置。

2)、修改列名、类型、位置及注释

test(a 

INT,b 

STRING,c 

FLOAT);

//创建测试表 

2.//修改列名 

test 

CHANGE 

a2 

INT;

4./*将a列的名字改为a2,并将其数据类型改为STRING,然后将之放在b列之后;

修改 

后的表结构为:

INT,a2 

FLOAT 

*/ 

7.ALTER 

AF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1