hive:适合用来进行分析统计;
hbase:用来进行实时查询。
hive的应用答题相当于mysql:
切换到当前数据库:hive:use database;
创建数据库命令:hive:create database financials;
删除数据库时,不允许删除的数据库中有数据,若有数据则会报错。这是可以用加有CASCADE关键字的命令删除;
hive:drop database databasename cascade;
或者:drop database if exists databasename cascade;
查看当前数据库中的表:hive:show tables in databasename;
或者:hive:show tables like 'h*';
查看所有的数据库。
hive> show databases ;
hive> describe databases DbName; --查看数据库信息
truncate table table_a ; 清空一个表的数据(hive 0.11.0 支持)
̶ 通过Alter关键字修改DB相关信息
hive> ALTER DATABASE financials SET DBPROPERTIES ('edited-by' = 'Joe Dba');
首先Hive有内部表,和External Table外部表两种表的概念。内部表就是通过Hive自身创建的表,并由Hive本身来管理数据。
而外部表,则是通过Hive建立表的Metadata提供一些数据查询服务,比如一些HDFS文件,Pig,Hbase的文件都可以通过Hive进行批处理和查询。
使用外部表就使用CREATE EXTERNAL TABLE,增加External关键字,并且通过LOCATION关键字指定外部表的数据存放位置。
内部表使用LOCATION关键字时指定该表的存放在HDFS中位置。
在使用DELETE TABLE 命令的时候,内部表的数据会与表结构一起删除,而外部表则只会删除表结构。
与RDBMS不一样,Hive支持各种数据类型,常用的是string,bigint,double
日期类型也是使用string来存储。
此外,Hive支持各种结构,如Map,Array,Struct,这些数据类型非常强大。
create table choice(userid int,classname string)
row format delimited fields terminated by ' '
STORED AS TEXT FILE
LOCATION '/data/test01/daxingyu930’;
STORED AS TEXTFILE 关键字指代数据的存储格式为文本格式,如果对数据进行压缩,可以使用RCFILE或者是SEQUENCE FILE。
此外可以将从hive表中查询得到的信息插入倒新的表格中、放到本地文件系统中或者hdfs文件系统中。
1.将select的结果放到一个的的表格中(首先要用create table创建新的表格)
insert overwrite table test
select uid,name from test2;
2.将select的结果放到本地文件系统中
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/reg_3'
SELECT a.* FROM events a;
3.将select的结果放到hdfs文件系统中
INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out'
SELECT a.* FROM invites a WHERE a.ds='';
链接:http://blog.sina.com.cn/s/blog_72d544900101f1i8.html