hive HQl

1 hive的数据类型

①基本类型
布尔:boolean
整数:int(4byte)(tinyint(1byte),smallint(2byte),bigint(8byte))
浮点数:float(4byte)(double(8byte),decimal)
字符串类型:string(varchar(可变长度),char(固定长度的字符串))
日期类型:timestamp(返回自1970-1-1到当前时间经过的毫秒数),date(例如:'2012-3-16')

②集合类型
数组:array(例如array(1,3,5))
结构:struct(例如struct('张三','和平区',8))
映射:map(例如 map('张三',8,"李四",18))
联合:union(多个类型选其中之一,新版本)

2 hive中的数据库

 hive的数据库本质是hdfs上目录,
  ①查询数据库
   show databases;
   //查询以h开头的数据的列表,注意like后字符串匹配使用正则
   show databases like 'h.*';
  ② 创建数据库
    create database [if not exitsts] 数据库名
    [location 'hdfs的根目录']

    例如:在hdfs的根目录创建数据库
     create database yourdb
        location '/home/hadoop/myhivedb';
   ③ 查看数据库属性命令:
      desc database yourdb;
     系统在hdfs根目录下创建该数据库对应目录:
        hdfs://ping1:9000/home/hadoop/myhivedb
   ④ 删除数据库
      drop database 数据名 [cascade]  
      cascade级联删除选项;

3 创建表


 3.1 管理表
   创建内部表,当前使用drop table语句删除表时,存在hdfs上表的目录会被删除
   create table [if not exists] 表名
    (列名 数据类型,
     ....)
     [comment '表的描述']
    [row format delimited
       fields terminated by '\001'--字段之间的分割符\001八进制对应^A
       collection items terminated by '\002'--数组元素和结构元素的的分割符  ^B
       map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
       lines terminated by '\n'--行之间的分割符换行
    ]--指定表行的格式
    [stored as textfile]--指定表存储的数据格式
     [location '可以指定表存储的路径']    
   
 3.2 外部表
    create external table [if not exitsts] 表名
    (列名 数据类型,
     ....)
     [comment '表的描述']
    [row format delimited
       fields terminated by '\001'--字段之间的分割符\001八进制对应^A
       collection items terminated by '\002'--数组元素和结构元素的的分割符  ^B
       map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
       lines terminated by '\n'--行之间的分割符换行
    ]--指定表行的格式
    [stored as textfile]--指定表存储的数据格式
     [location '可以指定表存储的路径']    
     
    例如:
    指定hdfs上的外部存储目录,当使用drop table时,只会删除存储在元数据中的表的映射信息;
    而hdfs上的表对应的目录不会被删除;

 

 

你可能感兴趣的:(hive HQl)