配置单元仅插入事务表

使用仅配置单元插入的交易表有哪些特殊好处?大多数文档仅表明如果您不需要删除或更改功能,请创建此表。这会加快处理速度吗?减少开销?

liyan9991 回答:配置单元仅插入事务表

当前,仅以ORC文件格式支持完整的ACID表。由微管理(也称为INSERT)的事务表支持任何其他存储格式。

因此,如果所有表都以ORC格式存储,则可以继续使用完整的ACID。如果您有其他存储类型,并且需要执行INSERT语句,则微管理表可以为您提供帮助。

也:对于完整的ACID表,压缩由MapReduce作业完成。您可以将Hive配置为将基于查询的压缩器用于主要压缩(如创建新的基础),但是较小的压缩(如合并增量文件)仍由MR和仅MR完成。 对于微管理表,压缩是基于查询的。因此,如果您正在Tez上使用Hive或Spark上的Hive,并且根本不想拥有MR,那就很好了。但是对于完整的ACID表,如果要进行较小的压缩,则需要MapReduce。

要注意的是:真正的ACID表基于查询的次要压缩将很快得到支持,我很确定Parquet将很快支持ACID表。

,

随处可见的是,与完整事务表不同,“仅插入事务表”仅支持数据 insert 操作。

但这并不能说太多。一个人想知道的是: 什么是 transactional 插入操作?

说操作是一种交易,基本上意味着它遵循ACID原则,尤其是其最重要的特性: atomicity (ACID中的A)。 马丁·克莱普曼(Martin Kleppmann)在他的著作《设计数据密集型应用程序》( )中很好地解释了原子性:

”如果事务中止,则应用程序可以确保它 没有进行任何更改,因此可以安全地重试。 ACID原子性的基本特征是能够在出错时中止事务并丢弃该事务中的所有写操作。” Desigining Data Itensive Applications,March 2017,1st edition chapter 7,p. 234

在Hive中,这是通过为每个插入事务创建一个增量目录来完成的,该目录使新数据保持隔离状态,直到事务完成为止。如果有错误,则删除目录,否则,将附加目录。

本文链接:https://www.f2er.com/3156734.html

大家都在问