假设您有一个周期性任务,从数据库中提取数据并将数据加载到hadoop中。apachesqoop/nifi如何在源数据库(sql或nosql)和目标存储(hadoophdfs或hbase,甚至s3)之间同步数据库?例如,假设在时间a,数据库有500条记录,而在时间b,数据库有600条记录,其中一些旧记录被更新,那么它是否有一种机制,能够有效地知道时间a和时间b之间的差异,即只更新更改的行并添加丢失的行?
xmakbtuz1#
是的,nifi有querydatabasetable处理器,它可以存储状态并以增量方式获取更新的记录。在表中,如果有一些日期列可以在记录更新时更新,则可以在“最大值列”属性中使用相同的日期列,然后处理器将仅提取从上次状态值所做的更改。这是一篇关于QueryDataTable处理器的很棒的文章https://community.hortonworks.com/articles/51902/incremental-fetch-in-nifi-with-querydatabasetable.html
1条答案
按热度按时间xmakbtuz1#
是的,nifi有querydatabasetable处理器,它可以存储状态并以增量方式获取更新的记录。
在表中,如果有一些日期列可以在记录更新时更新,则可以在“最大值列”属性中使用相同的日期列,然后处理器将仅提取从上次状态值所做的更改。
这是一篇关于QueryDataTable处理器的很棒的文章https://community.hortonworks.com/articles/51902/incremental-fetch-in-nifi-with-querydatabasetable.html