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

ha5z0ras  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(420)

假设我们在sqoop中使用增量导入将数据从rdms导入到hadoop,并且我们之前在hadoop中导入的一些数据在rdms中得到了更新,当我们再次使用sqoop增量导入导入时,我们也得到了hadoop中已经存在的最近更新的数据,这导致了数据重复,那么,在这种情况下使用sqoop导入数据时,我们如何避免数据重复呢?

u3r8eeie

u3r8eeie1#

hadoop是一读多写(worm)方法,增量加载需要有计划的策略。您可以遵循以下准则并验证您当前的需求
如果表很小(几千条记录),并且没有太多的列,最好刷新整个表。这样会更快更安全。
如果表太大并且增量加载有add/update/delete操作,您可以考虑暂存delta并执行(左外)连接以重新创建数据集和插入覆盖。确保保留历史位置以供验证。
为了获得更好的性能,还可以采用第三种方法。对于大表和大增量,可以在sqooping和fetch每个增量的日期时创建一个版本号,并将其放入增量目录中。合并所有满负荷和增量负荷,应用秩函数查看最新记录。这也可以通过视图实现。

相关问题