Data Transformation Services (DTS) — это технология Microsoft для извлечения, преобразования и загрузки данных (ETL), впервые представленная в SQL Server 7.0 и развивавшаяся до SQL Server 2000. Современным аналогом является SQL Server Integration Services (SSIS).
1. Основное назначение DTS
DTS решает три ключевые задачи:
- Извлечение данных из разнородных источников
- Преобразование данных согласно бизнес-правилам
- Загрузка данных в целевую систему (часто - хранилище данных)
2. Ключевые компоненты DTS
Пакеты (Packages):
- Основная единица работы в DTS
- Содержат последовательность задач и шагов преобразования
- Могут включать сложную логику обработки
-- Пример создания простого DTS-пакета через T-SQL
EXEC sp_add_dtspackage
@name = 'SalesDataLoad',
@description = 'Ежедневная загрузка данных продаж';
Задачи (Tasks):
- Импорт/экспорт данных
- Выполнение SQL-скриптов
- Обработка Analysis Services кубов
- Запуск внешних программ
Соединения (Connections):
- Определения подключений к источникам данных
- Поддержка: SQL Server, Oracle, Excel, текстовые файлы, ODBC
3. Типичные сценарии использования
- Миграция данных между разными СУБД
- Периодическая загрузка данных в хранилище
- Очистка и стандартизация данных
- Консолидация информации из разных источников
4. Архитектурные особенности
Графический интерфейс:
- DTS Designer в SQL Server Enterprise Manager
- Визуальное построение ETL-процессов
Программный доступ:
- Хранение пакетов в MSDB
- Возможность выполнения через хранимые процедуры
-- Пример выполнения DTS-пакета
EXEC sp_start_dtspackage
@name = 'SalesDataLoad',
@versionid = '12345678-ABCD-EF12-3456-7890ABCDEF12';
5. Ограничения и проблемы
- Отсутствие отладчика в ранних версиях
- Сложность управления зависимостями между пакетами
- Ограниченные возможности трансформации по сравнению с SSIS
- Нет встроенной системы логирования ошибок
6. Эволюция в SSIS
С 2005 года Microsoft заменила DTS на более мощный SQL Server Integration Services (SSIS) с:
- Улучшенным графическим интерфейсом
- Более богатым набором компонентов
- Встроенными механизмами отладки
- Поддержкой .NET скриптов
7. Практический пример
Типичный DTS-пакет для загрузки данных:
- Извлечение данных из Oracle
- Преобразование форматов дат
- Валидация бизнес-правил
- Загрузка в SQL Server Data Warehouse
-- Пример кода преобразования в DTS
INSERT INTO dw_sales (product_id, sale_date, amount)
SELECT
p.dw_product_id,
CONVERT(DATETIME, o.sale_date, 103),
o.amount * o.quantity
FROM staging_orders o
JOIN dim_products p ON o.ext_product_id = p.source_product_id;
Резюмируем: DTS был важной вехой в развитии ETL-инструментов Microsoft, предоставив первую интегрированную платформу для перемещения и трансформации данных в экосистеме SQL Server, и проложив путь для современного SSIS.