SSIS – czyli ETL w kilka chwil

Jak utworzyć bazę danych łączącą dane z różnych źródeł?

Jeśli mamy pod ręką pakiet Visual Studio BI, nazwane w najnowszej wersji SQL SErver (2012 RC0) SQL Server Data tools, możemy dość szybko załadować dane do dowolnej bazy z różnego rodzaju źródeł danych.

Aby tego dokonać należy otworzyć VS BI, wybrać nowy projekt:

obrazek1

Następnie należy wybrać Integration Servics Project, w przypadku posiadania starszej wersji VS BI, interfejs użytkownika może wyglądać nieco inaczej, nie mniej wszystkie wykorzystywane funkcje powinny być dostępne.

obrazek2

Kolejno z ToolBox należy wybrać kontrolkę DataFlow:

Kontrolkę należy kliknąć dwukrotnie, wtedy wejdziemy w tak zwane data flow.

obrazek3

Po lewej stronie w toolboxie mamy kilka kategorii kontrolek do wyboru, pierwszą interesującą grupą jest Data source(other sources). W przypadku od źródła danych wybieramy odpowiednią kontrolkę na screenie poniżej wybrałem źródło flat source file – czyli zwykły plik tekstowy – w tym wypadku najzwyklejszy CSV.
Po kliknięciu kontrolki należy utworzyć ‘link’ do pliku i odpowiednio skonfigurować go jako źródło.

obrazek4

Całość jest dość intuicyjna(Jeśli ktoś już miał do czynienia z plikiem CSV). Po skonfigurowaniu źródła,
należy jeszcze mieć miejsce docelowe, ja utworzyłem tabelkę:

create table etl_badresy (
kod_p varchar(255),
miasto varchar(255),
dzielnica varchar(255),
ulica varchar(255)
)

Jeśli mamy miejsce docelowe należy dorzucić do dataflow kontrolkę z sekcji other destinations. Ja wrzucam dane na SQL Server więc wybrałem kontrolkę ADO.NET Destination. Z destinations należy uważać, lubią się wysypywać(zwłaszcza Oraclowe). W przypadku pracy na maszynie z procesorem 64BIT i systemem kompilowanym pod X64 niektóre sterowniki(connectory) baz nie działają najlepiej, zalecam przełączenie projektu na x86. Po skonfigurowaniu miejsca docelowego łączymy strzałką obie kontrolki (źródło i miejsce docelowe).

obrazek5
Po wybraniu odpowiedniej instancji i bazy danych wybieramy odpowiednią tabelę z listy(tą do której chcemy ładować dane).

obrazek6

Kolejno musimy wykonać mapowanie kolumn, w konfiguracji miejsca docelowego wybieramy mappings(po lewej).
i przeciągamy kolumny ze źródła do odpowiedniego miejsca docelowego. Jeśli nazwy kolumn są tożsame zostaną zmapowane automatycznie.

obrazek7

Na tym etapie możemy przeprowadzić test projektu. Wciskając F5 (kompilacja projektu w tradycyjnym VS). Powinniśmy zobaczyć plus minus coś takiego:

obrazek8

Jeśli wszystko się powiodło po chwili (chwila może być dłuższa w przypadku większych plików) powinniśmy zobaczyć coś takiego:

obrazek9

W ten sposób zakończyliśmy najprostszy projekt ETL 🙂