Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
Внимание
Компоненты потока CDC, включая задачу управления CDC, источник CDC и разделитель CDC, устарели. Дополнительные сведения см. в объявлении.
Компоненты отслеживания измененных данных от Attunity для Microsoft SQL Server 2019 Integration Services (SSIS) помогают разработчикам SSIS работать с CDC и уменьшить сложность пакетов CDC.
Компоненты CDC служб SSIS предназначены для работы с компонентом CDC SQL Server, где исходные таблицы являются одной базой данных SQL Server или базой данных Oracle (при использовании Службы Oracle CDC для SQL Server). Поддерживаются секционированные таблицы.
В компоненты входят компоненты потока управления и потока данных, которые рационализируют чтение и обработку информации об изменениях в пакетах служб SSIS. Компоненты можно добавить в библиотеку компонентов в Microsoft SQL Server, но устанавливаются отдельно.
Ниже приведены компоненты захвата данных об изменениях от Attunity.
Компонент потока управления CDC.
Компоненты потока данных CDC.
Установка
В этом разделе описаны процедуры установки компонентов CDC для служб Microsoft SQL Server 2019 Integration Services (SSIS).
Компоненты CDC для SSIS входят в состав Microsoft Change Data Capture Designer and Service for Oracle by Attunity for SQL Server. Скачиваемые компоненты входят в пакет дополнительных компонентов SQL Server. Скачать компоненты пакета дополнительных компонентов можно со страницы Microsoft® SQL Server® 2016 Feature Pack(Пакет дополнительных компонентов Microsoft® SQL Server® 2016).
Поддерживаемые версии
Поддержка версий SQL Server
Компоненты CDC для служб SSIS поддерживаются во всех поддерживаемых версиях Microsoft SQL Server. В настоящее время поддерживаются версии SQL Server с SQL Server 2012 по SQL Server 2017.
Поддержка версий операционной системы
Компоненты CDC для служб SSIS поддерживаются для следующих операционных систем и платформ:
- Windows 8 и 8.1
- Windows 10
- Windows Server 2012 и 2012 R2
- Windows Server 2016
Запуск программы установки
Перед запуском мастера установки убедитесь, что sql Server SQL Server Data Tools закрыт. Затем выполните указания мастера установки.
Перезапуск службы SSIS
После установки компонентов CDC необходимо перезапустить службу служб SSIS, чтобы убедиться, что компоненты работают правильно при разработке пакетов в SQL Server Data Tools.
После установки компонентов отображается сообщение. Нажмите кнопку Да в открывшемся окне.
Удаление компонентов Microsoft CDC
Чтобы удалить источник CDC, разделитель CDC или задачу «Управление CDC», используйте мастер удаления. Если вы используете SQL Server SQL Server Data Tools для разработки пакетов, убедитесь, что sql Server Data Tools закрыт перед запуском мастера удаления.
Льготы
Компоненты CDC для SQL Server Integration Services позволяют разработчикам SSIS легко создавать пакеты SSIS, обрабатывающие данные об изменениях. Эти компоненты расширяют возможности разработчиков служб SSIS по работе с CDC и уменьшают сложность пакетов CDC.
Компоненты CDC в SSIS предоставляют данные об изменениях в форме, удобной для их дальнейшей обработки с целью репликации, загрузки хранилища данных, обновления медленно изменяющихся измерений для OLAP, аудита изменений, а также для других возможных применений. Тип дальнейшей обработки определяется разработчиком служб SSIS.
Компоненты CDC служб SSIS предназначены для работы с функцией CDC SQL Server с таблицами изменений, которые находятся в той же базе данных SQL Server.
Приступая к работе с компонентами отслеживания измененных данных
Типичный пакет CDC обрабатывает изменения в группе таблиц. Часть базового потока управления этого типа пакета CDC показана на следующем рисунке. Этот пакет называется пакетом обработки с постепенной подачей.
Этот поток управления службами SQL Server Integration Services содержит две задачи управления CDC и задачу Поток данных. Первая задача, которая называется Получить диапазон обработки CDC , устанавливает диапазон номеров LSN для изменений, которые обрабатываются в задаче потока данных, которая называется Обработка изменений. Этот диапазон определяется на основании данных, обработанных при последнем выполнении пакета и сохраненных в постоянном хранилище.
Дополнительные сведения об использовании задачи «Управление CDC» см. в разделах CDC Control Task и CDC Control Task Editor.
На следующем рисунке показан поток данных Обработка изменений , задающий общий порядок обработки изменений.
На этом рисунке показаны следующие действия.
Изменения для таблицы X — это источник CDC, который считывает изменения, внесенные в таблицу X в пределах диапазона обработки CDC, определенного в родительском потоке управления.
Разделитель CDC X используется для разбиения изменений на операции вставки, удаления и обновления. В этом сценарии предполагается, что источник CDC настроен для составления суммарных изменений, чтобы различные типы изменений можно было обрабатывать параллельно.
Затем конкретные изменения дополнительно обрабатываются на последующих этапах. На этой иллюстрации изменения записываются в таблицы с использованием нескольких приёмников ODBC, однако в реальных случаях обработка может выполняться иначе.
Дополнительные сведения об источнике CDC см.:
Редактор источников CDC (страница диспетчера соединений)
Редактор источника данных CDC (страница «Столбцы»)
Редактор источника CDC (страница вывода ошибок)
Дополнительные сведения о CDC Splitter см.:
Одним из основных вопросов, требующих внимания при создании пакетов CDC, является взаимодействие обработки изменений с начальной загрузкой (или начальной обработкой) данных.
Компоненты CDC поддерживают три различных сценария начальной загрузки и обработки изменений.
Начальная загрузка выполняется с использованием снимка базы данных. В этом случае обработка изменений начинается с LSN события создания моментального снимка.
Начальная загрузка из замороженной базы данных. В этом случае во время начальной загрузки изменения не вносятся, текущий номер LSN выбирается в рамках периода начальной загрузки и обработка изменений начинается с этого номера LSN.
Начальная загрузка из активной базы данных. В этом случае, пока выполняется начальная загрузка, в базу данных вносятся изменения и нет точного номера LSN, с которого можно начать обработку изменений. В этом случае разработчик пакета начальной загрузки может считать текущее значение LSN базы данных-источника до и после начальной загрузки. Затем при обработке изменений следует соблюдать осторожность с изменениями, произошедшими параллельно начальной загрузке, поскольку некоторые из этих изменений уже были учтены при начальной загрузке (например, операция вставки может завершиться ошибкой дублирования ключа, поскольку вставленная строка уже была считана в процессе начальной загрузки).
На следующем рисунке показан пакет служб SSIS, поддерживающий первые два сценария:
На следующем рисунке показан пакет служб SSIS, поддерживающий третий сценарий:
После выполнения пакета первоначальной загрузки по расписанию многократно запускается пакет инкрементного обновления для обработки изменений по мере того, как они становятся доступными для использования.
Передача состояния обработки CDC из пакета начальной загрузки в пакет непрерывной загрузки, а также между различными задачами в рамках каждого пакета осуществляется с помощью специальной строковой переменной пакета SSIS. Значение этой переменной называется состоянием CDC; оно отражает текущее состояние обработки CDC для групп таблиц, обрабатываемых пакетами начальной и потоковой загрузки.
Значение переменной состояния CDC должно храниться в постоянном хранилище. Оно должно считываться перед началом обработки CDC и сохраняться с текущим состоянием после завершения обработки. Задача загрузки и сохранения состояния CDC может выполняться разработчиком служб SSIS, но компонент управления CDC может автоматизировать эту задачу, сохраняя значение состояния CDC в таблице базы данных.
Соображения безопасности
В этом разделе перечислены некоторые соображения по безопасности, связанные с использованием компонентов CDC в службах SSIS.
Авторизация доступа на изменение данных
Пакетам поэтапного обновления требуется доступ к функциям CDC в SQL Server. Такой доступ по умолчанию предоставляется членам предопределенной роли базы данных db_owner . Так как db_owner является привилегированной ролью, при определении экземпляров отслеживания в SQL Server рекомендуется сопоставлять каждому экземпляру отслеживания ограничивающую роль безопасности, чтобы пакет SSIS CDC мог использовать для обработки изменений пользователя с гораздо более ограниченными правами.
Доступ к текущему номеру LSN базы данных CDC
Операции задачи «Управление CDC», помечающие начальный номер LSN для обработки изменений, должны иметь возможность определить текущий номер LSN базы данных CDC. Для поиска LSN компоненты используют процедуру sp_replincrementlsn из базы данных master. Право на выполнение этой процедуры должно быть предоставлено учетной записи входа, используемой для подключения к базе данных CDC в SQL Server.
Доступ к таблице состояний CDC
Таблица состояний CDC используется для автоматического сохранения состояний CDC, которые необходимо обновить с помощью имени входа, используемого для подключения к базе данных CDC SQL Server. Поскольку эта таблица создается разработчиком SSIS, укажите системного администратора SQL Server как пользователя, которому разрешено создавать базы данных SQL Server и выполнять задачи администрирования и обслуживания. Кроме того, системный администратор SQL Server, работающий с базами данных с поддержкой CDC, должен быть осведомлен о технологии и реализации SQL Server CDC.
Группирование таблиц для обработки CDC
Размер проектов баз данных меняется от нескольких таблиц до нескольких тысяч таблиц. Во время разработки пакетов начальной загрузки и пакетов CDC разумно группировать таблицы по группам меньшего размера для упрощения управления и повышения эффективности. В этом разделе перечислены различные аспекты, влияющие на сортировку таблиц по малым группам, где таблицы в каждой изначально загружаются, а затем обновляются как группа.
В шаблонах CDC, поддерживаемых компонентами CDC, предполагается, что такое группирование уже определено. Каждая группа определяет отдельный контекст CDC, который поддерживается отдельно от остальных групп. Для каждой группы создаются пакеты первоначальной загрузки и постепенных обновлений. Инкрементальные обновления планируются к периодическому выполнению в зависимости от скорости изменений, ограничений обработки (например, загрузки ЦП и операций ввода-вывода, а также влияния на другие системы) и требуемой задержки.
Таблицы группируются по следующим принципам.
В соответствии с целевой базой данных. Все таблицы, которые записываются в различные целевые базы данных или проходят различную обработку, должны помещаться в различные группы CDC.
Таблицы, которые связаны с ограничениями ссылочной целостности, должны помещаться в одну группу, чтобы избежать проблем со ссылочной целостностью в целевой базе данных.
Таблицы, для которых допустима высокая задержка, можно помещать в одну группу, чтобы обрабатывать их с меньшей частотой и уменьшить общую загрузку системы.
Таблицы с высокой частотой изменений следует размещать в группах меньшего размера, а таблицы с низкой частотой изменений можно размещать в группах большего размера.
Для каждой группы CDC создаются следующие два пакета.
Пакет начальной загрузки, который считывает весь диапазон данных из исходных таблиц и применяет их к целевым таблицам.
Пакет потоковых обновлений, который считывает изменения из исходных таблиц и применяет их к целевым таблицам. Этот пакет следует регулярно выполнять по расписанию.
Состояние CDC
С каждой группой CDC связано состояние, которое представляется строкой особого формата. Дополнительные сведения см. в разделе CDC Control Task. В следующей таблице показаны возможные значения состояния CDC.
| Состояние | Описание |
|---|---|
| 0-(INITIAL) | Состояние, существующее до запуска каких-либо пакетов в текущей группе CDC. Это состояние также имеет место, если состояние CDC пусто. Дополнительные сведения об операциях задачи «Управление CDC» см. в разделе CDC Control Task. |
| 1-ILSTART (запуск начальной загрузки) | Это состояние, которое имеет место при запуске пакета начальной загрузки. Это происходит после вызова операции MarkInitialLoadStart для задачи управления CDC. Дополнительные сведения об операциях задачи «Управление CDC» см. в разделе CDC Control Task. |
| 2- ILEND (завершение начальной загрузки) | Это состояние, которое имеет место при успешном завершении пакета начальной загрузки. Это происходит после вызова операции MarkInitialLoadEnd в задаче «Управление CDC». Дополнительные сведения об операциях задачи «Управление CDC» см. в разделе CDC Control Task. |
| 3-ILUPDATE (обновление начальной загрузки) | Это состояние, которое имеет место после первого выполнения пакета обновления после начальной загрузки, пока продолжается обработка диапазона начальной обработки. Это происходит после вызова операции GetProcessingRange для задачи управления CDC. Если используется столбец _$reprocessing , он получает значение 1, чтобы показать, что пакет может повторно обрабатывать строки, уже находящиеся в целевой базе данных. Дополнительные сведения об операциях задачи «Управление CDC» см. в разделе CDC Control Task. |
| 4-TFEND (завершение поточного обновления) | Это состояние, которое ожидается при регулярных запусках CDC. Оно показывает, что предыдущее выполнение завершилось успешно и можно начинать новое выполнение с новым диапазоном обработки. |
| 5-TFSTART (запуск обновления в режиме постепенной доставки) | Это состояние, которое имеет место при последующих выполнениях пакета обновления после вызова операции GetProcessingRange в задаче «Управление CDC». Это указывает на то, что обычный запуск CDC был начат, но не завершён или ещё не завершился корректно (MarkProcessedRange). Дополнительные сведения об операциях задачи «Управление CDC» см. в разделе CDC Control Task. |
| 6-TFREDO (повторная обработка инкрементальных обновлений) | Это состояние операции GetProcessingRange , наступающее после TFSTART. Это указывает на то, что предыдущий запуск завершился неуспешно. Если используется столбец __$reprocessing, он получает значение 1, чтобы показать, что пакет может повторно обрабатывать строки, уже находящиеся в целевой базе данных. |
| 7-ERROR | Группа CDC находится в состоянии ERROR. |
Ниже представлена диаграмма состояний для компонентов CDC. Состояние ERROR наступает при переходе в состояние, которое не предусмотрено. Ожидаемые состояния показаны на следующем рисунке. Тем не менее на диаграмме не показано состояние ERROR.
Например, в конце выполнения пакета начальной загрузки при попытке установить состояние ILEND, если состояние равно TFSTART, группа CDC находится в состоянии ошибки, а пакет пошагового обновления не выполняется (а пакет начальной загрузки выполняется).
После успешного выполнения пакета начальной загрузки пакет инкрементального обновления многократно запускается по заранее заданному расписанию для обработки изменений в исходных таблицах. Каждый запуск пакета обновления Trickle-Feed представляет собой запуск CDC.
В этом разделе
Связанные задачи
Связанные материалы
- Установка Microsoft SQL Server 2012 Change Data Capture для Oracle с помощью Attunity
- Устранение проблем с конфигурацией в Microsoft Change Data Capture for Oracle с помощью Attunity
- Устранение ошибок экземпляра CDC в Microsoft Change Data Capture for Oracle с помощью Attunity
- CDC для баз данных Oracle с помощью SQL Server Integration Services 2012 (видео по SQL Server)
- Задача управления CDC