hadoop - 与 Hadoop 同步数据库提取

标签 hadoop hbase etl apache-nifi

假设您有一个周期性任务,从数据库中提取数据并将该数据加载到 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/

相关文章:

hadoop - PIG Join包括必须使用袋外值过滤的袋

hadoop - 等待区域服务器计数稳定;当前已 checkin 0

hadoop - 启动Hbase 1.0.0 报错

sql-server - SQL Server Express 和创建的 SSIS 包

sql-server - 使用SSIS将服务器A的每个表的数据动态复制到服务器B

hadoop - 创建 SPARK RDD(HDFS 上的文件)和调用 Action 时出错

java - MapReduce 设计模式中的 Mapper 类和 Reducer 类

java - 启动 HBASE,java.lang.ClassNotFoundException : org. apache.htrace.SamplerBuilder

java - 通过忽略 Java 中开始和结束行的一部分来扫描 HBase 行

ruby - 高性能 ETL 平面文件提取的更好解决方案?