对于flume的增量抽取,首先想到的就是常用的那几种方法,监控日志,触发器,版本号,时间戳等等,虽然可以实现,但都对数据源有了一定限制,假如客户的系统内部表没有那些东西,这就是一件很难搞的事了,毕竟对方数据库不能随便动。
这个时候可以采用 $@$,它可以表示增量列上一次查询的值。,将它加入sql语句中所查询的数据就实现了增量,当然在navicat中使用是不支持这个符号的,flume可能封装了一些方法对$@$进行了解析,在这方面并没有太多了解。
a1.channels=ch1
a1.channels.ch1.type=memory
a1.sources = src-1
a1.sources.src-1.channels=ch1
a1.sources.src-1.type = org.keedio.flume.source.SQLSource
a1.sources.src-1.run.query.delay=60000
a1.sources.sql-source.start.from=0
#所采集数据库的地址和数据库名
a1.sources.src-1.hibernate.connection.url=
#数据库用户名
a1.sources.src-1.hibernate.connection.user =
#数据库密码
a1.sources.src-1.hibernate.connection.password =
a1.sources.src-1.hibernate.connection.autocommit = true<