2015-03-25 1 views
1

Я уже несколько раз читал настройки CDC features in SQL Server 2012. Существует, однако, очень запутанным графическийКак сохранить данные об изменениях (CDC) SQL Server 2012

magic data warehouse

, что, кажется, показывают, что данные CDC могут быть сохранены в другой базе данных (хранилище данных). Это, однако, не то, что я бы назвал по-настоящему «хранением».

Функциональность ETL отсутствует, когда вы следуете инструкциям по настройке устройства 'data collection'. Мое понимание сбора данных заключается в том, чтобы отслеживать с течением времени активность вашей базы данных, а не возвращаться и просматривать изменения в определенном наборе строк.

Так что мне, должно быть, недостает фундаментальной части логики. Есть ли какая-то волшебная функция CDC для массовой вставки или перемещения данных из cdc changetable (который хранит только 3 дня по умолчанию) или мне нужно написать собственное задание SSIS/ETL для каждой таблицы, которую я настроил для CDC? Я хорошо пишу работу SSIS, но похоже, что это скорее всего не правильный подход. Если кто-нибудь может указать мне на учебник, посвященный хранению данных cdc в другой базе данных или экземпляре, я был бы признателен. Мои поиски просто продолжают указывать мне на сбор данных или cdc, и ни один из них на самом деле не сохраняет 100% истории изменений.

Спасибо за запрос на редактирование. Я думал, что это вводит в заблуждение:

Мои требования следующие:

  1. Capture все изменения в определенном наборе таблицы (CDC на помощь, и он работает)

  2. магазин изменение данных в другой реляционной базе данных в течение 7 лет. то есть. Уметь вернуться к определенной записи и внести все изменения в нее в течение любого периода времени. (Это та часть, которая смущает меня в графическом и видимом решении MSDN). Работу ETL

  3. данных следует, если это возможно сделать в режиме реального времени (не в пакетном режиме или по расписанию)

+0

Помогите мне понять, почему он не «хранит» его? Кроме того, я не понимаю: «Я понимаю, что сбор данных предназначен для отслеживания во времени активности вашей базы данных, а не для возврата и просмотра изменений в определенном наборе строк». Возможно, ваш вопрос будет улучшен, четко указывая на то, что вы пытаетесь выполнить. Это звучит так, как будто у вас есть идеи о том, как долго вам нужно сохранять свои данные и т. Д., Поэтому нажмите кнопку «Изменить» и помогите нам понять, что вам нужно. – billinkc

+0

Отредактировано для наглядности! Спасибо billinkc. – macm

+0

Я думаю, что есть опции как NET и ВСЕ некоторые другие, которые могут быть использованы для проверки того, какие операции вы выполняете на определенной записи, которые могут различаться цифрами от 0 до 5. –

ответ

1

Как технология, CDC в основном используется для облегчения поддержания магазина вторичных данных (например, хранилище данных) обновлены с изменениями, произошедшими на первичной основе. Тем не менее, нет ничего, говоря, что вы не можете делать то, что вы собираетесь делать с CDC. По сути, вы настроите CDC на таблицы, которые вы заинтересованы в отслеживании изменений и звоните cdc.fn_cdc_get_all_changes... или cdc.fn_cdc_get_net_changes... (в зависимости от того, что подходит для вашей ситуации, хотя я предполагаю, что все изменения по вашему описанию) периодически, чтобы получить изменения для этих таблиц, в этот момент вы будете хранить необработанные данные cdc в другую таблицу, которую вы назначили для ее хранения.

Обратите внимание, что требование хранения является грубым. Например, вы не можете просто удалять записи по истечении периода хранения, поскольку пока запись все еще активна, вам нужна непрерывная цепочка изменений обратно к исходной вставке записи.

+0

Ваш ответ говорит только о первом требовании, чтобы я указали, что у меня уже есть бег. Изображение, предоставленное msdn, позволяет полагать, что сохранение изменений в отдельной базе данных является частью установки CDC, но это, похоже, не так. Является единственным вариантом, который по-прежнему настроил вашу собственную специальную работу SIS для этого? – macm

+1

SSIS - это не единственный вариант. Я дал вам имена функций, которые вы будете использовать для получения изменений вручную. И что касается диаграммы, диаграмма подразумевает процесс ETL в DW (как я сказал выше). Вы можете пропустить «T» (т. Е. Преобразование) и просто загрузить необработанные записи CDC в другом месте. И что касается вашего требования в реальном времени, CDC для этого не был построен, но вы могли бы сделать это с тем, что, как я полагаю, было бы большим накладным. Вы можете указать любые конечные точки, которые вы хотите для интервала обработки для функций cdc get. –

Смежные вопросы