Hive 更新配置单元事务表中的数据如何导致在HDFS中创建/更新文件

Hive 更新配置单元事务表中的数据如何导致在HDFS中创建/更新文件,hive,avro,Hive,Avro,通过在配置单元中启用事务,我们可以更新记录。假设我的配置单元表使用AVRO格式 hive如何更新AVRO文件并在不同的服务器上再次复制它们(因为复制系数为3) 我找不到一篇好文章来解释这一点,以及在蜂箱中使用酸的后果。由于HDFS建议用于不更新或仅追加文件,因此在这两者之间更新记录是如何工作的 请注意。表的数据存储在一组基本文件中。新记录、更新和删除存储在增量文件中。将为更改表的每个事务(或在Flume或Storm等流媒体代理的情况下,为每批事务)创建一组新的增量文件。在读取时,读取器合并基本

通过在配置单元中启用事务,我们可以更新记录。假设我的配置单元表使用AVRO格式

hive如何更新AVRO文件并在不同的服务器上再次复制它们(因为复制系数为3)

我找不到一篇好文章来解释这一点,以及在蜂箱中使用酸的后果。由于HDFS建议用于不更新或仅追加文件,因此在这两者之间更新记录是如何工作的


请注意。

表的数据存储在一组基本文件中。新记录、更新和删除存储在增量文件中。将为更改表的每个事务(或在Flume或Storm等流媒体代理的情况下,为每批事务)创建一组新的增量文件。在读取时,读取器合并基本文件和增量文件,在读取时应用任何更新和删除

随后,主压缩会定期将较大的增量文件和/或基本文件合并到另一个基本文件中,这将加快进一步的表扫描操作

插入/更新/删除的数据会定期压缩,以节省空间并优化数据访问

ACID事务功能目前有以下限制:

  • 它仅适用于ORC文件。开源中有一个JIRA来添加对拼花桌的支持
  • 它仅适用于未排序的带扣表格
  • 事务不支持插入覆盖
  • 它不支持开始、提交或回滚事务
  • 不建议将其用于OLTP
  • ACID不支持AVRO文件,ACID表的HDFS块替换策略也相同

    下面的链接有助于理解配置单元中的ACID表