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;

相关推荐
早睡早起早日毕业4 小时前
大数据管理与应用系列丛书《大数据平台架构》之吃透HBase:从原理到架构的深度解剖
hadoop·hbase
b***676411 小时前
深入解析HDFS:定义、架构、原理、应用场景及常用命令
hadoop·hdfs·架构
lisw0513 小时前
社区数据仓库的可持续连接性!
大数据·数据仓库·人工智能·机器学习
howard200513 小时前
6.5 Hive查询优化:执行计划与性能初探
hive·性能优化·执行计划
大数据0013 小时前
SCD缓慢变化维Type1-Type3
hive·scd
B站计算机毕业设计之家13 小时前
电商数据实战:python京东商品爬取与可视化系统 大数据 Hadoop spark 优秀项目(源码)✅
大数据·hadoop·python·机器学习·spark·echarts·推荐算法
p***434814 小时前
后端在消息系统中的顺序保证
数据库·数据仓库·docker
e***582314 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
en-route1 天前
维度建模之星型模式(Star Schema)
数据仓库
en-route1 天前
深入理解数据仓库架构:ODS、DWD、DWS 和 ADS 层的定义与应用
大数据·数据仓库