Microsoft SQL Server 2008

Wprowadzenie do usług SQL Server 2008 Integration Services Udostępnij na: Facebook

Opublikowano: 2 lipca 2008

Zawartość strony
Wprowadzenie  Wprowadzenie
 Wyzwania związane z integracją danych  Wyzwania związane z integracją danych
 SQL Server 2008 Integration Services  SQL Server 2008 Integration Services
Zwiększenie dostępności integracji danych  Zwiększenie dostępności integracji danych
Wnioski  Wnioski

Wprowadzenie

Zdolność transformowania danych korporacyjnych w treściwe i użyteczne informacje stanowi prawdopodobnie najważniejszą formę uzyskiwania przewagi rynkowej w dzisiejszym świecie biznesu. Wykorzystywanie ogromnych ilości danych w celu pełniejszego zrozumienia przeszłości i określania przyszłych kierunków działań, okazało się jednym z największych wyzwań stawianych przed korporacyjnymi działami Technologii Informacyjnej w organizacjach globalnych. Oto trzy ogólne kategorie problemów związanych z integracją danych:

• Wyzwania technologiczne

• Wyzwania organizacyjne

• Wyzwania ekonomiczne

W niniejszym dokumencie przyjrzymy się tym wyzwaniom w sposób szczegółowy i pokażemy, w jaki sposób można im sprostać przy pomocy usług Microsoft® SQL Server™ 2008 Integration Services (SSIS).

Na początku warto przyjrzeć się tym wyzwaniom w kontekście scenariusza ze świata rzeczywistego.

Scenariusz ze świata rzeczywistego

Wiodące na ryku, globalne przedsiębiorstwo transportowe, wykorzystuje hurtownię danych do analizowania wydajności własnych operacji oraz do przewidywania rozbieżności w zaplanowanych dostawach.

Źródła danych

Główne źródła danych w tej firmie, zawierają zamówienia, pochodzące z systemu obsługi zamówień bazującego na serwerze DB2, dane klientów pochodzące z systemu zarządzania relacjami z klientami (CRM), bazującego na serwerze SQL Server oraz dane dostawców, pochodzące z systemu ERP, bazującego na serwerze Oracle. Poza danymi pochodzącymi z tych trzech, głównych systemów, dołączane są również dane z arkuszy kalkulacyjnych, które śledzą w hurtowni danych “nietypowe” zdarzenia wpisywane ręcznie przez kontrolerów spedycji. Aktualnie dołączane są również dane zewnętrzne, takie jak informacje o pogodzie, stanie dróg oraz szczegółowe dane dostawców (dla zleceń dodatkowych), wprowadzane z opóźnieniem na podstawie plików tekstowych, pochodzących z różnych źródeł.

Wykorzystanie danych

Nie tylko dane źródłowe są zróżnicowane, różni są także klienci - zarówno pod względem wymagań, jak i lokalizacji geograficznych. Taka niejednorodność doprowadziła do namnożenia się systemów lokalnych. Dlatego jednym z głównych zadań działu IT jest ustanowienie “jednej wersji prawdy”, przynajmniej dla danych dotyczących klientów.

Wymagania integracji danych

Mając na uwadze zróżnicowanie danych, potrzeb biznesowych oraz wymagań użytkowników, dział IT określił następujący zestaw wymagań dotyczących integracji:

• Należy zintegrować dane z wielu różnych źródeł wewnętrznych i zewnętrznych, tak aby móc odwoływać się do wiarygodnego i spójnego zbioru informacji zarówno historycznych jak i aktualnych.

• Trzeba zredukować opóźnienia w procesie pozyskiwania danych. Dane pochodzące od dostawców muszą być dostępne za pośrednictwem usług sieci Web lub innego bezpośredniego mechanizmu, takiego jak np. FTP.

• Trzeba oczyszczać i usuwać dane zduplikowane, a także zapewnić alternatywne metody gwarantowania jakości danych.

• Coraz bardzie restrykcyjne regulacje prawne wymagają, aby firma utrzymywała czytelne ścieżki audytu. Nie wystarczy, więc tylko utrzymywać wiarygodny zbiór danych, dane powinny być dodatkowo śledzone i certyfikowane.

 Do początku strony Do początku strony

Wyzwania związane z integracją danych

Z pozoru problem integracji danych w naszym rzeczywistym przykładzie wydaje się zadziwiająco prosty. Trzeba pobrać dane z wielu źródeł, oczyścić je i przetransformować, a następnie załadować do odpowiedniego repozytorium, umożliwiającego dokonywanie analiz oraz raportowanie. Niestety w przypadku typowej hurtowni danych lub projektu Business Intelligence korporacje poświęcają 60–80% dostępnych zasobów fazie integracji danych. Dlaczego jest to takie trudne?

Wyzwania technologiczne

Wyzwania technologiczne rozpoczynają się od systemów źródłowych. W dzisiejszych czasach ewoluujemy od zbierania danych w transakcjach (gdy klienci zobowiązują się do odebrania, kupienia lub innego typu pozyskania czegoś) do zbierania danych w transakcjach wstępnych (w których mechanizmy, takie jak wejścia na strony aplikacji webowych lub znaczniki RFID śledzą intencje klientów). Dane są obecnie pobierane nie tylko za pośrednictwem tradycyjnych źródeł i formatów (takich jak bazy danych i pliki tekstowe), ale coraz częściej są dostępne w wielu innych formatach (począwszy od plików o niestandardowym formacie właściwym dla danego rozwiązania po dokumenty Microsoft Office czy pliki XML) oraz są pozyskiwane ze źródeł internetowych, takich jak usługi sieci Web czy strumienie RSS (Really Simple Syndication). Najbardziej typowe wyzwania to:

• Wiele źródeł z różnymi formatami.

• Dane ustrukturyzowane, częściowo ustrukturyzowane i nieustrukturyzowane.

• Kanały danych systemów źródłowych aktywne o różnych porach.

• Duże ilości przesyłanych danych.

Nawet gdybyśmy w idealnym świecie, zdołali zebrać wszystkie potrzebne dane w jednym miejscu, zaczęłyby się pojawiać nowe problemy, takie jak:

• Jakość danych.

• Interpretacja znaczenia różnych formatów danych.

• Transformacja danych do formatu zrozumiałego dla analityków biznesowych.

Załóżmy, że w magiczny sposób pobraliśmy wszystkie potrzebne dane i że możemy oczyścić, przetransformować i zmapować dane do użytecznego formatu. Nadal dzieli nas ogromny dystans od tradycyjnego mechanizmu przenoszenia i integracji danych. Jest to dystans, który dzieli niezmienne, długie procesy o charakterze wsadowym od krótszych, procesów wykonywanych na żądanie. Większość organizacji wykonuje wsadowe procesy podczas “okresów przestoju”, gdy użytkownicy nie obciążają zbytnio systemów. Zwykle ma to miejsce w nocy, gdy nikt nie powinien już siedzieć w biurze, podczas predefiniowanych okresów realizacji procesów wsadowych o czasie wykonania 6-8 godzin. Jednak takie myślenie przestało być prawidłowe ze względu na rosnącą globalizację wszelkiego typu organizacji biznesowych. Okresy przestoju są bardzo krótkie (o ile w ogóle mają miejsce) i zawsze ktoś jest w biurze w jakiejś części świata.

W efekcie mamy do czynienia z:

• Rosnącą presją, aby pobierać dane tak szybko, jak to tylko możliwe.

• Potrzebą pobierania do wielu lokalizacji docelowych jednocześnie.

• Zróżnicowaniem lokalizacji docelowych.

Nie wystarczy osiągnąć powyższe cele, niezwykle ważny jest tu także czas ich realizacji. W ekstremalnych przypadkach, na przykład w firmach internetowych, trzeba dokonywać integracji danych w systemie pracującym w trybie ciągłym. Nie istnieją żadne okresy przeznaczone na realizację instrukcji wsadowych, a opóźnienia nie mogą przekroczyć kilku minut. W wielu tego typu scenariuszach proces podejmowania decyzji jest automatyzowany przez stale działające oprogramowanie.

Skalowalność i wydajność stają się coraz bardziej istotne, w szczególności, gdy ma się do czynienia z firmami, które nie mogą tolerować żadnych okresów przestoju.

Bez odpowiedniej technologii systemy wymagają przemieszczania na prawie każdym kroku procesu magazynowania i integracji danych. Gdy proces wyodrębniania, transformacji i ładowania danych (ETL) musi obejmować różne (w szczególności niestandardowe) źródła danych, a na danych muszą być przeprowadzane bardziej złożone operacje (takie jak eksploracja danych lub tekstu), wymagania związane z czasowym zamrożeniem danych zwiększają się. Jak pokazano na Rysunku 1, z powodu zwiększonej konieczności przechowywania tymczasowego, wrasta również czas konieczny do “zamknięcia pętli” (tzn. dokonania analizy i podjęcia akcji na nowych danych). Te tradycyjne architektury wyodrębniania, ładowania i transformacji (ELT, w przeciwieństwie do ulepszonych procesów ETL, w których ładowanie pojawia się na końcu), nakładają pewne ograniczenia na zdolność systemów w zakresie odpowiadania, na pojawiające się potrzeby biznesowe.

Rysunek 1.

Na zakończenie pojawia się pytanie, w jaki sposób integracja danych wkomponuje się w ogólna architekturę integracyjną organizacji. Ta kwestia staje się jeszcze ważniejsza, gdy do rozwiązania problemów biznesowych korporacji, potrzebujemy zarówno operacji transakcyjnych wykonywanych w czasie rzeczywistym, pozwalającym na integrowanie aplikacji, jak i ogromnego środowiska o charakterze wsadowym, zapewniającego integrację danych.

Wyzwania organizacyjne

Z integracją danych w dużych organizacjach związane są dwa ogólne problemy: wyzwanie wynikające z “żądzy władzy” i wyzwanie wynikające ze “strefy komfortu”.

Wyzwanie wynikające z żądzy władzy

Dostęp do informacji oznacza władzę i często bardzo trudno jest przekonać ludzi do postrzegania danych, jako wartościowego wspólnego majątku firmy. Aby integracja danych korporacyjnych przebiegała pomyślnie, wszyscy właściciele różnych źródeł danych muszą podpisać się pod jej celem i założeniami projektu. Brak współpracy ze strony właściwych organów stanowi jedną z głównych przyczyn niepowodzeń projektów integracji danych. Zaangażowanie zarządu, budowanie kompromisów i silny zespół ds. integracji danych z reprezentantami wielu zainteresowanych stron to jedne z kluczowych czynników sukcesu, które pomagają rozwiązać te problemy.

Wyzwania wynikające ze strefy komfortu

Gdy analizujemy kwestie związane z integracją danych w kontekście pojedynczego, oderwanego wymagania biznesowego, możemy je rozwiązać na wiele sposobów. Kod tworzony własnoręcznie na potrzeby takiego zadania pozwala na rozwiązanie około 60% problemów związanych z integracją danych. Technologie wykorzystywane do rozwiązywania podobnych problemów to między innymi replikacja, ETL, SQL czy też Enterprise Application Integration (EAI). Ludzie mają skłonność do skłaniania się ku technologiom, które są im znane. Chociaż powyższe metody mają możliwość pokrywania się i w osobnych przypadkach mogą prawdopodobnie spełniać swoje zadanie, technologie te zostały zoptymalizowane z myślą o rozwiązywaniu różnych kategorii problemów. W przypadku próby rozwiązania problemu integracji danych korporacyjnych, brak sensownej architektury z wsparciem dla odpowiednio wybranych technologii może okazać się przepisem na porażkę.

Wyzwania ekonomiczne

Wymienione powyżej problemy natury organizacyjnej i technologicznej przyczyniają się do tego, że integracja danych, stanowi najbardziej kosztowny składnik każdego projektu hurtowni danych/Business Intelligence. Główne czynniki zwiększające koszt integracji danych to:

• Pozyskiwanie danych w formacie, który jest niezbędny do integracji danych, często okazuje się być procesem powolnym i zawiłym stanowiącym pole walki o władzę.

• Oczyszczanie i mapowanie danych, pochodzących z wielu źródeł do spójnego sensownego formatu jest niezwykle trudne

• Standardowe narzędzia do integracji danych z reguły nie oferują funkcjonalności lub rozszerzalności, która w satysfakcjonującym stopniu spełniałaby wynikające z projektu wymagania transformacji danych. To może skutkować koniecznością wydania sporych sum na usługi konsultantów, którzy pomogą w tworzeniu specjalnego kodu ETL do realizacji tychże zadań.

• Różne części organizacji, koncentrują się na problemach integracji danych w podległych im centrach danych.

Gdy istnieje realna potrzeba zintegrowania wszystkich podsystemów, konieczne jest poniesienie dodatkowych kosztów, w celu zintegrowania pojedynczych działań w ramach architektury integracji danych, obejmującej całą korporację.

W miarę jak narastają potrzeby organizacji związane z hurtowniami danych oraz analizą biznesową, wadliwa architektura integracji danych staje się coraz trudniejsza w utrzymywaniu i całkowity koszt jej posiadania niebotycznie rośnie.

 Do początku strony Do początku strony

SQL Server 2008 Integration Services

Tradycyjna, skoncentrowana na operacjach ETL integracja danych,pochodzących ze standardowych źródeł, nadal stanowi „serce” większości hurtowni danych. Jednak wymóg uwzględniania bardziej zróżnicowanych źródeł danych, regulacji prawnych oraz globalnych operacji wykonywanych w trybie online, powoduje dynamiczną ewolucję tradycyjnych wymagań związanych z integracją. W tym szybko rosnącym i zmieniającym się obszarze potrzeby oddzielenia wartości od danych oraz zapewnienia możliwości polegania na nich, stają się ważniejsze niż kiedykolwiek wcześniej. Efektywna integracja danych stała się podstawowym elementem efektywnego procesu podejmowania decyzji. SQL Server Integration Services, zapewniają elastyczną, szybką i skalowalną architekturę, która umożliwia efektywną integrację danych we współczesnych środowiskach biznesowych.

W niniejszym dokumencie przekonamy się, dlaczego SQL Server Integration Services (SSIS) to efektywny zestaw narzędzi stanowiący odpowiedź zarówno dla tradycyjnych wymogów operacji ETL, jak również dla ewoluujących potrzeb uniwersalnej integracji danych. Dowiemy się również, co całkowicie odróżnia usługi SSIS od innych narzędzi i rozwiązań oferowanych przez podstawowych dostawców rozwiązań i co powoduje, że stanowią one idealną odpowiedź na zmieniające się wymagania globalnych biznesów, od największych korporacji do najmniejszych firm.

Architektura usług SSIS

Silnik przepływu zadań i przepływu danych

Usługi SSIS składają się zarówno ze zorientowanego na operacje silnika przepływu zadań, jak i skalowalnego, szybkiego silnika przepływu danych. Przepływ danych egzystuje w kontekście ogólnego przepływu zadań. Silnik przepływu zadań zapewnia wsparcie operacyjne oraz zasoby systemowe dla silnika przepływu danych. To połączenie przepływu zadań i przepływu danych umożliwia usługom SSIS zapewnienie efektywności zarówno w tradycyjnych scenariuszach wykorzystania operacji ETL lub hurtowni danych (Data Warehouse - DW), jak i w wielu innych rozszerzonych scenariuszach, takich jak operacje Data Center. W niniejszym dokumencie skoncentrujemy się głównie na scenariuszach, związanych z przepływem danych. Zastosowanie usług SSIS w przepływie pracy zorientowanym na Data Center stanowi samo w sobie osobny temat.

Architektura potoku

Fundamentem usług SSIS jest potok transformacji danych. Potok (ang. Pipeline) ma architekturę zorientowaną na operacje na buforach, która jest niesamowicie szybka w zakresie manipulowania zestawami wierszy danych bezpośrednio po załadowaniu ich do pamięci. Koncepcja polega na zrealizowaniu wszystkich kroków transformacji danych procesu ETL w ramach pojedynczej operacji bez przemieszczania danych, chociaż specyficzne transformacje lub wymagania operacyjne, a nawet sam sprzęt mogą stanowić przeszkodę. Niemniej jednak w celu zapewnienia maksymalnej wydajności architektura unika przemieszczania. Usługi SSIS unikają nawet kopiowania danych do pamięci, o ile to możliwe. Tym różnią się one od tradycyjnych narzędzi ETL, które często wymagają zamrażania danych na prawie każdym etapie procesu magazynowania i integracji danych. Manipulowanie danymi bez ich przemieszczania wykracza poza zakres możliwości tradycyjnych danych relacyjnych oraz plików płaskich, a także poza możliwości tradycyjnych transformacji ETL. Dzięki usługom SSIS dane każdego typu (ustrukturyzowane, nieustrukturyzowane, XML itd.) są konwertowane do struktury tabelarycznej (kolumn i wierszy) przed załadowaniem ich do buforów. Wszystkie operacje, które można zastosować na danych tabelarycznych, można zastosować również na danych przetwarzanych w dowolnym kroku potoku przepływu danych. A to oznacza, że pojedynczy potok przepływu danych może integrować różne źródła danych i wykonywać na nich dowolnie złożone operacje bez konieczności ich zamrażania.

Jednak warto mieć na uwadze, że jeśli ze względów biznesowych lub operacyjnych przemieszczanie jest nieuniknione, usługi SSIS oferują dobre wsparcie również dla tego typu implementacji.

Taka architektura pozwala na wykorzystywanie usług SSIS w wielu różnych scenariuszach integracji danych, począwszy od tradycyjnych operacji ETL zorientowanych na hurtownie danych po niestandardowe technologie integracji informacji.

Łączność ADO.NET

Jednym z istotnych aspektów rozwiązania usług SSIS jest wyodrębnianie lub ładowanie danych. Z tego względu ważne jest, by rozwiązanie integrujące mogło swobodnie łączyć się z szerokim zakresem źródeł danych i w pełni odczuwać korzyści związane z wydajnością oraz niezawodnością, jakie wnosi wszechstronna platforma dostępu do danych. SQL Server 2008 Integration Services zostały zoptymalizowane z myślą o łączności ADO.NET (poprzednie wersje były zoptymalizowane dla OLE DB lub ODBC.) Zastosowanie ADO.NET pozwoliło ulepszyć system integracji i wsparcie dla firm zewnętrznych. SQL Server 2005 Integration Services wykorzystywały standard OLE DB do realizacji ważnych zadań, takich jak operacje Lookup, ale obecnie można wykorzystywać ADO.NET, zarówno do realizacji zadań, jak i w komponentach pełniących rolę źródeł bądź odbiorów danych.

Thread pooling

Gdy rozwiązanie integrujące jest skalowane pionowo, często osiąga ono granicę, po przekroczeniu której, trudno jest osiągnąć dodatkową poprawę wydajności. SQL Server 2008 Integration Services, pokonują to ograniczenie poprzez dzielenie wątków między wieloma komponentami, co zwiększa poziom równoległości i redukuje blokowanie. Prowadząc tym samym do zwiększenia wydajności w dużych systemach, cechujących się wysoką równoległością oraz zastosowaniem wielu procesorów wielordzeniowych.

Poza zwiększeniem wydajności w większości systemów, mechanizm thread pooling pozwala również zredukować konieczność dokonywania ręcznych konfiguracji pakietów SSIS w celu podwyższenia poziomu równoległości, a tym samym podnosi efektywność pracowników działu IT.

Przechowywane transformacje Lookup

Transformacje Lookup stanowią jedną z najbardziej typowych operacji w rozwiązaniach integrujących. Są one szczególnie powszechne w hurtowniach danych, w których rekordy faktów, wykorzystują je do transformowania kluczy naturalnych w odpowiadające im klucze sztuczne. SQL Server 2008 Integration Services zwiększają wydajność operacji Lookup, dostosowując je do potrzeb największych tabel.

Możemy konfigurować transformacje Lookup, aby przechowywać w pamięci podręcznej pewne lub wszystkie dane referencyjne przed przetworzeniem kolumn wejściowych. SQL Server 2008 Integration Services mogą zapełnić pamięć podręczną na podstawie dowolnego źródła i pozwalają, aby pamięć podręczna była większa niż 4 GB, nawet w 32-bitowych systemach operacyjnych. Wykorzystując częściowe przechowywanie w pamięci podręcznej, SQL Server 2008 Integration Services wstępnie rozpoczynają wykonanie operacji Lookup przy użyciu przepływów danych. Mechanizm częściowego przechowywania w pamięci podręcznej wspiera takie technologie jak OLEDB, ADO.Net oraz ODBC w bazodanowych transformacjach Lookup i śledzi trafienia oraz nietrafienia. Jeśli zdecydujemy się na nieprzechowywanie danych odwołań, SQL Server 2008 Integration Services wspierają także wsadowe odwołania do baz danych oraz dopasowania uwzględniające wielkość liter.

Scenariusze integracji

Usługi SSIS w operacjach transferu danych

Chociaż SQL Server 2005 Integration Services stanowiły dużo bardziej funkcjonalny i zaawansowany produkt niż wersje poprzednie, wielu użytkowników uważało, że dokonywanie prostych transferów danych przy użyciu kreatora było bardziej skomplikowane i mniej praktyczne. Wersja SQL Server 2008 Integration Services zawiera poprawiony kreator, wykorzystujący ADO.NET, oferuje ulepszony interfejs użytkownika, realizuje automatyczne konwersje typu danych i jest bardziej skalowalna niż poprzedni wersje.

Rysunek 2.

SSIS do ładowania hurtowni danych

W gruncie rzeczy usługi SSIS stanowią wszechstronne, w pełni funkcjonalne narzędzie ETL. Ich funkcjonalność, skalowalność i wydajność pozwala im z konkurować z przodującymi na rynku produktami, których cena jest z reguły znacznie wyższa. Architektura potoku integracji danych umożliwia im, wykorzystywanie danych pochodzących z wielu równoległych źródeł, wykonywanie wielu złożonych transformacji, a następnie rozmieszczanie danych w wielu równoległych lokalizacjach docelowych. Taka architektura pozwala na stosowanie usług SSIS nie tylko w przypadku dużych zbiorów danych, ale również złożonych przepływów. Gdy dane przepływają ze źródła (źródeł) do lokalizacji docelowej (docelowych), możemy dzielić, scalać i łączyć strumień danych z innymi strumieniami, a także stosować na nim inne metody manipulacji. Rysunek 3 pokazuje przykład takiego przepływu.

Rysunek 3.

SQL Server 2008 oferuje wsparcie dla mechanizmu Change Data Capture (CDC), który można wykorzystywać do rejestrowania operacji wstawiania, aktualizacji i usuwania w tabelach SQL Server i udostępniania szczegółów tych zmian w łatwym w użyciu formacie relacyjnym. Zastosowanie mechanizmu CDC przynosi korzyści na przykład w przypadku implementacji rozwiązania ETL, z wykorzystaniem SQL Server 2008 Integration Services, ponieważ pozwala zagwarantować, że proces wyodrębniania, obejmować będzie jedynie zmodyfikowane dane. A to eliminuje nakład pracy, jakiego wymagałoby wykonanie pełnego odświeżenia danych, które w każdej operacji ETL objęłoby także dane niezmienione.

Usługi SSIS mogą wykorzystywać dane z (i ładować dane do) szerokiego zakresu źródeł, takich jak zarządzane (ADO.NET), OLE DB, ODBC, plik płaski, Microsoft Office Excel® oraz XML, przy użyciu specjalistycznego zestawu komponentów nazywanych adapterami. Usługi SSIS mogą nawet wykorzystywać dane z niestandardowych adapterów danych (rozwijanych przez dział wewnętrzny lub dostawców zewnętrznych), w celu umożliwienia integracji przepływu danych SSIS z wykorzystywanym w organizacji nietypowym źródłem. Usługi SSIS, zawierają zestaw potężnych komponentów transformacji, które umożliwiają dokonywanie na danych manipulacji niezbędnych do zbudowania hurtowni danych. Te komponenty transformacji to m.in.:

  • Aggregate. Realizuje wiele agregacji w jednym przejściu.
  • Sort. Sortuje dane w przepływie.
  • Lookup. Wykonuje elastyczne, przechowywane w pamięci podręcznej operacje odwołań do referencyjnych zbiorów danych.
  • Pivot oraz UnPivot. Dwie osobne transformacje różnego typu przestawiania danych w przepływie.
  • Merge , MergeJoin oraz UnionAll. Pozwala realizować operacje join oraz union.
  • DerivedColumn. Dokonuje manipulacji na poziomie kolumn, takich jak operacje tekstowe, liczbowe, daty/czasu oraz translacje stron kodowych. Ten jeden komponent obejmuje to, co inni dostawcy mogliby podzielić na wiele różnych transformacji.
  • DataConversion. Konwertuje dane między różnymi typami (takimi jak liczba i ciąg).
  • Audit. Dodaje kolumny z metadanymi pochodzenia i inne dane operacyjne audytu.

Poza tymi podstawowymi transformacjami hurtowni danych, usługi SSIS zapewniają także wsparcie dla zaawansowanych potrzeb hurtowni danych, takich jak mechanizm Slowly Changing Dimensions (SCD). Kreator Slowly Changing Dimensions usług SSIS prowadzi użytkowników przez proces definiowania wymogów w zakresie zarządzania wolno zmieniającymi się wymiarami, a następnie w oparciu o podane przez nich informacje generuje kompletny przepływ danych z wieloma transformacjami w celu zaimplementowania procesu ładowania wolno zmieniających się wymiarów. Zapewnia wsparcie dla standardowych typów SCD Type 1 oraz Type 2 wraz z dwoma nowymi typami SCD (Fixed Attributes oraz Inferred Members). Rysunek 4 prezentuje stronę kreatora Slowly Changing Dimensions.

Rysunek 4.

Rysunek 5 demonstruje przepływ danych wygenerowany przy pomocy tego kreatora.

Usługi SSIS możemy również wykorzystać do zasilania mechanizmu przechowywania wielowymiarowego OLAP (MOLAP) usług Analysis Services bezpośrednio z potoku przepływu danych. To oznacza, że możemy użyć usług SSIS nie tylko do tworzenia relacyjnych hurtowni danych, ale także do ładowania wielowymiarowych modułów na potrzeby aplikacji analitycznych.

SSIS a jakość danych

Jedną z kluczowych funkcji usług SSIS, obok jej zdolności do integrowania danych, jest zdolność do integrowania różnych technologii, służących do przetwarzania danych. To umożliwiło usługom SSIS włączenie innowacyjnych, bazujących na logice rozmytej komponentów do oczyszczania danych. Te komponenty opracowane przez badaczy z działu Microsoft Research, reprezentują najnowsze osiągnięcia w tym obszarze. Przyjęte podejście jest niezależne od domeny, to znaczy nie zależy od żadnego określonego obszaru danych, takiego jak np. dane referencyjne adres/kod. To pozwala na wykorzystanie tych transformacji do oczyszczania większości typów danych, nie tylko danych adresowych.

Usługi SSIS zapewniają głęboką integrację z funkcjonalnością Data Mining usług Analysis Services. Mechanizm Data Mining rozpoznaje wzorce w zbiorze danych i odzwierciedla je w modelu eksploracji. Następnie ten model eksploracji można wykorzystać do formułowania hipotez, które wartości faktycznie należą do zbioru danych, a które mogą być nieprawidłowe. A zatem można stosować Data Mining jako narzędzie do kontroli jakości danych.

Wsparcie dla zaawansowanego przekierowywania danych w usługach SSIS pomaga nam nie tylko identyfikować nieprawidłowe dane, ale także automatycznie je poprawiać, zastępując je lepszymi wartościami. To pozwala na zrealizowanie scenariusza oczyszczania typu “closed loop” (zamknięta pętla). Rysunek 6 pokazuje przykład przepływu danych oczyszczania o charakterze zamkniętej pętli.

Rysunek 6.

Poza tymi wbudowanymi funkcjami kontroli jakości danych, usługi SSIS mogą być rozszerzane tak, aby współpracowały z rozwiązaniami oczyszczania danych dostarczanymi przez inne firmy.

Zastosowanie usług SSIS w szerszym zakresie niż tradycyjna domena ETL

Zdolność potoku przepływu danych do przetwarzania prawie każdego typu danych, głęboka integracja z usługami Analysis Services, wsparcie dla rozszerzania wielu różnych technologii przetwarzania danych oraz rozbudowany, funkcjonalny silnik przepływu pracy, pozwalają na wykorzystywanie usług SSIS w wielu scenariuszach, które nie są tradycyjnie postrzegane, jako operacje ETL

Architektura zorientowana na usługi

Usługi SSIS zawierają wsparcie dla danych źródłowych XML w potoku przepływu danych, z uwzględnieniem zarówno danych znajdujących się w plikach na dysku, jak i danych dostępnych pod adresami URL, pobieranych przy użyciu protokołu HTTP. Dane XML są “szatkowane” do postaci tabelarycznej, która ułatwia dalsze przetwarzanie ich w przepływie danych. To wsparcie dla formatu XML może współdziałać ze wsparciem dla usług sieci Web. Usługi SSIS mogą podejmować interakcję z usługami sieci Web w kontroli przepływu w celu przechwycenia danych w formacie XML.

Możliwe jest pobieranie danych z plików XML za pośrednictwem usługi Microsoft Message Queuing (MSMQ) oraz z sieci Web przy użyciu protokołu HTTP. Usługi SSIS umożliwiają przetwarzanie danych XML m.in. za pomocą technologii XSLT, XPATH, diff/merge. Umożliwiają także kierowanie strumienia danych XML do przepływu danych.

To pozwala usługom SSIS uczestniczyć w elastycznej architekturze zorientowanej na usługi (SOA).

Eksploracja danych oraz tekstu

Usługi SSIS oferują nie tylko głęboką integrację z funkcjami Data Mining usług Analysis Services, ale również komponenty eksploracji tekstu. Eksploracja tekstu (nazywana również klasyfikacją tekstu) obejmuje identyfikowanie relacji między kategoriami biznesowymi a danymi tekstowymi (słowami oraz zwrotami). To pozwala wykrywać w danych tekstowych kluczowe terminy i w oparciu o nie automatycznie identyfikować “interesujący” tekst. A to z kolei pociąga za sobą działania zwrotne, zmierzające do osiągnięcia celów biznesowych, takich jak wzrost satysfakcji klientów i poprawa jakości produktów oraz usług.

Źródło danych na żądanie

Jedną z unikalnych funkcji usług SSIS jest lokalizacja docelowa DataReader, która umieszcza dane w obiekcie ADO.NET DataReader. Po dołączeniu tego komponentu do potoku przepływu danych możemy wykorzystywać pakiet, który zawiera lokalizację docelową DataReader w roli źródła danych, udostępnioną, jako sam obiekt ADO.NET DataReader. A zatem można stosować usługi SSIS nie tylko w roli tradycyjnego narzędzia ETL do ładowania hurtowni danych, ale również w roli źródła danych, które może dostarczać zintegrowane, dostosowane i oczyszczone dane, pochodzące z wielu źródeł na żądanie. Takie podejście pozwoliłoby nam na przykład, wspomóc usługi Reporting Services w wykorzystywaniu danych, pochodzących z wielu różnych źródeł poprzez zastosowanie pakietu SSIS w roli źródła danych.

Jeden z możliwych scenariuszy integrujących wszystkie te funkcje, polega na identyfikowaniu i dostarczaniu, interesujących artykułów, pochodzących ze źródeł danych RSS w ramach zwykłego raportu. Rysunek 7 prezentuje pakiet SSIS, który pobiera dane ze źródeł danych RSS dostępnych w Internecie, integruje dane z usługi sieci Web, dokonuje eksploracji tekstu w celu wyszukania interesujących artykułów, pochodzących ze źródeł danych RSS, a następnie umieszcza te interesujące artykuły w lokalizacji docelowej DataReader, aby ostatecznie mogły one zostać wykorzystane w raporcie usług Reporting Services.

Rysunek 7.

Rysunek 8 demonstruje zastosowanie pakietu SSIS w roli źródła danych w kreatorze Report Wizard.

Rysunek 8.

Z perspektywy narzędzia ETL scenariusz ten jest bardzo niezwykły, ponieważ nie obejmuje operacji wyodrębniania, transformacji ani ładowania.

SSIS jako platforma integracji

Usługi SSIS wychodzą poza zakres funkcjonalności narzędzia ETL nie tylko w kontekście realizacji niestandardowych scenariuszy, ale także z tego względu, że tworzą one prawdziwą platformę do integracji danych. Usługi SSIS stanowią część platformy SQL Server Business Intelligence (BI), która umożliwia rozwijanie aplikacji BI typu end-to-end.

Zintegrowana platforma programistyczna

Zarówno usługi SQL Server Integration Services, Analysis Services, jak i Reporting Services wykorzystują to samo, bazujące na Microsoft Visual Studio® środowisko programistyczne o nazwie SQL Server Business Intelligence (BI) Development Studio. BI Development Studio oferuje zintegrowane środowisko programistyczne (IDE) służące do rozwijania aplikacji BI. Ta wspólna infrastruktura, umożliwia integrację na poziomie meta danych pomiędzy różnymi projektami programistycznymi (integracyjnymi, analitycznymi i raportującymi). Przykładem tego typu wspólnej struktury jest Data Source View (DSV), który stanowi dostępną w trybie offline definicję schematu/widoku źródła danych i jest wykorzystywany przez wszystkie trzy typy projektów BI.

To środowisko IDE oferuje ułatwienia, takie jak integracja z oprogramowaniem do kontroli wersji (np. VSS) z wsparciem dla funkcji zespołowych np. “ewidencjonowania/wyewidencjonowywania”. Dzięki nim to środowisko zaspokaja potrzeby wiążące się z zespołowym rozwijaniem korporacyjnych aplikacji Business Intelligence. Rysunek 9 prezentuje rozwiązanie BI Development Studio, które składa się z projektu integracyjnego, analitycznego oraz raportującego.

Rysunek 9.

Środowisko to nie tylko daje możliwość rozwijania aplikacji BI z poziomu pojedynczego produktu, ale może także posłużyć do rozwijania innych projektów Visual Studio (przy użyciu Visual C#®, Visual Basic® .NET itp.), a zatem oferuje programistom wsparcie na każdym etapie prowadzenia projektu.

Poza zintegrowanym środowiskiem programistycznym BI, BI Development Studio zawiera funkcje,pozwalające na w pełni funkcjonalne debugowanie w czasie rzeczywistym pakietów SSIS. Między innymi możliwość ustawiania pułapek (ang. breakpoints) i wsparcie dla standardowych konstrukcji programistycznych np. obserwowania zmiennych. Prawdziwie unikalną funkcję stanowi Data Viewer, który umożliwia wyświetlania wierszy danych, gdy usługi Integration Services przetwarzają je w potoku przepływu danych. Ta wizualizacja danych jest dostępna zarówno w formacie zwykłej siatki danych, jak i reprezentacji graficznej, takiej jak wykres punktowy bądź słupkowy. Co więcej, istnieje możliwość posiadania wielu połączonych przeglądarek, które prezentują dane w wielu formatach jednocześnie. Rysunek 10 pokazuje przykład danych geograficznych wizualizowanych przy użyciu wykresu typu Scatter Plot oraz Grid.

Rysunek 10.

Programowalność

Usługi SSIS nie tylko oferują profesjonalne środowisko programistyczne, ale także udostępniają całą swoją funkcjonalność za pośrednictwem zestawu bogatych interfejsów API. Interfejsy API są dostępne zarówno z poziomu kodu zarządzanego (.NET Framework), jak i natywnego (Win32) i umożliwiają programistom rozszerzanie funkcjonalności usług SSIS poprzez tworzenie niestandardowych komponentów w dowolnym języku wspieranym przez .NET Framework (np. Visual C#, Visual Basic .NET) oraz Visual C++. Te niestandardowe komponenty mogą stanowić zadania przepływu pracy lub transformacje przepływu danych (włączając adaptery źródeł i lokalizacji docelowych). To ułatwia dołączanie istniejących źródeł danych oraz funkcjonalności do procesów integracji SSIS, a tym samym pozwala efektywnie wykorzystywać poprzednie inwestycje w starsze technologie. Upraszcza także włączanie komponentów, pochodzących od zewnętrznych dostawców oprogramowania.

Skrypty

Wspomniana już rozszerzalność odnosi się nie tylko do niestandardowych komponentów wielokrotnego użytku, ale obejmuje także rozszerzalność bazującą na skryptach. Usługi SSIS, zawierają komponenty skryptowe zarówno dla przepływów zadań, jak i przepływów danych. Umożliwiają one pisanie skryptów w języku Visual Basic.NET w celu dodania funkcjonalności ad hoc (takich jak źródła danych czy lokalizacje docelowe), a także ponownego wykorzystania istniejących już funkcjonalności spakowanych do zestawów .NET Framework.

SQL Server 2008 zawiera program Visual Studio Tools for Applications, który zapewnia środowisko skryptowe, w którym można implementować komponenty skryptowe, wykorzystując język Visual Basic.NET lub C#.

Rysunek 11 prezentuje przykład skryptu, który sprawdza istnienie pliku Office Excel.

Rysunek 11.

Ten model rozszerzalności sprawia, że usługi SSIS są nie tylko narzędziem do integracji danych, ale również magistralą integracyjną, do której można łatwo dołączać technologie takie jak Data Mining, eksplorację tekstu oraz funkcje związane z Unified Dimensional Model (UDM), aby realizować złożone scenariusze integracji obejmujące praktycznie dowolne operacje przetwarzania i struktury danych.

 Do początku strony Do początku strony

Zwiększenie dostępności integracji danych

Elastyczna i rozszerzalna architektura usług SSIS, pozwala im sprostać większości wyzwań technologicznych związanych z integracją danych wymienionych we wcześniejszej części niniejszego dokumentu. Jak pokazano na Rysunku 12, usługi SSIS eliminują (lub przynajmniej minimalizują) niepotrzebne przechowywanie tymczasowe. Ponieważ realizują one złożone manipulacje na danych w pojedynczej operacji potoku, umożliwia im to, reagować na zmiany i wzorce danych w szybki sposób i w czasie, który pozwala na domknięcie pętli i podjęcie działań zwrotnych. Ta cecha odróżnia je od tradycyjnych architektur, które wymagają czasowego zamrożenia danych i przez to stają się niepraktyczne w kontekście domykania pętli i podejmowania sensownych działań na danych.

Rysunek 12.

Rozszerzalna natura usług SSIS umożliwia organizacjom wykorzystywanie dotychczasowych inwestycji w niestandardowy kod, integrujący dane poprzez opakowanie go przy pomocy rozszerzeń usług SSIS wielokrotnego użytku. Co z kolei pozwala na czerpanie pełnych korzyści z takich funkcji jak rejestrowanie, debugowanie, integracja BI itd. To znacznie ułatwia pokonywanie niektórych wyzwań organizacyjnych, które zostały wymienione we wcześniejszej części niniejszego dokumentu.

Umiarkowany całkowity koszt posiadania (TCO) usług SSIS (oraz pozostałej części SQL Server) sprawia, że korporacyjna integracja danych staje się dostępna we wszystkich segmentach rynku i przestaje być wyłącznie domeną największych (i najbogatszych) przedsiębiorstw. Jednocześnie architektura usług SSIS została zoptymalizowana tak, aby wykorzystywać możliwości nowoczesnego sprzętu i zapewniać wydajność oraz skalowalność, która pozwala spełniać oczekiwania najbardziej wymagających klientów. Usługi SSIS sprawiają, że funkcjonalna, skalowalna integracja danych jest osiągalna dla wszystkich klientów, od największych korporacji po małe i średnie przedsiębiorstwa. A w połączeniu z pozostałymi funkcjami SQL Server, infrastrukturą obsługi klienta firmy Microsoft (poczynając od długiego i dokładnego okresu beta testów poprzez wspaniałą społeczność użytkowników po wsparcie techniczne na poziomie Premium) oraz spójnością i integracją z pozostałą częścią produktów oferowanych przez firmę Microsoft, usługi SSIS stają się całkowicie unikalnym zestawem narzędzi, który otwiera nowe możliwości w zakresie integracji danych.

 Do początku strony Do początku strony

Wnioski

Wiele firm wykorzystuje technologie integracji danych do dostarczania znaczących, wiarygodnych informacji, pozwalających im utrzymać konkurencyjność w dzisiejszym świecie biznesu. Usługi SQL Server 2008 Integration Services (SSIS), pomagają działom technologii informacyjnej w realizowaniu wymagań korporacji związanych z integracją danych. Usługi SQL Server 2008 Integration Services, stawiają czoła wymaganiom związanym z oczyszczaniem, transformowaniem i mapowaniem wielu źródeł danych o dużych rozmiarach w celu sprowadzenia ich do użytecznego formatu. Nowe funkcje poszerzają możliwość skalowania pionowego i poprawiania wydajności, przyspieszając proces rozwoju i obniżając całkowity koszt rozwiązania.

Dodatkowe informacje:

https://www.microsoft.com/sql/technologies/integration/default.mspx

 Do początku strony Do początku strony

Microsoft SQL Server 2008