SQL Server Integration Services Nie tylko dla developera - Architektura 

Udostępnij na: Facebook

Autor: Bartłomiej Graczyk

Opublikowano: 2013-09-05

Wprowadzenie

SQL Server Integration Services to element platformy SQL Server, który został wprowadzony już w wersji 2005, zastąpił wysłużone Data Transformation Services, dobrze znane z wcześniejszych wersji SQL Server (2000 i 7.0). Od momentu wprowadzenia SQL Server Integration Services (SSIS) znajduje szerokie zastosowanie zarówno w obszarze automatyzacji codziennych zadań administracyjnych, jak również, a w zasadzie przed wszystkim, umożliwiając realizację różnorodnych zadań związanych z transformacją i przenoszeniem danych, czy Extract - Transform – Load (ETL).

Architektura rozwiązania począwszy od wersji 2005, aż do obecnie dostępnej wersji 2012 ulegała zmianą, co zostanie szerzej omówione w dalszej części tego artykułu, jednak niezależnie od wersji SQL Server Integration Services to zbiór elementów stanowiących skalowalną, wydajną i funkcjonalną platformę umożliwiającą budowanie efektywnych rozwiązań.

Elementy SQL Server Integration Services są częścią następujących edycji SQL Server 2012 (Informacje w Tabeli 1):

Tabela 1  Porównianie funkcjonalności edycji SQL Server 2012

  Enterprise Business Intelligence Standard Web Express
SQL Server Import and Export Wizard Tak Tak Tak Tak Tak
Built-in data source connectors Tak Tak Tak Tak Tak
SSIS designer and runtime Tak Tak Tak    
Basic Transforms Tak Tak Tak    
Basic data profiling tools Tak Tak Tak    
Change Data Capture Service for Oracle by Attunity Tak        
Change Data Capture Designer for Oracle by Attunity Tak        

Wszystkie dodatkowe funkcjonalności m.in. takie jak elementy logiki rozmytej (Fuzzy look-up, Fuzzy grouping, Modele Data Mining) dostępne są jedynie w edycji Enteprise

Architektura rozwiązania krok po kroku

Poznając architekturę SQL Server Integration Services niewątpliwie należy wskazać, że pełne rozwiązanie składa się z wielu mniejszych komponentów funkcjonalnych, wśród których główne z nich to:

  • Usługa Integration Services (Integration Services Service)

    Komponent odpowiedzialny bezpośrednio za umożliwienie monitorowania i zarządzania pakietami uruchamianymi i przechowywanymi w ramach usługi

  • Silnik obsługi pakietów i komponentów (Runtime engine)

    Silnik umożliwia zapis, projektowanie, uruchamianie oraz pełne wsparcie dla funkcjonalności dostępnych w pakietach, czyli: transakcje, konfiguracje, połączenia, obsługa zdarzeń i logowanie. Elementami, w ramach, których odbywa się obsługa w/w funkcjonalności są pakiety, a w nich kontenery i zadania, które kontrolowane są poprzez śledzenie ich stanów wykonania:

    - sukces (success),
    - ukończenie (completion),
    - niepowodzenie (failure)

  •  Integration Services Object Model

    Zbiór interfejsów programistycznych (API) wykorzystywanych do tworzenia własnych elementów kodu (custom code) w pakietach, dostępu do narzędzi SSIS, linii poleceń oraz we własnych aplikacjach (korzystających z pakietów SSIS). Niewątpliwe to właśnie ten element w kolejnych odsłonach SQL Server Integration Services podlegał znaczącym modyfikacjom, dlatego warto zweryfikować zakres dostępnych klas i metod dla poszczególnych wersji SQL Server Integration Services

  • Silnik obsługi danych (Data Flow Engine) or elementy obsługi danych (Data Flow Components)

    Silnik zapewnia możliwości przetwarzania danych w pamięci (in-memory), obsługuje dane w trzech obszarach: źródła (source) , transformacji (transformation) oraz miejsca docelowego (destination). Poszczególne elementy dostępne we wspomnianych obszarach pozwalają na efektywne przetwarzania danych od momentu ich pobrania (z tabeli, arkusza, pliku), przez ich dostosowanie (szczegóły zadań związanych z transformacją będą opisane w kolejnych artykułach), po wprowadzenie, aktualizacje czy usunięcie danych ze wskazanej lokalizacji.

Wśród dodatkowych elementów rozwiązania znajdują się również:

- Kreatory pakietów ( SSIS Wizard ), umożliwiający tworzenie prostych pakietów umożliwiających transfer danych pomiędzy lokalizacjami, jak również planów utrzymania (Maintenance Plan)

- SSIS Designer – graficzny interfejs tworzenia pakietów, dostępny, jako projekt SQL Server Integration Services Projekt w narzędzi SQL Data Tools ( wcześniej Business Intelligence Development Studio).

Wizualizacja architektury dostępna jest na stronach Microsoft Technet, warto jednak zwrócić uwagę, że w obecnej wersji Integration Services (SQL Server 2012) doszło do pewnych zmian, zwłaszcza w sposobie przechowywania i zarządzania pakietami. Wskazana w wizualizacji baza pomocnicza (MSDB), została zastąpiona przez dedykowaną bazę (SSIS Catalog), która wykorzystywana jest zarówno do przechowywania pakietów, konfiguracji, parametrów, zarządzania nimi jak również zapisu zdarzeń związanych z działaniem pakietów SSIS (logi). Zawartość bazy (domyślnie SSISDB) jest szyfrowana (szyfrowanie odbywa się w momencie tworzenia bazy – katalogu konfiguracji SSIS. Struktura bazy oraz dodatkowe informacje zostały opisane w kolejnym rozdziale tego artykułu.

Konfiguracja SSIS Catalog

Wraz z ewaluacją architektury SSIS pojawiła się wspomniana już zmiana dotycząca sposobu przechowywania, zarządzania i monitorowania pakietów. Początkowe (w wersjach 2005,2008, 2008 R2) wykorzystanie pomocniczej bazy systemowej MSDB, zastąpione zostało przez wprowadzenie dedykowanego katalogu SSIS. Katalog, to nic innego jak utworzona w tym celu baza danych. Stanowiąca integralną część całej architektury rozwiązania. Katalog stanowi zarówno obszar do przechowywania pakietów ( we wcześniejszych wersjach pakiety również można było przechowywać w bazie danych, z tym, że była to baza MSDB), zarządzania nimi (zbierania informacji o pakietach, wersjach pakietów, metadanych) jak również monitorowania wdrożonych pakietów ( statystyki uruchomienia, analiza zapisów (logów)). Wprowadzenie katalogu (bazy danych) stanowiącej integralną część całego rozwiązania, w znaczący sposób upraszcza zarządzanie wdrożonymi pakietami. 

Utworzenie repozytorium / katalogu SSIS odbywa się z poziomu SQL Server Management Studio, w obszarze Object Explorer należy wybrać element Integration Services Catalog, a następnie “Create Catalog.

Ilustracja 1 – Tworzenie SSIS Catalog – dedykowanej dla SSIS bazy danych

Dla zapewnienia odpowiedniego poziomu bezpieczeństwa, dane wrażliwe (hasła do źródeł danych, serwerów) przechowywane w tworzonej bazie są szyfrowane, dlatego niezbędne jest podczas jej tworzenia podanie hasła i wygenerowanie klucza szyfrującego. Jako, że w przypadku odtworzenia kopii bazy danych na innej instancji SQL Server potrzebne będzie odtworzenie również klucza wykorzystanego do jego szyfrowania, należałoby wykonać kopię wspomnianego klucza ( korzystając z polecenia BACKUP MASTER KEY). Utworzone na potrzeby SSIS repozytorium dostępne jest z poziomu Integration Services Catalogs w SQL Server Managment Studio, ale również, jako w pełni dostępna baza danych, zarządzanie dostępem do repozytorium odbywa się poprzez nadawanie uprawnień do poszczególnych obszarów bazy danych.

Równanie 1  - Widok dostępnch z poziomu SSMS informacji dot. bazy danych SSIS

Podsumowanie

Architektura SQL Server Integration Services bazuje na sprawdzonych, wciąż udoskonalanych elementach, co pozwala z każdą nową odsłoną na usprawnienie i zwiększenie efektywności wykorzystania rozwiązań SQL Server Integration Services. W kolejnych artkułach cyklu opublikowane zostaną informacje pozwalające na implementację rozwiązań opartych o SSIS