вторник, 21 января 2014 г.

Практическое применение Integration Services

Изложение не претендует на полноту, сейчас я хочу показать лишь некоторые возможности SSIS, чтобы вы могли приблизительность оценить целесообразность его использования. А уже в случае такого выбора - изучать предмет более досконально.

1. Базы данных для примера

В примерах используется база данных AdventureWorks в качестве источника и простая база, которую легко можно сделать самостоятельно в качестве приёмника данных. Важно понимать, что примеры приводятся искусственные, в реальной жизни всё может быть несколько сложнее.

Итак, перед началом работы нам понадобится экземпляр MS SQL Server 2012 с установленной на нём БД AdventureWorks и созданной тестовой БД, назовём её TestSSIS. Для обучения проще держать MS SQL на том же компьютере, на котором будем работать с проектом Integration Services.

Распространённые технологии импорта данных

Под распространёнными технологиями подразумеваются те, которые часто используются для импорта данных. Разумеется, для некоторых задач чаще могут использоваться технологии импорта, которые не вошли в список ниже.

1. BULK INSERT/bcp

bcp - это утилита командной строки для импорта/экспорта данных, входящая в состав Microsoft SQL Server 2012 tools (для более ранних версий она тоже присутствует). BULK INSERT - команда T-SQL, позволяющая импортировать данные тем же способом что и bcp, но без использования командной строки.

Основное назначение bcp - быстрое копирование данных между аналогичными по структуре таблицами. В принципе, с помощью файла формата (указанного в качестве опции) можно копировать данные между таблицами с разной структурой. Нередко используется копирование с помощью bcp в промежуточные таблицы, из которых средствами T-SQL данные преобразуются в итоговые таблицы.

В простом случае, сначала данные экспортируют из таблицы в файл, а потом из файла импортируют в другую таблицу (в т.ч. в другой БД или на другом сервере). В принципе, файл можно подготовить и другими средствами. Например, можно использовать csv-файлы, но с ограничениями.

четверг, 16 января 2014 г.

Импорт данных с точки зрения бизнеса

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

1. Первоначальный/разовый импорт

Без первоначального импорта данных редко обходится внедрение любого нового решения, которое приходит на смену старому.

Часто бывает, что старое решение использует разнородные (или как модно говорить - гетерогенные) источники данных. Это могут быть несколько СУБД, файлы Excel или даже просто текстовые файлы. Но даже в случае, когда источник данных - единственная БД того же производителя, задача может быть не очень тривиальной, учитывая различия в структуре данных.

Обычно для первоначального импорта в MS SQL Server используются Integration Services, BULK INSERT (или утилита командной строки bcp) или написанный специально для этой задачи программный код. Подробнее об этих технологиях будет рассказано далее.

2. Интеграция с помощью БД

Как вы наверняка знаете, часто требуется интеграция между несколькими программными продуктами (часто даже входящими в одно решение от единственного производителя).