sql - 使用Sqoop导入hadoop时如何识别sql server中删除的记录

标签 sql sql-server hadoop hive sqoop

当使用 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/

相关文章:

c# - 不能向表中添加一个以上的用户。标识插入设置为关闭

hadoop - 由于连接拒绝连接到端口49941, yarn 应用程序失败

hadoop - Hbase 分布式模式可以使用本地文件系统代替DFS吗?

java - 如何修复在 Spring Boot 中运行 sql 查询?

sql - 临时数据和存储库模式

sql server 2005错误输出

java - 使用 JDBC 获取多个结果集不起作用

bash - “moveToLocal: Option ' -moveToLocal'尚未执行什么操作。”手段?

mysql - 如何通过另一个表检查 "duplicates"?

mysql - 如何在单个查询中连接不同表的多个随机值?