Задание интервала для информации об изменениях данных
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
В потоке управления пакета служб Integration Services, выполняющего добавочную нагрузку данных об изменениях, первая задача — вычислить конечные точки интервала изменения. Эти конечные точки имеют значения datetime и сохраняются в переменных пакета для дальнейшего использования в пакете.
Примечание.
Описание общего процесса по проектированию потока управления см. в разделе Система отслеживания измененных данных (SSIS).
Настройка переменных пакета для конечных точек
Прежде чем настраивать задачи «Выполнение SQL» для вычисления конечных точек, необходимо определить переменные пакета, в которых будут храниться конечные точки.
Настройка переменных пакета
В SQL Server Data Tools (SSDT) откройте новый проект служб Integration Services.
В окне Переменные создайте следующие переменные:
Создайте переменную с типом данных datetime для хранения начальной точки интервала.
В этом примере используется имя переменной ExtractStartTime.
Создайте переменную с типом данных datetime для хранения конечной точки интервала.
В этом примере используется имя переменной ExtractEndTime.
Если конечные точки вычисляются в главном пакете, который управляет несколькими дочерними пакетами, можно использовать конфигурации переменных родительского пакета, чтобы передать значения этих переменных каждому дочернему пакету. Дополнительные сведения см. в разделах Задача "Выполнение пакета" и Использование значений переменных и параметров в дочернем пакете.
Вычисление начальной и конечной точек для измененных данных
Когда переменные пакета для конечных точек интервала настроены, можно вычислить фактические значения конечных точек и сопоставить эти значения с соответствующими переменными пакета. Поскольку конечные точки имеют значения datetime , необходимо использовать функции, поддерживающие вычисление или обработку значений datetime . Язык выражений служб Integration Services и Transact-SQL имеют функции, которые работают со значениями даты и времени :
Функции на языке выражений Служб Integration Services, которые работают со значениями даты и времени
Функции языка Transact-SQL, работающие со значениями datetime
Типы данных и функции даты и времени (Transact-SQL).
Прежде чем использовать какую-либо из этих функций datetime для вычисления конечных точек, необходимо определить, является ли интервал фиксированным и регулярно повторяющимся. Обычно требуется регулярное применение изменений, произошедших в исходных таблицах, к целевым таблицам. Например, эти изменения могут применяться каждый час, ежедневно или еженедельно.
Когда характер интервала изменений установлен (фиксированный или случайный), можно вычислять конечные точки.
Вычисление начальной даты и времени. В качестве текущей начальной даты и времени используется конечная дата и время предыдущей загрузки. Если для добавочных загрузок используется фиксированный интервал, вы можете вычислить это значение с помощью функций datetime Transact-SQL или языка выражений Служб Integration Services. В других случаях иногда приходится сохранять конечные точки между выполнениями и использовать задачи «Выполнение SQL» или «Скрипт» для загрузки предыдущей конечной точки.
Вычисление конечной даты и времени. Если для добавочной загрузки используется фиксированный интервал, текущая конечная дата и время вычисляются как смещение относительно начальной даты и времени. Опять же, вы можете вычислить это значение с помощью функций datetime Transact-SQL или языка выражений служб Integration Services.
В следующей процедуре используется фиксированный интервал изменений и предполагается, что пакет добавочной загрузки выполняется ежедневно без каких-либо исключений. Иначе информация об измененных данных за пропущенные интервалы будет потеряна. Начальной точкой интервала является полночь позавчерашнего дня, т. е. от 24 до 48 часов назад. Конечной точкой интервала является полночь вчерашнего дня, т. е. прошлая ночь, от 0 до 24 часов назад.
Вычисление начальной и конечной точек интервала отслеживания
На вкладке потока управления конструктора служб SSIS добавьте задачу Execute SQL в пакет.
Откройте Редактор задачи «Выполнение SQL»и на странице Общие выберите следующие параметры:
Для параметра ResultSetвыберите значение Одна строка.
Настройте допустимое соединение с базой данных-источником.
Для параметра SQLSourceTypeвыберите значение Прямой ввод.
В поле SQLStatementвведите приведенную ниже инструкцию SQL:
SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime, DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
На странице Результирующий наборРедактора задачи «Выполнение SQL»сопоставьте результат ExtractStartTime с переменной ExtractStartTime пакета, а результат ExtractEndTime — с переменной ExtractEndTime пакета.
Примечание.
При использовании выражения для задания значения переменной Служб Integration Services выражение вычисляется каждый раз при доступе к значению переменной.
Следующий шаг
После вычисления начальной и конечной точек диапазона изменений необходимо определить, готовы ли измененные данные.
Следующий раздел: определение готовности данных об изменениях
См. также
Использование переменных в пакетах
Выражения служб Integration Services (SSIS)
Задача «Выполнение SQL»
Задача «Скрипт»