思路,hive导入分区表,只能通过临时表导入。
固建立临时表(不分区),导入数据到临时表,创建分区表,通过【insert 分区表 select 临时表】 导入分区表
打开hue或者直接hive
-----------------------------
创建分区表
-----------------------------
外部表external
以日期进行分区partitioned
数据是以,切分的 row format
存储格式用parquet,压缩数据,比orc差,查询一致,但是插入快(数据是textfile格式,需要通过insert parquet格式的表 select * textfile格式的表)
CREATE external TABLE default.ods_custom_data(
msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string
)
partitioned by (data_time string)
row format delimited fields terminated by ','
STORED AS parquet
文章来源:https://www.toymoban.com/news/detail-496546.html
创建临时表
CREATE external TABLE default.tmp_ods_custom_data(
msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string,data_time string
)
row format delimited fields terminated by ','
STORED AS textfile
导入数据
----------------------------
准备数据,这种数据是textfile格式
这是解压后的,实际上的数据是.gz的
1) 本地导入
hdfs dfs -put ./000000_0.gz /user/hive/warehouse/ods_custom_data
他就会自动识别,与下面2种方法的原理是一样,都是copy到hdfs的hive表目录下,自动识别
进入hive命令行
2) 本地copy
load data local inpath '/home/hdfs/data/test.txt' into table test;
3) hdfs上的copy
load data inpath '/user/hive/warehouse/tmp_ods_custom_data3/000000_0.gz' overwrite into table tmp_ods_custom_data;
检测是否导入临时表成功
----------------------
导入分区表(静态分区方式)
----------------------------------
INSERT OVERWRITE TABLE ods_custom_data partition(data_time='20220601')
SELECT
msgid string,sn string,dv string,vin string,tm_c string,tm_u string,s_ac string,at_ac string,op string,ml_r string
FROM tmp_ods_custom_data where data_time='20220601'
注意,上面的表,有一个字段是分区字段(特殊字段),下面的表没有分区字段,所以除去分区字段,比上面的表少1个字段,不要*,否则会出现字段不匹配。select 的时候写好,除了分区字段的所有字段。
补充:data_time是数据中的data_time字段具体的内容值,我导入的一批次的数据全是这个时间,防止存在脏数据,要使用查询字段限定范围。
查看是否成功
-----------------------
性能对比
-----------------------
但是,他这个数据,压缩后,比textfile .gz的还要大一点
parquet格式
textfile的gz格式
我不知道gz格式能不能写,因为他是gz不能分割。我觉得他比parquet慢,于是做了聚合
parquet表,36秒
gz,24秒反而更快
我不知道gz文件能不能写,但是从查询上来看的确更快,通过mr的话.文章来源地址https://www.toymoban.com/news/detail-496546.html
到了这里,关于hive建表,与插入数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!