hive 同源多表插入操作

vim hive-multi_insert.sql

# 设置打印表头
set hive.cli.print.header=true;

# 创建源数据表
create external table if not exists multi_insert_total_tb(
    stu_id int comment 'the id of a student',
    stu_name string,
    stu_grade string,
    stu_sex string,
    stu_score int,
    roll_year string) 
row format delimited 
    fields terminated by ',';


load data local inpath '/var/lib/hadoop-hdfs/hive-app-data/multi_insert_total_tb.dat' overwrite into table multi_insert_total_tb;

select * from multi_insert_total_tb;


# 创建分表1
create external table if not exists multi_insert_tb01(
    stu_id int comment 'the id of a student',
    stu_name string,
    stu_sex string,
    stu_addr string) 
row format delimited 
    fields terminated by ',';

# 创建分表2
create external table if not exists multi_insert_tb02(
    stu_id int comment 'the id of a student',
    stu_grade string,
    stu_score int)  
row format delimited
    fields terminated by ',';

# 创建分表3
create external table if not exists multi_insert_tb03(
    stu_id int comment 'the id of a student',
    roll_year string)  
row format delimited
    fields terminated by ',';


# 同源多表插入操作
from multi_insert_total_tb
insert into table multi_insert_tb01 select stu_id,stu_name,stu_sex,null 
insert into table multi_insert_tb02 select stu_id,stu_grade,stu_score 
insert into table multi_insert_tb03 select stu_id,roll_year; 

# 分别查看3个表数据
select * from multi_insert_tb01;
select * from multi_insert_tb02;
select * from multi_insert_tb03;

执行结果

[hdfs@cdh04 hive-app-data]$ hive -f hive-multi_insert.sql 
OK
Time taken: 3.008 seconds
Loading data to table default.multi_insert_total_tb
Table default.multi_insert_total_tb stats: [numFiles=1, totalSize=135]
OK
Time taken: 0.832 seconds
OK
multi_insert_total_tb.stu_id    multi_insert_total_tb.stu_name  multi_insert_total_tb.stu_grade multi_insert_total_tb.stu_sex   multi_insert_total_tb.stu_score multi_insert_total_tb.roll_year
92103   xiaoming        B       m       78      2015
92115   xiaohua A       m       82      2005
92122   xiaohong        D       f       58      2013
92133   xiaodu  A       f       98      2003
92117   xiaoli  B       m       74      2017
Time taken: 0.36 seconds, Fetched: 5 row(s)
OK
Time taken: 0.08 seconds
OK
Time taken: 0.157 seconds
OK
Time taken: 0.156 seconds
Query ID = hdfs_20200705124040_106693fc-a4da-47cc-bc6a-aa238444538e
Total jobs = 7
Launching Job 1 out of 7
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1593909553778_0001, Tracking URL = http://cdh01:8088/proxy/application_1593909553778_0001/
Kill Command = /opt/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/lib/hadoop/bin/hadoop job  -kill job_1593909553778_0001
Hadoop job information for Stage-3: number of mappers: 1; number of reducers: 0
2020-07-05 12:40:38,492 Stage-3 map = 0%,  reduce = 0%
2020-07-05 12:40:48,008 Stage-3 map = 100%,  reduce = 0%, Cumulative CPU 2.68 sec
MapReduce Total cumulative CPU time: 2 seconds 680 msec
Ended Job = job_1593909553778_0001
Stage-6 is selected by condition resolver.
Stage-5 is filtered out by condition resolver.
Stage-7 is filtered out by condition resolver.
Stage-12 is selected by condition resolver.
Stage-11 is filtered out by condition resolver.
Stage-13 is filtered out by condition resolver.
Stage-18 is selected by condition resolver.
Stage-17 is filtered out by condition resolver.
Stage-19 is filtered out by condition resolver.
Moving data to: hdfs://cdh01:8020/user/hive/warehouse/multi_insert_tb01/.hive-staging_hive_2020-07-05_12-40-27_042_6368299300154222600-1/-ext-10000
Moving data to: hdfs://cdh01:8020/user/hive/warehouse/multi_insert_tb02/.hive-staging_hive_2020-07-05_12-40-27_042_6368299300154222600-1/-ext-10002
Moving data to: hdfs://cdh01:8020/user/hive/warehouse/multi_insert_tb03/.hive-staging_hive_2020-07-05_12-40-27_042_6368299300154222600-1/-ext-10004
Loading data to table default.multi_insert_tb01
Loading data to table default.multi_insert_tb02
Loading data to table default.multi_insert_tb03
Table default.multi_insert_tb01 stats: [numFiles=1, numRows=5, totalSize=95, rawDataSize=90]
Table default.multi_insert_tb02 stats: [numFiles=1, numRows=5, totalSize=55, rawDataSize=50]
Table default.multi_insert_tb03 stats: [numFiles=1, numRows=5, totalSize=55, rawDataSize=50]
MapReduce Jobs Launched: 
Stage-Stage-3: Map: 1   Cumulative CPU: 2.68 sec   HDFS Read: 6566 HDFS Write: 448 SUCCESS
Total MapReduce CPU Time Spent: 2 seconds 680 msec
OK
stu_id  roll_year
Time taken: 23.311 seconds
OK
multi_insert_tb01.stu_id        multi_insert_tb01.stu_name      multi_insert_tb01.stu_sex       multi_insert_tb01.stu_addr
92103   xiaoming        m       NULL
92115   xiaohua m       NULL
92122   xiaohong        f       NULL
92133   xiaodu  f       NULL
92117   xiaoli  m       NULL
Time taken: 0.151 seconds, Fetched: 5 row(s)
OK
multi_insert_tb02.stu_id        multi_insert_tb02.stu_grade     multi_insert_tb02.stu_score
92103   B       78
92115   A       82
92122   D       58
92133   A       98
92117   B       74
Time taken: 0.072 seconds, Fetched: 5 row(s)
OK
multi_insert_tb03.stu_id        multi_insert_tb03.roll_year
92103   2015
92115   2005
92122   2013
92133   2003
92117   2017
Time taken: 0.061 seconds, Fetched: 5 row(s)

猜你喜欢

转载自blog.csdn.net/dinghua_xuexi/article/details/107136658