Hive使用的语句是Hql,和sql百分之九十都是相近的,因此,只要对SQL比较熟悉的,Hql基本不用怎么学。
基本数据类型 「基本数据类型」 tinyint/smallint/int/bigint: 整数类型 float/double: 浮点数类型 boolean:布尔类型 string:字符串类型 「复杂数据类型」 Array:数组类型,由一系列相同数据类型的元素组成 Map:集合类型,包含key->value键值对,可以通过key来访问元素 Struct:结构类型,可以包含不同数据类型的元。这些元素可以通过\”点语法\”的方式来得到所需要的元素 「时间类型」 Date:从Hive0.12.0开始支持 Timestamp:从Hive0.8.0开始支持 常用DDL操作 查看数据列表 showdatabases;
使用数据库 USEdatabase_name; 新建数据库
语法:
CREATE(DATABASE|SCHEMA)[IFNOTEXISTS]database_name–DATABASE|SCHEMA是等价的[COMMENTdatabase_comment]–数据库注释[LOCATIONhdfs_path]–存储在HDFS上的位置[WITHDBPROPERTIES(property_name=property_value,…)];–指定额外属性
示例:
CREATEDATABASEIFNOTEXISTShive_testCOMMENT\’hivedatabasefortest\’WITHDBPROPERTIES(\’create\’=\’heibaiying\’);
创建一个数据库,数据库在HDFS 上的默认存储路径是/user/hive/warehouse/*.db。
创建一个数据库,可以指定数据库在 HDFS 上存放的位置
hive>CREATEDATABASEhive_testlocation\’/db_hive.db\’; 查看数据库信息
语法:
DESCDATABASE[EXTENDED]db_name;–EXTENDED表示是否显示额外属性
示例:
DESCDATABASEEXTENDEDhive_test; 删除数据库
语法:
DROP(DATABASE|SCHEMA)[IFEXISTS]database_name[RESTRICT|CASCADE];
默认行为是 RESTRICT,如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用 CASCADE 级联删除。
示例:
DROPDATABASEIFEXISTShive_testCASCADE; 案例实操
本地文件导入Hive
[hadoop@node02~]$vimstudent.txtstudent.idstudent.name1Runsen2Zhangsan3Lisihive>CREATEDATABASEdb_hive;hive>usedb_hive;hive>createtablestudent(idint,namestring)ROWFORMATDELIMITEDFIELDSTERMINATEDBY\’ \’;hive>loaddatalocalinpath\’student.txt\’intotablestudent;hive>select*fromstudent;OKstudent.idstudent.name1Runsen2Zhangsan3Lisi
除了可以将本地文件导入到HIve中,我们先把文件上传到HDFS,然后使用HDFS将数据导入到Hive中。