Published on

May 2, 2010

Использование преобразования столбца Derived Column в SQL Server Integration Services

Передача данных между Excel и SQL Server может быть сложной из-за различных и иногда несовместимых типов данных. В то время как мастер импорта и экспорта в SQL Server Integration Services (SSIS) предоставляет решение с использованием преобразования типов данных, существует альтернативный подход с использованием преобразования столбца Derived Column. В этой статье мы рассмотрим характеристики и использование преобразования столбца Derived Column.

Преобразование столбца Derived Column является мощным и гибким компонентом задачи потока данных SSIS. Оно позволяет вам манипулировать данными с использованием языка выражений SSIS. Чтобы понять его функциональность, давайте рассмотрим пример, аналогичный тому, который был рассмотрен в предыдущей статье, использующей преобразование типов данных.

Сначала создайте образец электронной таблицы с двумя столбцами: Title и Director. Столбец Title должен иметь тип данных varchar, а столбец Director должен быть определен как nvarchar. Оба столбца должны иметь максимальную длину 100 символов. Вы можете создать целевую таблицу в SQL Server с использованием следующего оператора T-SQL:

CREATE TABLE [dbo].[TwoThumbsUp](
    [Title][varchar](100) NOT NULL,
    [Director][nvarchar](100) NOT NULL
)

Вместо использования мастера импорта и экспорта мы будем вручную создавать проект SSIS в Business Intelligence Development Studio. После запуска студии выберите “Новый -> Проект…” в меню Файл и выберите шаблон проекта Integration Services Project. Укажите имя и местоположение для проекта.

В проекте добавьте подключения к электронной таблице и базе данных SQL Server. Щелкните правой кнопкой мыши на окне Менеджеров подключений и выберите “Новое подключение…”. Выберите запись EXCEL для менеджера подключений Excel и предоставьте необходимые сведения. Аналогично добавьте новое подключение OLE DB для базы данных SQL Server.

Затем заполните пакет SSIS компонентами для извлечения, преобразования и загрузки данных. Перетащите значок источника Excel из панели инструментов на поверхность дизайнера и настройте его для использования менеджера подключений Excel и соответствующего листа. Затем добавьте преобразование столбца Derived Column ниже источника Excel и соедините их.

Откройте редактор преобразования столбца Derived Column и изучите его интерфейс. В верхнем левом разделе вы можете получить доступ к переменным пакета и входным столбцам. Правый раздел предоставляет операции, которые могут быть применены для генерации желаемого вывода, включая математические функции, строковые функции, функции даты и времени, функции нулевого значения, математические и логические операторы и приведение типов.

Чтобы продемонстрировать необходимость преобразования типов данных, соедините выходные столбцы из преобразования столбца Derived Column с компонентом назначения OLE DB. Настройте компонент назначения OLE DB для использования менеджера подключений SQL Server и сопоставьте входные столбцы с столбцами назначения.

На этом этапе вы можете столкнуться с ошибкой, связанной с преобразованием типов данных между строками в формате Unicode и не-Unicode. Чтобы решить эту проблему, вернитесь в редактор преобразования столбца Derived Column и создайте новые столбцы с выражениями приведения типов, которые преобразуют строки в формате Unicode в строки не-Unicode. Обновите сопоставления в компоненте назначения OLE DB соответствующим образом.

Используя преобразование столбца Derived Column, вы можете успешно преобразовывать несовместимые типы данных и передавать данные между Excel и SQL Server. В будущих статьях мы рассмотрим другие компоненты SSIS, которые помогают с общими задачами ETL.

Дополнительные ресурсы:

Оставайтесь на связи для получения дополнительных статей от Марцина Полихта.

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.