Как обработать ошибку ограничения внешнего ключа в соединителе приемника JDBC?

#jdbc #apache-kafka #apache-kafka-connect

Вопрос:

Рассмотрим, что у меня есть 2 таблицы на стороне раковины, например: Таблица учащихся и учителей, где в таблице учащихся есть столбец TeacherID, который имеет отношение внешнего ключа к таблице учителей. В настоящее время у меня есть отдельные темы для сущности «студент» и «учитель», и у меня есть 2 соединителя приемника(для темы «студент» и «учитель»).

Проблема в том, что

  1. Когда я вставляю данные в обе таблицы(сначала таблицу учителей, а затем таблицу учеников с новым вставленным идентификатором учителя), она будет публиковать сообщения в теме кафки.
  2. если соединитель приемника учащихся будет выполнен первым перед соединителем приемника учителей, то задача соединителя приемника учащихся завершится неудачно из-за нарушения внешнего ключа(поскольку в соединителе приемника вновь созданная запись учителя еще не заполнена).

(Я много искал в Интернете, но не нашел способа сделать то же самое. Но какой-то результат, показывающий вложенный разъем JDBC(https://github.com/findinpath/kafka-connect-nested-set-jdbc-sink). Когда я прочитал документацию, я не понял ее содержания. Кроме того, я не могу знать, что это решит мою проблему.)

Как мы можем это решить ? Какой подход мне нужно использовать при реализации?