My Target是使用Informatica ETL工具的Hive表。
Hive早期版本不支持更新。 那么我应该如何在这种情况下对记录进行更新。 使用Hive ACID和事务功能可以使用Hive更新功能。
答案 0 :(得分:1)
Informatica确实支持从Informatica 9.6 HF3版本更新hive表,前提是表格支持ACID,有关更多信息,请参阅此链接(https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions),但我宁愿这样做,分两步进行,
1)识别仅存在于目标中的所有记录以及仅存在于阶段数据中的记录 2)合并这两个并将它们加载到临时表中。 3)最后将临时表重命名为实际目标表名
以上仅适用于SCD类型1实现
答案 1 :(得分:1)
在使用Hive时,更新不是最佳选择,创建中间临时表是更好的设计。更新现有Hive表的步骤 -
答案 2 :(得分:0)
您应该查看事件采购(https://msdn.microsoft.com/en-us/library/dn589792.aspx)。
将您的数据库视为存储事件而不是项目。因此,如果您要在数据库中使用某个counter
对象,而不是将counter
从0更新为1到2等,则只需在增量时插入一个新文档,然后取总和/这些文件的数量。