hive - 为什么需要对 Hive 表进行分桶以支持 ACID 事务?
问题描述
我想知道为什么需要对 hive 表进行存储以支持 ACID 事务。这只是一些蜂巢怪癖吗?还是背后有什么原因?
解决方案
以下是有关 hive 压实机的一些信息:
压缩器运行后台 MapReduce 作业以压缩 delta 和基本文件。有两种类型的压缩:主要和次要。次要压缩将许多小的 delta 文件合并为一个大的 delta 文件。主要压缩更昂贵,它需要增量文件并将它们与基本文件合并。所有合并都是通过创建一个新文件并删除旧文件来进行的。有一个特殊的清洁过程可以做到这一点。对每个桶分别进行压缩。Base 和 Delta 文件是按桶创建的。
更多信息:https ://cwiki.apache.org/confluence/display/Hive/Hive+Transactions
因此,桶越多,压缩越快。
推荐阅读
- java - 如何在 JPA 中进行保存更新记录并防止唯一密钥违规?
- python - Pandas - 合并具有“无关”值的数据框
- java - AVRO 使用 Hadoop 添加记录压缩级别
- windows-10 - 文件如何添加到 OpenFiles
- python - RuntimeError:张量必须是二维的
- angular - 在父组件中显示来自 chlid 组件的按钮的结果 - Angular
- python-3.7 - 安装pandas和scipy时如何修复错误“错误:命令错误退出状态1”
- tensorflow - 标量和图形绘图的 Keras 层通道乘法
- daterangepicker - 单击到外部时,日期范围选择器可以保持打开状态吗?
- node.js - 使用 ESP-IDF 从 node.js 服务器发送图像到 ESP32