SQL 【hive建表&导入数据】

HIVE创建表&导入数据

创建表

1、直接在数据库中创建:

USE Tmp_UbtDb;
CREATE TABLE tableNameDemo (
     field1 STRING COMMENT 'field1 comment',
     field2 STRING COMMENT 'field2 comment')
 COMMENT 'table comment'
 PARTITIONED BY(d STRING COMMENT 'date') -- 若无分区则删除
 STORED AS ORC;

2、从已有的数据库进行数据抽取从新生成一张表:

use Tmp_UbtDb; 
drop table if exists Tmp_UbtDb.AAAA;
create table if not exists Tmp_UbtDb.AAAA
as 
SELECT * FROM Tmp_UbtDb.BBBB
;

3、创建一张空表带数据结构(like)

create table Tmp_UbtDb.CCCC like Tmp_UbtDb.AAAA;
select * from Tmp_UbtDb.CCCC;

导入数据

1、本地文件上传 (暂不分享)
2、insert into 插入数据,不覆盖,追加模式

use Tmp_UbtDb;
insert into table Tmp_UbtDb.DDDD
select * from Tmp_UbtDb.CCCC  -- 把CCC表追加到AAA导入DDDD
;

3、insert overwrite 覆盖

use Tmp_UbtDb;
insert overwrite table Tmp_UbtDb.FFFF partition (d)

select * from Tmp_UbtDb.AAAA -- 把AAAA表追加到FFFF表中,覆盖同样分区(d)
;

注:
insert into 的巧用:
可以查询每天的数据生成中间表,插入到结果表中,可以减少内存的使用,提高制表效率
– insert into 与insert overwrite 之间的异同,两者都可以向 hive 表中插入数据,
–但 insert into 操作是以追加的方式向 hive 表尾部追加数据,
–而 insert overwrite 操作则是直接重写数据,即先删除 hive 表的数据,再执行写入操作。
–注意,如果 hive 表是分区表的话,insert overwrite 操作只会重写当前分区的数据,不会重写其他分区数据
–hive删除表:
–drop table table_name;
–hive删除表中数据:
–truncate table table_name;
–hive按分区删除数据:
–alter table table_name drop partition (partition_name=‘分区名’)

发布了11 篇原创文章 · 获赞 17 · 访问量 1293

猜你喜欢

转载自blog.csdn.net/nnnnn68/article/details/105244044