Hive1

#  #数据库与数据仓库

数据库:mysql,roacle,sqlserve,DB,MDB,...

数据仓库:Hive,是MR的客户端,也就是说不必要每台机器都安装部署Hive

- Hive的特性

1)操作接口是采用SQL语法,HQL;

2)避免乐写MapReduce的繁琐过程

- Hive 体系结构

1·Client

**终端命令行

**JDBC--不长使用,非常麻烦(相对于前者)

2.metastore

**原本的数据集集和字段名称以及数据信息之间的双射关系

**目前是存储在Mysql

3.Server-Hadoop

**在操作Hive的同时,需要将Hadoop的HDFS开启,YARN开启,MAPRED配置好

创建表: create table ss(name string,id int,date string) row format delimited fileds terminated by '\t'

导入数据:load data local inpath '路径' into table 库名.表名

内部表与外部表(inner,external):

drop

内部表删除表数据时,连同数据源及元数据信息同时删除

外部表:只会删除元数据信息,共享数据外部表相对而言方便和安全

相同点:

如果你导入数据时,操作与HDFS上,则会将数据进行迁移,并在metastire留下记录,而不是copy数据源

Hive分区表

创建分区表:

前面一样 partitioned by (date string,hour string)--分区表的分区字段以逗号分隔

row format delimited fields terminated by '\t'

导入数据到分区表

load data local inpath '路径' into table 库名.表名 partition(date='具体值',hour='具体值')

查询分区表数据:

select url from table

where date = '201808021'

case使用(聚合函数,group by等)

**select ename,

case

when sal<1000 then "lower"

when sal>=1000 and sal<2000 then 'mid'

else 'high'

end

from table**

hive操作HQL语句的两个参数

hive -e ""

hive -f 文件.hql

bin/hive  本地的

HiveServer2

#  #Sqoop

你可能感兴趣的:(Hive1)