使用sqoop将数据从RDMS导入到hadoop时,如何处理重复记录?

时间:2019-01-23 09:54:36

标签: hive sqoop

假设如果我们在sqoop中使用增量导入将数据从RDMS导入到Hadoop,并且早先已经在hadoop中导入的某些数据在RDMS中进行了更新,而当我们再次使用sqoop增量导入进行导入时,我们也会得到最近更新的数据, Hadoop中已经存在导致数据重复的数据,那么在这种情况下使用sqoop导入数据时如何避免数据重复?

1 个答案:

答案 0 :(得分:0)

Hadoop被编写为多次读取(WORM)方法,并且增量负载需要计划的策略。您可以遵循以下准则,并验证您当前的需求

  1. 如果表很小(几千条记录)并且没有太多列,则最好刷新整个表。这样可以更快,更安全地工作。
  2. 如果表太大,并且增量负载具有添加/更新/删除操作,则可以考虑暂存增量并执行(左外部)联接以重新创建新数据集并插入覆盖。确保保留用于验证的历史记录位置。
  3. 有第三种方法,也可以遵循以提高性能。对于大型表和大型delta,您可以在同时为每个delta抓取和获取日期并将其停放在delta目录中的同时创建版本号。合并所有满负荷和增量负荷并应用等级功能以查看最新记录。这也可以通过视图来实现。