我有一张历史数据超过TB大小的表,我将每天接收delta(更新信息)记录,这些记录将以GB大小存储并存储在delta表中。现在,我想将增量记录与历史记录进行比较,并使用Delta表中的最新数据更新History表。
在Hive中执行此操作的最佳方法是什么,因为我将处理数百万行。我在网上搜索并找到了以下方法。
http://dev.mysql.com/doc/refman/5.7/en/mysqld-multi.html
但我认为这不是性能方面的最佳方法。
答案 0 :(得分:0)
在最新的配置单元(0.14)中,您可以进行更新。您需要将表保持为ORC格式并通过搜索键进行存储。
哦,我需要添加此链接以获取更多信息: Hive Transactions
另外: 你有一个好的分区键,以便更新只需要在最新的分区上工作吗?做以下事情可能会很好:
从必需分区获取数据到临时表(T1)
假设T2是具有更新记录的新表。需要以与T1
请记住,操作可能不是原子操作,在第5步和第6步发生时,在T1上运行的任何查询都可能有中间结果。