hive和hbase

回眸只為那壹抹淺笑 提交于 2019-12-26 04:51:40

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 '\t'

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!