hive准备测试数据

1、数据准备:

#创建测试hive数据库
create database hive_test;	
#创建hive数据表,指定一个分区
CREATE TABLE testa (  
    id INT,  
    name string,  
    area string  
) PARTITIONED BY (create_time string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

2、准备数据,复制数据直到超过100M,本次测试为100.6M,数据内容如下:

1,fish1,SZ  
2,fish2,SH  
3,fish3,HZ  
4,fish4,QD  
5,fish5,SR

3、本地数据导入到hive中并创建一个分区:

LOAD DATA LOCAL INPATH '/home/work/hive_load_out/hive_testA.txt' INTO TABLE testA PARTITION(create_time='2020-05-11');

此时txt数据格式,100.6M引入产品系统后变成97.71KB,符合预期。
但是该产品一般引入的hive数据格式为ORC或者PARQUET格式,因此尝试将现有txt格式数据转成ORC或者PARQUET数据,本次测试为PARQUET数据,转成ORC数据步骤一样:

#重新创建测试表
CREATE TABLE testb (  
    id INT,  
    name string,  
    area string  
) PARTITIONED BY (create_time string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS PARQUET;
#将testa中数据转入到testb,由于testa的数据带有分区,因此指定 select 字段列表的话,字段太多太累了,找到一种把分区字段从结果集排除的方法
set hive.support.quoted.identifiers=none;
insert into testb PARTITION(create_time='2020-05-12') select `(create_time)?+.+` from testa where create_time='2020-05-11';

导入后发现数据大小变成了9.9M,对于测试数据来讲,数据太小,因此尝试加入数据:

#持续尝试新增数据
insert into testb PARTITION(create_time='2020-05-12') select `(create_time)?+.+` from testa where create_time='2020-05-11';

这样数据格式就变成parquet了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值