JDBC source connector - SQL server 질문
항상 답변 감사합니다.
SQL server 에서 JDBC source connector 연결 구성중에 질문있어 드립니다.
환경세팅은 강의와 유사하게 진행하였습니다.
timestamp와 incrementing모드로 Config json을 구성하였고
MS-SQL DB는 connect_dev 계정에 om 데이터베이스의 customers 테이블을 사용하였습니다.
쿼리는 변환하여 삽입하였습니다
{
"name": "mssql_jdbc_source_customers",
"config": {
"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"tasks.max": "1",
"connection.url": "jdbc:sqlserver://localhost:1433;databaseName=om;trustServerCertificate=true",
"connection.user": "connect_dev",
"connection.password": "connect_dev",
"topic.prefix": "mssql_jdbc_",
"table.whitelist": "om.customers",
"poll.interval.ms": 10000,
"mode": "timestamp+incrementing",
"incrementing.column.name": "customer_id",
"timestamp.column.name": "system_upd"
}
}config 역시 강의와 유사하나 차이점으론 trustServerCertificate=true 옵션을 줘서 ssl 인증 문제를 회피하였습니다.
이후 질문 드리고 싶은 주요 문제로는
아래의 에러메시지
ERROR [mssql_jdbc_source_customers|task-0] WorkerSourceTask{id=mssql_jdbc_source_customers-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:195)
org.apache.kafka.connect.errors.ConnectException: Cannot make incremental queries using timestamp columns [system_upd] on [] because all of these columns nullable.
at io.confluent.connect.jdbc.source.JdbcSourceTask.validateNonNullable(JdbcSourceTask.java:546)
at io.confluent.connect.jdbc.source.JdbcSourceTask.start(JdbcSourceTask.java:196)
at org.apache.kafka.connect.runtime.WorkerSourceTask.initializeAndStart(WorkerSourceTask.java:225)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:186)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:243)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
timestamp columns [system_upd] on [] because all of these columns nullable. (null이라 문제다)
가 원인이라는건데,
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'customers' AND COLUMN_NAME = 'system_upd'해당 쿼리를 통해 IS_NULLABLE 컬럼이 NO로 되어있음(=null이 아님)을 확인하였습니다.
이 null 문제의 경우 다른 생각해 볼 접근방법이 뭐가 있을지 여쭤보고싶습니다.
incrementing 모드에서는 토픽생성까지 성공하였습니다.
감사합니다.
답변 1
1
오류로 봐서는 system_upd 컬럼이 nullable로 설정되어서 그런것 같은데, information schema로 메타 테이블로 확인하셨을 때는 nullable로 확인이 확실히 되신 건가요?
만약 그렇다면 config 파일에 validate.non.null: false 를 추가해 보시지요.
validate.non.null은 jdbc connector 기동시에 timestamp column의 not null 여부를 체크하는지 여부를 설정하며 false로 설정 시 기동시 체크하지 않습니다.
계속 csv파일을 폴더로 인식하는 중입니다.
0
69
2
cdc failover
0
70
2
avro plugin에 안보이는거 같아요
0
70
2
zookeeper가 실행이 안되요
0
79
3
Debezium CDC Source Connector 이벤트 메시지
0
87
2
재 질문! 다른 connector가 동일 토픽 사용
0
68
2
메시지 발행이 안 됩니다.
0
78
2
디비지움 오프셋 리셋
0
96
2
mysql_jdbc_oc_sink_customers_02.json 에서 오류납니다.
0
72
3
io.debezium.connector.mysql.MySqlConnector 질문
0
68
2
Debezium 이벤트 메시지 발행 시 성공여부
0
82
2
connect 구동 오류
0
99
3
CDC Connect 통시에서의 암호화 관련 하여 문의 드립니다.
0
122
2
GCSSinkconnector
0
66
1
debezium source connector에서 `poll.interval.ms` 파라미터
0
145
2
자문자답: JDBC Sink Connector가 PostgreSQL의 Schema를 바라보지 않습니다.
0
214
1
table.name.format에 관하여..
0
197
2
binlog와 offset 관련 추가 질문드립니다
0
152
1
Debezium cdc source for MSSQL-Server [등록오류]
0
192
2
http http://localhost:8083/connector-plugins 시 플러그인이 보이지 않습니다.
0
192
2
안녕하세요 sink connector 생성 config 관련 질문입니다.
0
165
2
수강환경 VirtualBox -> Docker
0
231
2
일반적인 예시들이 궁금해서 질문 남깁니다.
1
148
2
debezium connector schema 찾지 못하는 오류
0
436
2





