hive ACID事务得应用场景

发布时间 2023-11-09 09:43:42作者: 所向披靡zz

 Hive的ACID语义可以完成以下使用场景:

1、流数据的接入。许多用户都使用 Apache Flume, Apache Storm, or Apache Kafka 将流式数据导入Hadoop集群。 这些工具都是每秒百万行级的数据写入,而Hive只能每十五分钟到一个小时添加一次分区。快速的增加分区会对表中的分区数量形成压力。当然可以事先创建好分区再将数据导入,但这样会引起脏读,而且目录下生成的小文件会对namenode造成很大的压力。而新特性可以很好的解决上述问题。

2、减少维度的变化。 减少多维表的变化。

3、数据的更新。INSERT, UPDATE。

4、通过SQL MERGE 批量的更新。

 

限制条件:

1、默认事务是关闭的,需要设置开启。(hive3.0之后默认创建表就是事务表)

2、要是使用这些特性,表必须是分桶的。

3、目前只支持ORC 的文件格式。参考:ORC File Format存储格式 和 ORC file format

4、BEGIN, COMMIT, ROLLBACK 暂时不支持,所有操作自动提交。

5、必须这是事务管理器 org.apache.hadoop.hive.ql.lockmgr.DbTxnManager ,否则事务表无法工作。

6、目前支持快照级别的隔离。就是当一次数据查询时,会提供一个数据一致性的快照。

7、LOAD DATA. 语句目前在事务表中暂时不支持。