假设您有一个周期性任务,从数据库中提取数据并将该数据加载到 Hadoop 中。
Apache Sqoop/Nifi 如何保持源数据库(SQL 或 NoSQL)与目标存储(Hadoop HDFS 或 HBASE,甚至 S3)之间的数据库同步?
例如,假设在时间 A 数据库有 500 条记录,在时间 B 有 600 条记录,其中一些旧记录已更新,它是否有一种机制可以有效地知道时间 A 和时间 B 之间的差异只更新更改的行并添加缺失的行?
最佳答案
是的,NiFi 有QueryDatabaseTable 处理器,它可以存储状态并增量获取已更新的记录。
在您的表中,如果您有一些日期列可以在您的记录更新时更新,那么您可以使用相同日期列 在 Max value columns 属性中,处理器将仅提取从last state value 所做的更改。
这是一篇关于查询数据库表处理器的精彩文章 https://community.hortonworks.com/articles/51902/incremental-fetch-in-nifi-with-querydatabasetable.html
关于hadoop - 与 Hadoop 同步数据库提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021015/