Задание интервала для отслеживания измененных данных

Первой задачей в потоке управления пакета служб Integration Services, который выполняет добавочную загрузку информации об измененных данных, является вычисление конечных точек интервала изменений. Эти конечные точки имеют значения datetime и сохраняются в переменных пакета для дальнейшего использования в пакете.

ПримечаниеПримечание

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

Законченные полнофункциональные образцы, в которых показано использование отслеживания измененных данных в пакетах, см. в образцах служб Integration Services в разделе Codeplex.

Настройка переменных пакета для конечных точек

Прежде чем настраивать задачи «Выполнение SQL» для вычисления конечных точек, необходимо определить переменные пакета, в которых будут храниться конечные точки.

Настройка переменных пакета

  1. В среде Business Intelligence Development Studio откройте новый проект служб Integration Services.

  2. В окне Переменные создайте следующие переменные:

    1. Создайте переменную с типом данных datetime для хранения начальной точки интервала.

      В этом примере используется имя переменной ExtractStartTime.

    2. Создайте переменную с типом данных datetime для хранения конечной точки интервала.

      В этом примере используется имя переменной ExtractEndTime.

Если конечные точки вычисляются в главном пакете, который управляет несколькими дочерними пакетами, можно использовать конфигурации переменных родительского пакета, чтобы передать значения этих переменных каждому дочернему пакету. Дополнительные сведения см. в разделах Задача «Выполнение пакета» и Как использовать значения родительских переменных в дочернем пакете.

Вычисление начальной и конечной точек для измененных данных

Когда переменные пакета для конечных точек интервала настроены, можно вычислить фактические значения конечных точек и сопоставить эти значения с соответствующими переменными пакета. Поскольку конечные точки имеют значения datetime, необходимо использовать функции, поддерживающие вычисление или обработку значений datetime. Язык выражений служб Integration Services и язык Transact-SQL имеют функции, работающие со значениями datetime:

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

Когда характер интервала изменений установлен (фиксированный или случайный), можно вычислять конечные точки.

  • Вычисление начальной даты и времени. В качестве текущей начальной даты и времени используется конечная дата и время предыдущей загрузки. Если для добавочных загрузок используется фиксированный интервал, значение можно вычислить с помощью функций datetime языка Transact-SQL или языка выражений служб Integration Services. В других случаях иногда приходится сохранять конечные точки между выполнениями и использовать задачи «Выполнение SQL» или «Скрипт» для загрузки предыдущей конечной точки.

  • Вычисление конечной даты и времени. Если для добавочной загрузки используется фиксированный интервал, текущая конечная дата и время вычисляются как смещение относительно начальной даты и времени. Это значение можно также вычислить с помощью функций datetime языка Transact-SQL или языка выражений служб Integration Services.

В следующей процедуре используется фиксированный интервал изменений и предполагается, что пакет добавочной загрузки выполняется ежедневно без каких-либо исключений. Иначе информация об измененных данных за пропущенные интервалы будет потеряна. Начальной точкой интервала является полночь позавчерашнего дня, т. е. от 24 до 48 часов назад. Конечной точкой интервала является полночь вчерашнего дня, т. е. прошлая ночь, от 0 до 24 часов назад.

Вычисление начальной и конечной точек интервала отслеживания

  1. На вкладке Поток управления в конструкторе служб SSIS добавьте в пакет задачу «Выполнение SQL».

  2. Откройте Редактор задачи «Выполнение SQL» и на странице Общие выберите следующие параметры:

    1. Для параметра ResultSet выберите значение Одна строка.

    2. Настройте допустимое соединение с базой данных-источником.

    3. Для параметра SQLSourceType выберите значение Прямой ввод.

    4. В поле SQLStatement введите приведенную ниже инструкцию SQL:

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
      
  3. На странице Результирующий наборРедактора задачи «Выполнение SQL» сопоставьте результат ExtractStartTime с переменной ExtractStartTime пакета, а результат ExtractEndTime — с переменной ExtractEndTime пакета.

    ПримечаниеПримечание

    Если для установки значения переменной служб Integration Services используется выражение, это выражение вычисляется при каждом обращении к значению переменной.

Следующий шаг

После вычисления начальной и конечной точек диапазона изменений необходимо определить, готовы ли измененные данные.

Следующий раздел:Определение готовности системы отслеживания измененных данных

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей служб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.