Hive:在主表上执行递增更新的最佳方法

Hive:在主表上执行递增更新的最佳方法

所以我在Hive中有一个主表,它将存储我的所有数据。

我希望能够每月加载大量数据数十亿行的增量数据更新。将有新数据和更新的条目。

解决此问题的最佳方法是什么,我知道Hive最近升级并支持更新/插入/删除。

我一直在想的是以某种方式找到将要更新的条目并从主表中删除它们然后只插入新的增量更新。但是在尝试此操作后,插入速度非常快,但删除速度非常慢。

另一种方法是使用update语句执行某些操作以匹配主表和增量更新中的键值并更新其字段。我还没试过这个。这听起来也很痛苦,因为Hive必须逐个更新每个条目。

任何人都有任何想法,如何最有效和最有效地做到这一点?我对Hive和数据库很新。


MMTTMM
浏览 1026回答 3
3回答

茅侃侃

通过添加这样的分区过滤器:WHERE partition_col in (select distinct partition_col from increment_data)或者将分区列表作为参数传递并在where子句中使用

SMILET

SCD2在Hive中不受欢迎,因为对于历史数据重新处理,它需要使用> = start_date和<end_date进行非等联接,或者end_date为null。非equi join是一种痛苦。使用date = date通过equi-join连接维度中的所有日期要容易得多。难道,这是我们正在使用的大数据吗?合成密钥在Hive中也不常用,因为它们的生成并不完全并行。使用自然键或GUID(不可排序)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java