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;

相关推荐
jasnet_u12 分钟前
在Hadoop3.3.6上搭建Hive3.1.2
hive·hadoop
麦聪聊数据17 小时前
企业数据流通与敏捷API交付实战(一):ETL、CDC与API调用对比
数据库·数据仓库·低代码·restful·etl
Francek Chen21 小时前
【大数据存储与管理】分布式数据库HBase:06 HBase编程实践
大数据·数据库·hadoop·分布式·hbase
二进制_博客1 天前
使用Datax批量将mysql数据导入hive
数据库·hive·mysql
RestCloud1 天前
2026年数据管道可观测性:ETL监控从被动告警到主动预警
数据仓库·数据安全·etl·数据集成·数据同步·数据监控
talen_hx2961 天前
《零基础入门Spark》学习笔记 Day 10
大数据·hive·笔记·学习·spark
二进制_博客1 天前
Spark On Hive 系统整合
大数据·hive·spark
源码之家1 天前
计算机毕业设计:基于Python的二手车数据分析可视化系统 Flask框架 可视化 时间序列预测算法 逻辑回归 requests 爬虫 大数据(建议收藏)✅
大数据·hadoop·python·算法·数据分析·flask·课程设计
QEasyCloud20221 天前
企业数据仓库建设:架构设计与实施方法
数据仓库
泯仲2 天前
项目实践|ETL Pipeline 完整解析:从多源文档到向量库的全链路实现
数据仓库·agent·etl·rag