Предотвращение чтения строк программой CD C для MySQL, чтобы избежать избыточных данных - PullRequest
1 голос
/ 21 января 2020

Я подключаю базу данных унаследованного приложения к другой базе данных, используя инструмент CD C (я использую Maxwell Zendesk) для чтения данных из базы данных, и другую программу, которую я пишу для записи данных в база данных, созданная в другом месте.

Проблема заключается в том, что когда внешние данные записываются в устаревшую базу данных, инструмент CD C подхватит их. Я хочу предотвратить это, поскольку эти внешние данные уже существуют в другой системе.

Я думал о добавлении столбца ко всем таблицам в устаревшей базе данных, например, под названием _origin, и указании источника каждая строка в этом столбце. Проблема в том, что унаследованное приложение делает много обновлений, поэтому инструмент CD C будет пропускать реальные обновления, поскольку столбец _origin не изменится.

Есть ли способ как-то записать метаданные в MySQL binlog, чтобы указать источник этой указанной c транзакции? Мне нужно было бы выяснить, как читать его с помощью инструмента CD C или модифицировать инструмент CD C для чтения таких метаданных, но я хочу посмотреть, возможно ли это.

Или есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 21 января 2020

Нет, нет возможности записать свои собственные метаданные в binlog. Только сами данные и некоторые переменные сеанса.

Одним из решений может быть, когда вы читаете данные с компакт-диска C для вставки в базу данных назначения, используйте REPLACE вместо INSERT. Синтаксис тот же, но он перезаписывает, а не добавляет, если строка уже существует.

...