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.

Integration services new project

Po založení SSIS projektu je automaticky založen první balíček

ssis package

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ě

  1. 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
  2. Project Connection managers – Zde si definujeme připojení na různé sources a destinations (např zdroj je Mysql databáze a destination SQL Server)
  3. 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).

Data flow task SSIS

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.

5/5 - (2 votes)

Použité zdroje
  1. 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 

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *