Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SSIS (SQL Server Integration Services)

Termin Definicja
SSIS (SQL Server Integration Services)

SSIS to komponent SQL Server służący do przenoszenia i przekształcania danych między różnymi źródłami.

SSIS jako platforma przepływów danych w SQL Server

SQL Server Integration Services, w skrócie SSIS, jest składnikiem pakietu Microsoft SQL Server przeznaczonym do budowania i uruchamiania procesów integracji danych. Pakiet SSIS opisuje kolejność operacji, źródła i miejsca docelowe danych, reguły transformacji oraz reakcje na powodzenie albo błąd poszczególnych etapów. Dane mogą pochodzić między innymi z tabel SQL Server, plików tekstowych, arkuszy Excela, plików XML oraz innych systemów udostępniających odpowiedni dostawca lub sterownik. SSIS nie jest osobnym silnikiem bazodanowym i nie zastępuje SQL Server Database Engine; wykonuje zdefiniowane przepływy, które mogą odczytywać, przekształcać i zapisywać informacje w różnych systemach.

Podstawową jednostką wdrożenia jest pakiet SSIS. W jego strukturze znajdują się zadania sterujące wykonaniem procesu, przepływy danych, zmienne, parametry, menedżery połączeń oraz obsługa zdarzeń. Pakiet może zostać uruchomiony interaktywnie w środowisku projektowym, przez narzędzia wiersza poleceń albo automatycznie w ramach harmonogramu, na przykład za pośrednictwem SQL Server Agent. Sam fakt posiadania pakietu nie gwarantuje poprawnego importu danych: działanie zależy również od dostępności źródeł, zgodności sterowników, uprawnień konta wykonującego oraz poprawnych wartości parametrów połączeń.

Control Flow i Data Flow: dwa poziomy wykonania pakietu

Control Flow określa logikę procesu na poziomie zadań. Można w nim umieścić między innymi zadania wykonywania poleceń SQL, kopiowania plików, uruchamiania innych pakietów, wykonywania skryptów oraz przepływy danych. Połączenia między zadaniami, nazywane precedence constraints, definiują warunki przejścia do następnego kroku. Przejście może zależeć od sukcesu, błędu albo zakończenia poprzedniej operacji, a także od wyrażenia logicznego. Dzięki temu jeden pakiet może na przykład najpierw sprawdzić dostępność pliku, następnie wczytać dane, a po niepowodzeniu zapisać informację diagnostyczną w określonym miejscu.

Data Flow opisuje przemieszczanie rekordów pomiędzy źródłem, transformacjami i miejscem docelowym. Źródło pobiera dane, komponenty transformujące wykonują operacje takie jak konwersja typów, filtrowanie, sortowanie, łączenie lub rozdzielanie rekordów, a komponent docelowy zapisuje wynik. Ważną cechą Data Flow jest istnienie osobnych ścieżek błędów dla wielu komponentów. Rekordy, których nie można przetworzyć z powodu niezgodności typu, zbyt długiej wartości albo naruszenia ograniczenia docelowego, mogą zostać skierowane do oddzielnego przepływu zamiast powodować utratę całej partii bez dodatkowej informacji. Projekt powinien jednak jasno określać, czy błędne rekordy są odrzucane, poprawiane, czy zatrzymują wykonanie pakietu.

Parametry, połączenia i modele wdrażania

Pakiety SSIS często wykorzystują parametry oraz zmienne, aby oddzielić logikę procesu od wartości zależnych od środowiska. Parametr może wskazywać nazwę bazy, katalog plików, zakres dat albo tryb wykonania. Menedżer połączeń przechowuje konfigurację połączenia ze źródłem lub celem, natomiast wyrażenia SSIS pozwalają dynamicznie budować część ustawień na podstawie zmiennych i parametrów. Taki podział ułatwia uruchamianie tego samego pakietu w różnych środowiskach, ale wymaga sprawdzenia, czy wszystkie wartości są dostępne w momencie wykonania oraz czy typy danych parametrów odpowiadają oczekiwaniom używanych komponentów.

Współczesne wdrożenia mogą korzystać z modelu projektu, w którym pakiety są publikowane do katalogu SSISDB na instancji SQL Server. Katalog ten przechowuje projekty, pakiety, środowiska oraz informacje o wykonaniach, a parametry środowiskowe mogą dostarczać wartości używane podczas uruchomienia. Starszy model wdrażania pakietów opiera się na pojedynczych pakietach i konfiguracjach przypisywanych oddzielnie. Przy analizie problemu trzeba ustalić, który model zastosowano, gdzie znajduje się faktycznie uruchamiany pakiet oraz czy harmonogram wskazuje aktualną wersję projektu. Częstą przyczyną pozornie niewytłumaczalnych różnic jest uruchamianie innej kopii pakietu niż ta, którą zmodyfikowano w projekcie.

Diagnostyka wykonania i typowe źródła błędów SSIS

Diagnostyka SSIS powinna obejmować zarówno komunikaty pakietu, jak i rzeczywisty przepływ rekordów. Przydatne są logi zdarzeń, informacje o czasie rozpoczęcia i zakończenia zadań, liczbie przetworzonych wierszy oraz komunikatach generowanych przez źródła, transformacje i cele. Szczególnej uwagi wymagają błędy konwersji typów, kodowania znaków, długości kolumn, wartości pustych oraz różnic między typem danych w źródle i w tabeli docelowej. Problem może wystąpić także wtedy, gdy pakiet działa ręcznie, lecz kończy się błędem z harmonogramu, ponieważ SQL Server Agent może korzystać z innego konta, katalogu roboczego, zestawu zmiennych środowiskowych albo bitowości uruchamianego środowiska.

Przy dużych importach znaczenie mają również wydajność i odporność na ponowne uruchomienie. Należy sprawdzić rozmiar partii, sposób zapisu do celu, indeksy tabel docelowych, blokady oraz to, czy pakiet nie przetwarza wielokrotnie tych samych danych po częściowym błędzie. Punkty kontrolne mogą pozwolić na wznowienie wybranych zadań po przerwaniu, ale ich działanie zależy od konfiguracji pakietu i charakteru wykonywanych operacji. Jeżeli proces ma być powtarzalny, powinien jednoznacznie rozpoznawać zakres już zapisanych danych, rejestrować błędne rekordy i zwracać status zgodny z wynikiem faktycznego importu. Sam komunikat o zakończeniu zadania nie jest wystarczającym dowodem, że wszystkie oczekiwane dane trafiły do miejsca docelowego.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę