您的位置:首页 > 数据库

Hive 数据库仓库的基本操作

2016-08-23 15:29 423 查看

Hive 数据库仓库的基本操作

查看hive中的数据库

Show databases;

查看hive中的表

Show tables;

查看表结构信息

DESCRIBE table_name;

创建表:

CREATE TABLE daxiong (id INT, name STRING);

创建一个新表daxiong1,结构与daxiong一样

Create table daxiong1 like daxiong;

创建分区表

create table logs(ts bigint,line string) partitioned by (dt String,country String);

加载表数据
(从linux(ext3/ext4文件系统到hive))

a文件之间是空格,b文件之间是tab键;一会看结果。
hive> create table ha(id int,name string)
> row format delimited
> fields terminated by '\\t'
> stored as textfile;
OK
Time taken: 0.28 seconds
注:[ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。
[STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [STORED AS TEXTFILE],然后从本地直接拷贝到HDFS上,hive直接可以识别数据。

从HDFS上导入数据到Hive表

从linux上传到hdfs上:

load data inpath '/user/c' into table ha;

导出到本地文件系统

insert overwrite local directory '/home/hdfs/d' select * from ha;

导出到HDFS中

insert overwrite directory '/user/d select * from ha;

查看:

Hive连接hbase(数据传输)

建立一个表格classes具有1个列族user
create 'classes','user'
查看表的构造
describe 'classes‘
加入数据
put 'classes','001','user:name','jack'put 'classes','001','user:age','20' put 'classes','002','user:name','liza' put 'classes','002','user:age','18'
查看classes中的数据
scan 'classes'

创建外部hive表,查询验证:
create external table classes(id int, name string, age int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,user:name,user:age") TBLPROPERTIES("hbase.table.name" = "classes");
select * from classes;

再添加数据到Hbase
put 'classes','003','user:age','1820183291839132'
scan 'classes'

Hive查询,看看新数据
select * from classes;
null,因为3没有name,所以补位Null,而age为Null是因为超过最大值,截图中有验证

上述演示了在hbase中添加数据,在hive中就会产生新的数据,下面是在hive中创建hbase连接表,在hbase中就会自动生成一个与hive中同名的表,hive中表的数据发生变化,在hbse中也会发生同样的变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息