当使用 Sqoop 从 sql server 或任何 RDBMS 数据库导入数据到 hadoop 时,我们可以使用增量追加或上次修改或一些自由形式查询来获取新追加的记录或修改的记录。
无论如何我们可以识别已删除的记录吗?考虑到当记录被删除时,它不会存在于sql表中。
一种解决方法是使用 Sqoop 加载完整表并与 hive 中的先前表进行比较。
还有其他最好的方法吗?
最佳答案
不,您不能使用 sqoop 获取已删除的记录。
更好的解决方法可能是:
在您的 SQL Server 表中创建一个 boolean
字段 status
(默认 true
)。
每当您需要删除该记录时,不要删除,只需更新标记状态 false
。
如果您使用的是last-modified
增量导入,您将在 HDFS 中获取更改后的数据。
稍后(在 sqqop 导入之后) 您可以删除所有这些状态为 false
的记录。
关于sql - 使用Sqoop导入hadoop时如何识别sql server中删除的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582371/