В предыдущей статье мы обсудили процесс CHECKPOINT для баз данных SQL Server. Однако важно отметить, что CHECKPOINT в SSIS пакете – это совершенно другая концепция и не связана с CHECKPOINT в SQL Server. В этой статье мы рассмотрим концепцию CHECKPOINT в SSIS пакете и как его можно использовать для перезапуска неудавшегося пакета с момента сбоя.
Обзор CHECKPOINT в SSIS пакете
Представьте, что у вас есть пакет интеграционных служб, который выполняет различные преобразования данных и вставки данных. Если пакет SSIS неудачно завершается во время выполнения, обычно он перезапускается с самого начала при повторном запуске. Это означает, что вам придется ждать, пока весь пакет снова выполнится, даже если большая часть шагов уже успешно завершена.
Однако с использованием CHECKPOINT в SSIS пакете вы можете перезапустить пакет с момента сбоя, а не запускать весь пакет снова. Это может быть особенно полезно для критически важных пакетов, которые требуют длительного времени выполнения и не могут позволить себе сбои.
Когда CHECKPOINT настроен в SSIS пакете, создается файл контрольной точки, который регистрирует информацию о выполнении пакета. Если пакет завершается неудачно, SSIS использует информацию в файле контрольной точки для перезапуска пакета с момента сбоя. После успешного выполнения пакета файл контрольной точки удаляется. При следующем выполнении пакета создается новый файл контрольной точки.
Важно отметить, что CHECKPOINT в SSIS пакете работает на уровне потока управления и не может быть настроен на уровне потока данных. Это означает, что пакет будет перезапущен с неудавшейся задачи потока управления, но будут выполнены все задачи внутри задачи потока данных.
Настройка Checkpoints в SSIS
Для настройки CHECKPOINT в SSIS пакете вам необходимо получить доступ к свойствам пакета. Это можно сделать, перейдя в меню и выбрав Просмотр -> Свойства или используя сочетание клавиш F4.
В окне свойств пакета вы найдете вкладку “Checkpoints” со следующими настройками:
- CheckpointFileName: Это файл, в котором пакет SSIS будет регистрировать информацию о выполнении пакета. Вы можете указать путь назначения или вставить путь к папке вместе с именем файла в формате XML. Это должна быть допустимая директория, и вы также можете использовать сетевой UNC-путь.
- CheckpointUsage: Эта опция определяет, как используется файл контрольной точки. Доступные варианты:
- Never: Пакет SSIS никогда не будет использовать функцию контрольной точки. Это значение по умолчанию.
- IfExists: Пакет SSIS будет читать информацию в файле контрольной точки, если он существует. Если файла нет, он пропустит контрольную точку и перезапустит пакет.
- Always: Пакет SSIS всегда будет использовать информацию контрольной точки из файла контрольной точки. Если информация недоступна, пакет выдаст сообщение об ошибке.
- SaveCheckpoints: Эта опция позволяет выбрать, сохранять ли информацию о контрольной точке или нет.
После настройки параметров контрольной точки необходимо установить свойство “FailPackageOnFailure” в значение True для всех задач потока управления. Это гарантирует, что пакет завершится с ошибкой, если любая из задач потока управления завершится неудачно.
Использование Checkpoint в SSIS пакете
Рассмотрим пример, в котором у нас есть SSIS пакет с несколькими задачами потока управления и задачей потока данных. Если пакет завершается неудачно во время выполнения, мы хотим перезапустить его с момента сбоя.
При выполнении пакета без настройки контрольной точки он завершится с ошибкой и перезапустится с самого начала при повторном запуске. Однако, настроив контрольную точку и установив соответствующие свойства, мы можем перезапустить пакет с неудавшейся задачи потока управления.
При выполнении пакета создается файл контрольной точки в настроенном пути. Если пакет завершается неудачно, он считывает информацию из файла контрольной точки и перезапускает пакет с неудавшейся задачи потока управления. После успешного выполнения пакета файл контрольной точки удаляется.
Важно отметить, что пакет будет выполнять все задачи внутри задачи потока данных, даже если они были успешно выполнены в предыдущих запусках. Это происходит потому, что контрольная точка работает на уровне потока управления и не может быть настроена на уровне потока данных.
Заключение
В этой статье мы рассмотрели концепцию CHECKPOINT в SSIS пакете и его использование для перезапуска пакетов с момента сбоя. Настроив контрольную точку, вы можете избежать повторного выполнения всего пакета в случае сбоя, экономя время и ресурсы. Эта функция особенно полезна для больших и сложных пакетов, которые включают несколько шагов и требуют длительного времени выполнения.
Рекомендуется ознакомиться с описанными в этой статье шагами и настроить контрольные точки в ваших SSIS пакетах, чтобы обеспечить эффективное выполнение пакетов и минимизировать влияние сбоев.