Вы не можете следить за журналом, потому что даже , если вы сможете его понять, у вас есть проблема с переработкой журнала до , когда у вас была возможность прочитать его.Если журнал не помечен как не урезанный, он будет использован повторно.Например, когда репликация транзакций включена, журнал будет закреплен до тех пор, пока агент репликации не прочитает и только усеченные значения , а затем .
SSIS - это очень широкое понятие, и выражение «использование SSIS для обнаружения изменений» сродни высказыванию «Я буду использовать язык программирования для решения своей проблемы».Подробности как вы бы использовали SSIS?С SSIS или без нее невозможно надежно обнаружить изменения данных в произвольной схеме.Даже модели данных, специально разработанные для обнаружения изменений, имеют проблемы, особенно при обнаружении удалений.
Однако существуют жизнеспособные альтернативы.Вы можете развернуть Change Data Capture и делегировать его самому движку для отслеживания изменений.Поглощая эти обнаруженные изменения и публикуя их для потребителей (через RabbitMQ, если вам интересно), - это , что-то, что SSIS было бы хорошо.Но вы должны понимать, что SSIS плохо справляется с непрерывными задачами в реальном времени.Он предназначен для периодической работы в пакетном режиме, поэтому ваши потребители уведомлений об изменениях будут получать уведомления с пиками, с большими задержками (минутами), когда выполняются задания SSIS.
Для подхода в реальном времени лучшим решением является Сервисный брокер .Одна возможность - SEND
Сообщения Service Broker от триггеров, но я бы не рекомендовал это.Лучшим вариантом было бы, чтобы приложение само опубликовало изменения, явно указав SEND
сообщение, когда оно выполняет изменение данных.С SQL Server 2012 возможно многоадресных сообщений компонента Service Broker другим пользователям SQL Server (включая SQL Server Express).Доставка сообщений SSB полностью транзакционна (при откате транзакции сообщение не отправляется) и не требует двухфазной фиксации с менеджером ресурсов хранилища сообщений.Но для трансляции через RabbitMQ вам нужно будет соединить связь, т.е.RECEIVE
сообщения SSB и преобразование их в уведомления RabbitMQ.