2016-07-17 1 views
0

현재 Oracle DB에서 레코드를 폴링하기 위해 Kafka JDBC 커넥터를 사용하고 있습니다. 커넥터 속성은 타임 스탬프 모드를 사용하도록 설정되었으며 속성에서 단순 선택 쿼리를 제공합니다 (where 절을 사용하지 않음).Kafka JDBC 커넥터가 새 커밋을 선택하지 않음

그러나 현재 커넥터를 인스턴스화 할 때 초기 쿼리가 모든 레코드를 가져와 Kafka 소비자에게 게시하는 것을 볼 수 있지만 오라클 db에 대한 새로운 커밋은 선택되지 않고 커넥터 만 새로운 정보를 찾지 않고 폴링을하고 오프셋을 유지합니다.

커넥터에 예외가 발생하지 않으며 db 이외의 문제가 발생하지 않아 db에서 새 커밋을 선택하지 않습니다.

내가 증명할 수없는 한 가지 사실은 오라클 db의 필드가 모두 null을 허용한다는 것입니다. 그러나 나는 timestamp 필드에 대해 그것을 테스트 해 보았는데 아무 효과가 없었으며 같은 행동이 계속되었습니다. 나는 또한 벌크 모드에서 테스트를했고 잘 작동하고 시스템에 대한 레코드를 복제 할 수 없기 때문에 대량 모드를 사용할 수는 없지만 새로운 커밋을 선택합니다.

커넥터가 타임 스탬프 모드에 대한 새로운 커밋을 선택할 수없는 이유는 누구입니까?

답변

0

속성 파일은 어떻게 생겼습니까? 증분 열 또는 시간 소인 열을 사용해야합니다. 타임 스탬프 열을 사용하는 경우 커밋시 업데이트됩니까? null과 관련하여 쿼리를 조정하여 null 열을 값과 병합 할 수 있습니다. 또는 null 입력 가능 열을 허용하는 설정이 있다고 생각합니다.

관련 문제