При работе с SQL Server Integration Services (SSIS) важно понимать различные настройки NULL и их последствия. Неправильное понимание этих настроек может привести к неожиданным результатам и несогласованности данных. В этой статье мы рассмотрим различные настройки NULL в SSIS и их влияние на импорт и назначение данных.
Сценарий
Давайте рассмотрим обычный сценарий, когда нам нужно импортировать данные из текстового файла в базу данных SQL Server. В текстовом файле содержатся три столбца: MyDate, MyInt и MyText. У нас есть задача потока данных с источником плоского файла, подключенным к назначению OLEDB.
Что происходит, когда мы сталкиваемся с пустым значением в текстовом файле? По умолчанию SSIS обрабатывает пустое значение как определенное значение по умолчанию. Например, пустая дата будет преобразована в “1 января 1753 года”, целое число станет “0”, а текст станет пустой строкой (“”). Это поведение по умолчанию не всегда является желательным, особенно если “0” является допустимым значением в текстовом файле.
Обработка значений NULL
Чтобы обрабатывать значения NULL из плоского файла, мы можем использовать простой флажок на компоненте источника плоского файла. Проверка опции “Сохранять значения NULL из источника как значения NULL в потоке данных” гарантирует, что значения NULL из плоского файла сохраняются как значения NULL в результирующем назначении OLEDB.
С этой настройкой включенной, импортированный набор данных будет точно отражать значения NULL из исходного файла.
Опция “Сохранять NULL”
Существует еще одна важная настройка, которую следует учитывать при работе с значениями NULL в SSIS – опция “Сохранять NULL” на компоненте назначения OLEDB. Эта настройка контролирует, что происходит, когда на таблице назначения есть ограничения по умолчанию.
Если на таблице назначения есть ограничения по умолчанию для каждого столбца, например, дата по умолчанию сегодня или число по умолчанию -1, нам нужно решить, хотим ли мы, чтобы эти значения по умолчанию были перезаписаны значениями NULL из исходного файла или просто применялись их указанные значения по умолчанию.
По умолчанию опция “Сохранять NULL” не отмечена, что означает, что значения по умолчанию на таблице назначения будут перезаписаны значениями NULL из исходного файла. Если опция отмечена, значения по умолчанию будут сохранены и применены вместо значений NULL.
Вывод
Понимание настроек NULL в SQL Server Integration Services крайне важно для обеспечения точного импорта данных и согласованности. Правильная настройка настроек NULL позволяет обрабатывать значения NULL из исходного файла и контролировать поведение значений по умолчанию на таблице назначения.
Не забудьте отметить опцию “Сохранять значения NULL из источника как значения NULL в потоке данных” на источнике плоского файла, чтобы сохранить значения NULL. Кроме того, учтите опцию “Сохранять NULL” на компоненте назначения OLEDB, чтобы определить, как следует обрабатывать значения по умолчанию.
Освоив эти концепции, вы сможете избежать путаницы и обеспечить целостность ваших данных при работе с SSIS.
Спасибо за чтение!