Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。
Hive查询具体操作步骤
1.解析:找出查询语句的关键字
2.优化:将select经行优化,形成树
3.编译:对select重新编译,形成相应的逻辑计划
4.执行:将逻辑计划进行实现,转变成物理计划
数据库的创建分为四种
1.内部表
2.外部表
3.分区表
4.分桶表
数据库的连接
1直接进数据库连接 连接Hive数据库
2.使用外部连接 使用navicat来连接mysql数据库,存储元数据(Hive的操作信息)
3.Client CLI(hive shell)、JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive)
Hive的元数据存放位置
1.derby --hive内部的数据库 不能多用户同事访问
2.本地磁盘
3.存放在外部数据库 --hdfs中 最安全
Hive基础使用API
1.创建表为create(默认为内部表,create external table aa 创建外部表)
2.插入数据insert
3.删除表和数据库drop
4.查看表结构三种方式
desc aa
desc extended aa
desc formatted aa
5.将本地数据导入数据库的表中
load data local inpath '/root/a.txt' into table 数据库.表名
6.将hdfs数据导入数据库的表中
load data inpath 'hdfs://192.168.157.123:9000/user/aa.txt' into table 数据库.表名
7.拷贝数据库,结构相同数据不同
create table 新建表名 like 表名
8.拷贝数据库结构相同数据也相同
create table 新建表名 as select * from 表名
9.清除数据,只能用在内部表中
truncate table 表名
10.设计表结构(与mysql最大的不通)
row format delimited 行格式分隔
fields terminated by ' ' 字段之间使用空格分隔
COLLECTION ITEMS TERMINATED BY ‘,’ 集合(就是这的数据)使用逗号分隔
MAP KEYS TERMINATED BY ‘:’ 键值对使用冒号分隔
lines terminated by '\n' 记录之间使用换行符分隔