聊聊Hive數(shù)據(jù)類型和簡(jiǎn)單使用
Hive使用的語(yǔ)句是Hql,和sql百分之九十都是相近的,因此,只要對(duì)SQL比較熟悉的,Hql基本不用怎么學(xué)。
基本數(shù)據(jù)類型
「基本數(shù)據(jù)類型」
- tinyint/smallint/int/bigint: 整數(shù)類型
- float/double: 浮點(diǎn)數(shù)類型
- boolean:布爾類型
- string:字符串類型
「復(fù)雜數(shù)據(jù)類型」
- Array:數(shù)組類型,由一系列相同數(shù)據(jù)類型的元素組成
- Map:集合類型,包含key->value鍵值對(duì),可以通過(guò)key來(lái)訪問元素
- Struct:結(jié)構(gòu)類型,可以包含不同數(shù)據(jù)類型的元。這些元素可以通過(guò)"點(diǎn)語(yǔ)法"的方式來(lái)得到所需要的元素
「時(shí)間類型」
- Date:從Hive0.12.0開始支持
- Timestamp:從Hive0.8.0開始支持
常用DDL操作
查看數(shù)據(jù)列表
- show databases;
使用數(shù)據(jù)庫(kù)
- USE database_name;
新建數(shù)據(jù)庫(kù)
語(yǔ)法:
- CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name --DATABASE|SCHEMA 是等價(jià)的
- [COMMENT database_comment] --數(shù)據(jù)庫(kù)注釋
- [LOCATION hdfs_path] --存儲(chǔ)在 HDFS 上的位置
- [WITH DBPROPERTIES (property_name=property_value, ...)]; --指定額外屬性
示例:
- CREATE DATABASE IF NOT EXISTS hive_test
- COMMENT 'hive database for test'
- WITH DBPROPERTIES ('create'='heibaiying');
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)在HDFS 上的默認(rèn)存儲(chǔ)路徑是/user/hive/warehouse/\*.db。
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),可以指定數(shù)據(jù)庫(kù)在 HDFS 上存放的位置
- hive > CREATE DATABASE hive_test location '/db_hive.db';
查看數(shù)據(jù)庫(kù)信息
語(yǔ)法:
- DESC DATABASE [EXTENDED] db_name; --EXTENDED 表示是否顯示額外屬性
示例:
- DESC DATABASE EXTENDED hive_test;
刪除數(shù)據(jù)庫(kù)
語(yǔ)法:
- DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
默認(rèn)行為是 RESTRICT,如果數(shù)據(jù)庫(kù)中存在表則刪除失敗。要想刪除庫(kù)及其中的表,可以使用 CASCADE 級(jí)聯(lián)刪除。
示例:
- DROP DATABASE IF EXISTS hive_test CASCADE;
案例實(shí)操
本地文件導(dǎo)入Hive
- [hadoop@node02 ~]$ vim student.txt
- student.id student.name
- 1 Runsen
- 2 Zhangsan
- 3 Lisi
- hive> CREATE DATABASE db_hive;
- hive> use db_hive;
- hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
- hive> load data local inpath 'student.txt' into table student;
- hive> select * from student;
- OK
- student.id student.name
- 1 Runsen
- 2 Zhangsan
- 3 Lisi
除了可以將本地文件導(dǎo)入到HIve中,我們先把文件上傳到HDFS,然后使用HDFS將數(shù)據(jù)導(dǎo)入到Hive中。




























