Published on

August 28, 2019

Понимание Checkpoint в SSIS пакете

В предыдущей статье мы обсудили процесс 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 пакетах, чтобы обеспечить эффективное выполнение пакетов и минимизировать влияние сбоев.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.