如何在使用Sqoop导入hadoop时识别sql server中已删除的记录
当使用Sqoop将数据从sql server或任何RDBMS数据库导入hadoop时,我们可以使用增量追加或上次修改或一些自由形式查询来获取新追加的记录或修改的记录 我们是否可以识别已删除的记录?考虑到记录何时被删除,它将不存在于sql表中 一种解决方法是使用Sqoop加载完整的表,并与配置单元中的上一个表进行比较如何在使用Sqoop导入hadoop时识别sql server中已删除的记录,sql,sql-server,hadoop,hive,sqoop,Sql,Sql Server,Hadoop,Hive,Sqoop,当使用Sqoop将数据从sql server或任何RDBMS数据库导入hadoop时,我们可以使用增量追加或上次修改或一些自由形式查询来获取新追加的记录或修改的记录 我们是否可以识别已删除的记录?考虑到记录何时被删除,它将不存在于sql表中 一种解决方法是使用Sqoop加载完整的表,并与配置单元中的上一个表进行比较 还有其他最好的方法吗 否,无法使用sqoop获取已删除的记录 更好的解决办法可以是: 在SQL Server表中创建一个boolean字段status(默认值true) 无论何时需要
还有其他最好的方法吗 否,无法使用sqoop获取已删除的记录 更好的解决办法可以是: 在SQL Server表中创建一个
boolean
字段status
(默认值true
)
无论何时需要删除该记录,不要删除,只需使用标记状态更新false
如果您使用的是上次修改的增量导入,您将在HDFS中获得更改后的数据
稍后(在sqqop导入之后),您可以删除所有这些状态为
false
的记录。如果您正在同步整个分区或表,那么您可以在sqoop导入之后识别已删除的记录,然后再使用与现有目标分区或表的完全联接将其合并。目标表/分区中存在的、导入数据中不存在的记录是自上次同步以来在源数据库中删除的记录。增量sqooping不会处理即时删除的记录。有两种方法你可能需要考虑。
请看这个。谢谢开发人员。源代码是另一个系统,我们无法控制它。因此,我认为这种方法不适合我的情况。