Устранение неполадок инструментов с помощью отчетов
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
Службы Integration Services включают функции и средства, которые можно использовать для устранения неполадок пакетов при их выполнении после завершения и развертывания.
Во время разработки SQL Server Data Tools (SSDT) предоставляет точки останова для приостановки выполнения пакета, окна хода выполнения и просмотра данных для просмотра данных по мере прохождения потока данных. Однако эти возможности недоступны при выполнении уже развернутых пакетов. Основными методами устранения неполадок в развернутых пакетах являются следующие.
Перехват и обработка ошибок пакетов с помощью обработчиков событий.
Обнаруживайте недопустимые данные с помощью вывода ошибок.
Отслеживание шагов выполнения пакетов, используя ведение журналов.
Для предотвращения проблем с выполняющимися пакетами можно также пользоваться следующими советами и методами.
Обеспечивайте целостность данных с помощью транзакций. Дополнительные сведения см. в разделе Транзакции служб Integration Services.
Перезапускайте пакеты с точки сбоя, используя контрольные точки. Дополнительные сведения см. в разделе Restart Packages by Using Checkpoints.
Перехват и обработка ошибок пакетов с помощью обработчиков событий
Обработчики событий могут реагировать на многие события, вызванные пакетами и объектами в них.
- Создайте обработчик события для события OnError. В обработчике событий с помощью задачи «Отправка почты» можно уведомить администратора о сбое, использовать задачу «Скрипт» и специальную логику для получения системных сведений, чтобы устранить неполадки или очистить временные ресурсы и неполные выходные данные. Дополнительные сведения см. в разделе Обработчики событий Integration Services (SSIS).
Устранение неполадок в данных путем вывода ошибок
Вывод ошибок, доступный во многих компонентах потока данных, можно использовать для направления строк, содержащих ошибки, в отдельное назначение для последующего анализа. Дополнительные сведения см. в разделе Обработка ошибок в данных.
Обнаруживайте недопустимые данные с помощью вывода ошибок. Отправляйте строки, содержащие ошибки, в отдельное назначение, например в таблицу ошибок или текстовый файл. Вывод ошибок автоматически добавляет два цифровых столбца, которые содержат номер ошибки, вызвавшей отбрасывание строки, и идентификатор столбца, в котором произошла ошибка.
Добавляйте дополнительные сведения к выводу ошибок. Вы можете облегчить анализ вывода ошибок, добавив описательные сведения и имя столбца к двум цифровым идентификаторам, которые по умолчанию предоставляет вывод ошибок. Пример того, как с помощью сценариев добавить эти дополнительные столбцы, есть в статье Расширение вывода ошибок с помощью компонента скрипта.
Также получайте имена столбцов, сохраняя в журнал событие DiagnosticEx. Это событие записывает схему журнала преобразований потока данных в журнал. Потом вы сможете найти имя столбца в этой схеме журнала преобразований с помощью идентификатора столбца, записанного в выводе с ошибками. Дополнительные сведения см. в разделе Обработка ошибок в данных.
Значение столбца сообщения для DiagnosticEx — это XML-текст. Для просмотра текста сообщения о выполнении пакета выполните запрос к представлению catalog.operation_messages (база данных SSISDB). Обратите внимание, что событие DiagnosticEx не сохраняет пробелы в выводе XML, чтобы уменьшить размер журнала. Для улучшения удобочитаемости скопируйте журнал (например, в решении Visual Studio) в редактор XML, поддерживающий форматирование XML и выделение синтаксиса.
Устранение неполадок выполнения пакетов с помощью отчетов об операциях
Стандартные отчеты об операциях доступны в SQL Server Management Studio, чтобы отслеживать пакеты служб Integration Services, развернутые в каталоге служб Integration Services. Они позволяют просмотреть состояние пакета и журнал и, если необходимо, определить причину сбоев.
Дополнительные сведения см. в разделе Устранение неполадок пакетов с помощью отчетов.
Устранение неполадок выполнения пакетов с помощью представлений SSISDB
Доступно несколько представлений базы данных SSISDB, к которым вы можете выполнить запрос с целью мониторинга выполнения пакетов и получения сведений для других операторов. Дополнительные сведения см. в разделе Наблюдение за выполнением пакетов и других операций.
Устранение неполадок выполнения пакетов с помощью журналов
С помощью ведения журналов можно отследить многие события в выполняющихся пакетах. Регистраторы захватывают сведения о конкретных событиях с целью последующего анализа и сохраняют их в таблицу базы данных, неструктурированный файл, XML-файл или в любом другом поддерживаемом формате вывода данных.
Включите ведение журналов. Выходные данные журналов можно детализировать, выбрав только события и только объекты, сведения о которых требуется захватить. Дополнительные сведения см. в статье Ведение журналов в службах Integration Services (SSIS).
Для устранения неполадок, связанных с поставщиком, выберите событие пакета, называемое «Диагностика». Существуют сообщения журнала, которые могут помочь при устранении неполадок взаимодействия пакета с внешним источником данных. Дополнительные сведения см. в статье Troubleshooting Tools Package Connectivity.
Дополните выходные данные журналов. При обычном ведении журналов строки присоединяются к назначению при каждом выполнении пакета. Хотя каждая строка выходных данных журнала определяет пакет по имени и уникальному идентификатору, а также определяет выполнение пакета по уникальному идентификатору ExecutionID, большой объем выходных данных анализировать трудно.
В следующем подходе предлагается расширить выходные данные журнала и облегчить создание отчетов:
Создайте родительскую таблицу, в которой регистрируется каждое выполнение пакета. Эта родительская таблица имеет только одну строку для каждого выполнения пакета и использует ExecutionID для связывания с дочерними записями в таблице ведения журнала Служб Integration Services. Для создания новой строки и регистрации времени начала можно использовать задачу «Выполнение SQL». Затем при завершении пакета можно обновить строку временем окончания, продолжительностью и состоянием;
Добавьте к потоку данных данные аудита. Преобразование «Аудит» можно использовать для добавления к строкам в потоке данных сведений о выполнении пакета, который создал или изменил каждую строку. Преобразование «Аудит» предоставляет девять разделов сведений, в том числе PackageName и ExecutionInstanceGUID. Дополнительные сведения см. в разделе Audit Transformation. Если в каждую строку в целях аудита требуется включить пользовательские данные, их можно добавить в поток данных с помощью преобразования "Производный столбец". Дополнительные сведения см. в разделе Derived Column Transformation.
Рассмотрите возможность захвата данных счетчика строк. Создайте отдельную таблицу для данных счетчика строк, в которой каждый экземпляр выполнения пакета определяется идентификатором ExecutionID. Используйте преобразование «Счетчик строк» для сохранения числа строк в последовательность переменных в критических точках потока данных. После окончания потока данных используйте задачу «Выполнение SQL» для вставки этой последовательности значений в строку таблицы для последующего анализа и отчета.
Дополнительные сведения об этом подходе см. в разделе "ETL Auditing and Logging", в техническом документе Майкрософт Project REAL: Бизнес-аналитика ETL Design Practices.
Устранение неполадок выполнения пакетов с помощью отладочных файлов дампа
В службах Integration Services можно создать файлы дампа отладки, предоставляющие сведения о выполнении пакета. Дополнительные сведения см. в статье Generating Dump Files for Package Execution.
Устранение неполадок проверки во время выполнения
Иногда невозможно подключиться к источникам данных или проверить компоненты пакета, пока не будут выполнены предыдущие задачи пакета. Службы Integration Services включают следующие функции, которые помогут избежать ошибок проверки, которые в противном случае будут возникать из следующих условий:
Настройте свойство DelayValidation элементов пакета, недопустимых при загрузке пакета. Свойству DelayValidation элемента пакета с недопустимой настройкой можно присвоить значение True , чтобы избежать ошибок проверки во время загрузки пакета. Например, может существовать задача потока данных, использующая целевую таблицу, которая не существует до тех пор, пока задача «Выполнение SQL» не создаст таблицу во время выполнения. Свойство DelayValidation можно включить на уровне пакета или на уровне отдельных задач или контейнеров, содержащихся в пакете.
Свойство DelayValidation устанавливается в задаче потока данных, но не в отдельных компонентах потока данных. Тех же результатов можно добиться, присвоив свойству ValidateExternalMetadata отдельного компонента потока данных значение false. Однако если значение этого свойства равно false, компонент не узнает об изменениях метаданных внешних источников данных. Если свойству trueприсвоено значение ValidateExternalMetadata , это может помочь избежать критических препятствий, возникающих из-за блокировки базы данных, особенно при использовании пакетом транзакций.
Устранение проблем с разрешениями во время выполнения
Если при попытке запустить развернутые пакеты с помощью агент SQL Server возникают ошибки, учетные записи, используемые агентом, могут не иметь необходимых разрешений. Сведения об устранении неполадок пакетов, выполняемых из заданий агент SQL Server, см. в статье о том, как пакет служб SSIS не выполняется при вызове пакета служб SSIS из шага задания агент SQL Server. Дополнительные сведения о том, как запускать пакеты из заданий агент SQL Server, см. в разделе агент SQL Server Задания для пакетов.
Для подключения к источникам данных Excel или Access агент SQL Server требуется учетная запись, которая имеет разрешение на чтение, запись, создание и удаление временных файлов в папке, указанной переменными среды TEMP и TMP.
Устранение неполадок для 64-разрядных платформ
- Некоторые поставщики данных недоступны на 64-разрядных платформах. В частности, поставщик MICROSOFT Jet OLE DB, необходимый для подключения к источникам данных Excel или Access, недоступен в 64-разрядной версии.
Устранение неполадок, когда ошибка выдается без описания
Если возникает ошибка служб Integration Services, которая не содержит сопровождающего описания, можно найти описание в разделе "Ошибка служб Integration Services" и "Ссылка на сообщение", выполнив поиск ошибки по его числу. Этот список сейчас не включает сведения об устранении неполадок.