常常会有这样一种使用场景,由于工作需要,我们突然会接触一门新的技术。比如,现在我们碰到的这门技术,hive. hive其实是一种数据仓库,我们可以使用通用的SQL语法去使用它。现在,我将去hive的官网上学习并初步使用它。当然,我的公司已经搭建了支持hive的生产坏境。我现在要做的事情就是要熟练的使用它。
我们可以进入命令行使用SQL;
在安装了hive的Linux操作系统输入’hive‘命令,进入hive命令行。
1.DDL操作之建表:
建表的命令是create
新建pokes表:create table pokes(foo int,bar string); --sql命令以';'结尾;
新建invites表并附带分区ds:create table invites(foo int,bar string) partitioned by (ds String);
查看我们新建的表:
show tables;
查看以'es'结尾的表名:show tables '.*es';
使用describe invites; --shows the list of columns.
2.DDL操作之修改表结构
修改表名:ALTER TABLE invites RENAME TO 3koobecaf;
增加列:ALTER TABLE pokes ADD COLUMNS (new_col INT);
增加列的注释:ALTER TABLE pokes ADD COLUMNS (new_col2 INT COMMENT 'a comment');
替换列(重新定义表结构):ALTER TABLE pokes REPLACE COLUMNS (foo INT COMMENT 'only keep the first column'); -- 慎用!!!
3.DDL操作之删除表
drop table pokes;
drop table invites;
4.DML操作之向表中导入数据
LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15'); --向建立了分区的表load数据
//向HDFS插入数据
INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT a.* FROM invites a WHERE a.ds='2008-08-15';
//向本地文件系统插入数据
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/local_out' SELECT a.* FROM pokes a;
//向表中插入数据
NSERT OVERWRITE TABLE events SELECT a.* FROM profiles a;
网友评论