Hive的文件合并

背景:Flink数据写入到stage层,然后再入ods层,中间导致hive数据实时性不强,随后做优化,Flink之间以orc格式写入到hive

问题:单表日800亿数据量,产生过多的小文件,影响Impala查询

解决:对hive小文件进行合并,

ALTER TABLE lt_ipsy_xdr_temp PARTITION (day=20230829, hour=9,type=4) CONCATENATE;

目前大数据平台hdfs数据存储情况:

数据仓库中的表:

1.stg层是把flink应用程序写入的数据load进入的;

2.ods层表名称中包含ai的表是从mysql导入的;

/_SCRATCH0 这些目录是sqoop 把mysql数据导入hive时生成的临时目录,可以删除。

3.stg 和 ods 的 tb_bu_dc_monitor_day 是外部表,其他层的表都是内部表;

4.stg层是原始数据,没有经过压缩处理,ods及以后其他各层都是orc格式

使用hive concatenate (外部表不可用,内部表可用,orc可用,分桶表不可用)

使用方式:

#1.设置文件最小大小(需要设置,否则合并操作可能会不理想):

SET mapreduce.input.fileinputformat.split.maxsize=256

#对于非分区表

alter table A concatenate;

#2.对于分区表

ALTER TABLE lt_ipsy_xdr_temp PARTITION (day=20230829, hour=9,type=4) CONCATENATE;

因为分桶表不适用,所以可以采用覆写的方式

INSERT OVERWRITE TABLE table

PARTITION (day=20230908,hour=9,datatype=4)

SELECT

a,b,c,d,e

FROM table

where day=20230908 and hour=9 and datatype=4;

相关推荐
默 语5 小时前
Spring Boot 3.x升级踩坑记:到底值不值得升级?
hive·spring boot·后端
ha_lydms8 小时前
AnalyticDB导入MaxCompute数据的几种方式
大数据·数据仓库·阿里云·dataworks·maxcompute·odps·analyticdb
ha_lydms11 小时前
2、Spark 函数_a/b/c
大数据·c语言·hive·spark·时序数据库·dataworks·数据开发
是阿威啊1 天前
【第二站】本地hadoop集群配置yarn模式
大数据·linux·hadoop·yarn
好大哥呀1 天前
Hadoop yarn
大数据·hadoop·分布式
红队it1 天前
【数据分析】基于Spark链家网租房数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
java·数据库·hadoop·分布式·python·数据分析·spark
本旺2 天前
【数据开发离谱场景记录】Hive + ES 复杂查询场景处理
hive·hadoop·elasticsearch
莫叫石榴姐2 天前
Doris为2.1版本,但json_each不可以用解决方法
数据仓库·json
无泪无花月隐星沉2 天前
uos server 1070e部署Hadoop
大数据·运维·服务器·hadoop·分布式·uos·国产化os
悟能不能悟3 天前
springboot全局异常
大数据·hive·spring boot