작성
·
399
0
안녕하세요, 도원님.
좋은 강의 덕분에 MSA 관련 지식이 많이 느는 것 같아 감사합니다.
다름이 아니라, kafka sink connector 쪽 관련해서 문의드리고 싶은 내용이 있어 질문을 올리게 되었습니다.
confluent 의 kafka sink connector 공식 문서를 봤을 때, sink connector 는 at least once delivery 를 보장한다고 하는데, 만약 그런 경우가 발생하면 실제로 같은 데이터가 2번 적재되는 현상이 생길 거 같습니다.
이런 경우를 위해 따로 처리를 하는 로직을 넣어야하는지, 아니면 그냥 sink connector 내부에서 밀어넣었는데 에러가 나고 이를 넘기는 방향으로 처리를 하는지 여쭤보고 싶습니다.
답변 1
2
안녕하세요, 이도원입니다.
kafka sink connector를 생성하실 때, insert.mode를 이용하여 insert를 할 지 update를 할 지 선택할 수 있습니다.
https://docs.confluent.io/kafka-connect-jdbc/current/sink-connector/sink_config_options.html
update를 하실 때의 기준의 기존 데이터의 저장 된 시간과 차이가 있을 경우에 업데이트 하게 되는데, 이를 위해 update date 컬럼을 같이 지정해 주시면 됩니다.
감사합니다.