Tento článek slouží jako seznámení se SQL Server Integration Services (SSIS) pro SQL Server. Obsahuje úvodní představení této sady nástrojů pro vývoj datových toků. SQL Server je většinou obecně chápána zejména jako databázová platforma obsahující silný database engine a klienta – Management Studio pro práci s databázemi. Stejně jako u řady jiných SW existuje řada edic, z nichž některé jsou přístupné s určitými omezeními zdarma – SQL Server Express nebo Developer edice.
Pravdou však je, že SQL Server toho nabízí mnohem více. Kromě výše zmíněného podporuje Business Intelligence prostřednictvím komponent SQL Server Integration Services (SSIS) a SQL Reporting Services (SSRS).
K čemu se SSIS používá a proč vlastně existuje?
Jak jsem již zmínil, tak SSIS je jakousi nadstavbou databázové platformy v rámci SQL Server. Představme si prostředí typu datový sklad nebo datamart.
Datové sklady – je centralizované úložiště, ve kterém se nacházejí informace (data) z celé firmy a tyto informace jsou uloženy v takové formě, ve které se dají jednoduše a srozumitelně reportovat. Datové sklady obsahují většinou historický kontext.
Z toho vyplývá, že datové sklady maji oproti databázi pro aplikace významná specifika.
- Zpracovávají data z mnoha podnikových systémů
- Data jsou před uložením do Datového skladu transformována (konvence pojmenování, transformace do vhodného schématu, atp.)
- Data jsou historizována – aplikace obsahuji aktuální stav, data warehouse obsahuje i historické verze daného záznamu
- Řádově větší objemy dat
- Data jsou procesovány do skladu hromadně mimo business hours – obvykle denně v noci
Vzhledem k výše popsanému je jasné, že abychom byli schopni všechna tato data automaticky a pravidelně (denně) efektivně zpracovávat, potřebujeme k tomu nástroj. A přesně za tímto účelem SSIS existuje.
SQL Server Integration Services (SSIS) – Představení, ETL procesy
SSIS je sada nástrojů, které umožňují vytvářet efektivně datové integrace. V rámci těchto integrací hovoříme o tzv. ETL procesech:
- Extract – extrakce dat ze zdrojového systému
- Transform (transformace dat) – Data v centrálním úložišti by měla mít striktní pravidla co se týče struktury objektů, pojmenování a archtektury
- Load – Nahrání dat do cílového úložiště
Datové integrace vytváříme pomocí tzv. SSIS balíčků (packages). Tyto balíčky mají extension .dtsx a každý balíček obsahuje určitou logiku. Můžeme mít například zvláštní balíček pro jednotlivé fáze ETL procesu, anebo můžeme v rámci jednoho balíčku pokrýt fáze všechny. To je na nás jak si strukturu navrhneme tak, aby bylo co nejpřehlednější. Ve větších prostředích se udržují stovky SSIS balíčků a vhodná logická struktura a pojmenování je důležité klíčové pro přehlednost.
SSIS package vytváříme ve speciálním programu BIDS – Business Intelligence Development Studio. Pro tool nově existuje ekvivalentní název SSDS (SQL Server Data Tools)
BIDS/SSDS – Business Intelligence Data Studio (SQL Server Data Tools) a SSIS
Je software, který je podobný Visual studiu a jeho instalaci lze zvolit při instalaci SQL Server. Obsahuje sadu nástrojů pro vývoj reportů a SSIS balíčků. Vývoj s tímto programem je poměrně jednoduchý a intuitivní. Není potřeba programování, protože obsahuje grafický interface.
SSDS si můžete nainstalovat dodatečně (Visual studio není potřeba) – SQL Server Data Tools (SSDT) for Visual Studio 1
Pro vytvoření prvního SSIS balíčku stačí jen spustit program a založit si Integration Services Projekt. Pod projektem si založít nový package a začít tvořit.
Po založení SSIS projektu je automaticky založen první balíček
Co vidíme? Popis prostředí BIDS
Pokud vidíte takový obrázek po otevření prvního projektu poprvé, tak se vám asi může zatočit hlava, protože nevíte co a jak. Není to ale vůbec složité a je potřeba se s nástrojem jen seznámit. Co vidíme na screenshotu si pojďme popsat.
Solution Explorer
V pravé horní části vidíme náš projekt, který jsem pojmenoval jako “ssis_test”. V rámci tohoto projektu vidíme i SSIS package, který se automaticky zakládá s pojmenováním “package” – lze jej přejmenovat. Vidíme tam toho ale více, takže postupně
- Project params – zatím v začátcích nebudeme potřebovat, ale jde o parametry, které můžeme definovat na úrovni projektu a následně si je přebrat do packages. Jedná se o globální parametr
- Project Connection managers – Zde si definujeme připojení na různé sources a destinations (např zdroj je Mysql databáze a destination SQL Server)
- SSIS Packages – Zde vidíme jednotlivé balíčky, většinou v rámci jednoho projektu združujeme desítky/stovky balíčků podobného charakteru
SSIS balíček a pracovní prostředí BIDS/SSDS
Opusťme nyní část Solution Explorera a soustřeďme se na prostřední část obrazovky. Stále máme otevřen automaticky založený SSIS balíček pojmenovaný “Package”.
- Package Connection manager – Zkušenému oku neuniklo, že pokud máme otevřený package, tak nad balíčkem vidíme connection managera a variables. Je to z toho důvodu, že ne vždy chceme mít definovánu connection nad projektem, ale někdy připojení chceme mít nad balíčkem.
- Package Variables – Proměnné, které mají scope pouze na balíček, projekt na ně nevidí. Do variables si můžeme ukládat různé pomocné vypočítané proměnné (lze si je přebrat i z externího zdroje) a tyto proměnné potom předat SSIS komponentám (viz dále).
- SSIS Toolbox – v levé části pracovní plochy vidíme SSIS toolbox. Ten obsahuje sadu komponent, která slouží k vývoji samotného balíčku (stažení dat, transformace a nahrání dat do cílového úložiště). Jednotlivé komponenty potažením myší přetahujeme do části controll flow a následně je nastavíme jak potřebujeme. Komponenty lze skládat za sebe “špagetovým systémem”, to znamená že se pak pouští postupně za sebou. Pro zajímavost se můžete podívat na článek SSIS Connection Manager + Příklad Jednoduché Datové Pumpy (screenshot je z článku).
Pokud se chcete s SSIS toolboxem seznámit podrobněji, tak doporučuji článek – SSIS Toolbox – Seznam všech komponent a tasků. V článku najdete seznam toho, co toolbox obsahuje a přejetím myši nad nějakou komponentu se s ní můžete seznámit.
Poté co je SSIS balíček vytvořen jen můžeme nahrát přímo na SQL server a prostřednictvím SQL agenta jej automaticky spouštět (třeba každý den). Tím docílíme automatizace celého procesu o který se již dále nemusíme starat.
Do budoucna bych chtěl jednotlivé komponenty rozpracovat formou SSIS tutoriálů i s příklady.
Použité zdroje
- Microsoft, Download SQL Server Data Tools (SSDT) for Visual Studio [on-line]. [cit. 2019-10-24]. Dostupné z WWW: https://learn.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver15