当前位置: 首页 > news >正文

hive小文件问题

以此表为例子

CREATE TABLE `saylo.t_saylo_user_feature`(`user_id` string, `session_id` string, `value` string)
PARTITIONED BY ( `app_id` string, `datetime` timestamp)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
TBLPROPERTIES ('hive.merge.size.per.task'='256000000', 'hive.merge.smallfiles.avgsize'='16000000', 'hive.merge.sparkfiles'='true')

1. SERDE

建议使用Orc,读写性能更好

2. 文件大小

‘hive.merge.size.per.task’=‘256000000’, 最大文件大小,影响最终的文件个数
‘hive.merge.smallfiles.avgsize’=‘16000000’, 触发合并的最小文件大小

3. 文件合并

INSERT OVERWRITE TABLE t_saylo_user_feature PARTITION(app_id=‘30005’,datetime=‘2025-07-09 00:00:00’)
SELECT user_id,session_id,value FROM t_saylo_user_feature
WHERE app_id=‘30005’ AND datetime=‘2025-07-09 00:00:00’;

或者
ALTER TABLE t_saylo_user_feature_test PARTITION(app_id=‘30005’,datetime=‘2025-07-03 20:00:00’) CONCATENATE;

http://www.lryc.cn/news/583812.html

相关文章:

  • RabbitMQ 消息队列:从入门到Spring Boot实战
  • MySQL(127)如何解决主从同步失败问题?
  • XMAPP MySQL 启动后自动停止
  • adb 简介与常用命令
  • 线上事故处理记录
  • mx6ull-裸机学习实验15——RTC 实时时钟实验
  • 浪潮CD1000-移动云电脑-RK3528芯片-2+32G-开启ADB ROOT破解教程
  • MySQL断开连接后无法正常启动解决记录
  • 第一次搭建数据库
  • 壁仞 k8s 兼容
  • 力扣hot100速通(7.9)|49.字母异位词分组 128.最长连续序列 283.移动零 11.盛最多水的容器 42.接雨水
  • Swift 图论实战:DFS 算法解锁 LeetCode 323 连通分量个数
  • 力扣面试150题--全排列
  • leetcode 3440. 重新安排会议得到最多空余时间 II 中等
  • Leetcode力扣解题记录--第42题 接雨水(动规和分治法)
  • 图解LeetCode:79递归实现单词搜索
  • 【LeetCode100】--- 1.两数之和【复习回滚】
  • 力扣-73.矩阵置零
  • 力扣-54.螺旋矩阵
  • 每天一个前端小知识 Day 29 - WebGL / WebGPU 数据可视化引擎设计与实践
  • C++11 std::is_sorted 和 std::is_sorted_until 原理解析
  • 邀请函 | 知从科技邀您共赴2025 RISC-V 中国峰会
  • 使用 Qlib 获取股票数据
  • 从零开始的语言模型构建 CS336 第一课(一)
  • 数字孪生系统如何助力汽车零部件企业实现虚拟智控
  • Allegro PCB 手动添加元器件全流程解析
  • Pytest 预期失败测试:如何标记“已知问题”用例
  • HTTP 请求体类型详解:选择最适合的数据提交格式
  • 西部数据WD授权代理商-深圳同袍存储科技有限公司
  • QT6 源(160)模型视图架构里的树表视图 QTreeView 篇一:本类的属性, public 与 protected 成员函数 ,