Při používání datového toku SSIS můžeme provádět ETL úlohy, které lze použít pro migraci dat, vykládku dat, návrh a implementaci datového skladu.
V tomto článku vysvětluji, jak exportovat data z tabulky SQL do excelového a textového souboru pomocí úlohy toku dat SSIS.
V této ukázce provedu následující kroky:
1. Vytvořte balíček SSIS a vytvořte správce připojení ADO.NET.
2. Vytvořte úlohu toku dat, která má zdroj ADO.NET k naplnění dat ze serveru SQL. Data budou zapsána do souboru Excel a textového souboru, proto nakonfigurujte cíl plochého souboru a cíl Excel.
3. Spusťte balíček SSIS a ověřte, že data byla zapsána do excelových a textových souborů.
Vytvořte balíček SSIS a připojení ADO.NET
Pro tuto ukázku jsem použil SQL Server Data tools 2015. Nejprve vytvářím nový projekt integrační služby s názvem „Export dat SQL “:
Po vytvoření projektu SSIS vytvořím úlohu datového toku. Úloha toku dat bude jako zdroj používat SQL Server. Jako cíl bude určen soubor Excel a plochý soubor. Před vytvořením úlohy toku dat musíme vytvořit ADO.NET připojení .
Nakonfigurujte připojení ADO.NET
Jak jsem uvedl výše, budu používat „WideWorldImportors ” demo databáze, kterou lze stáhnout zde.
Chcete-li vytvořit „Zdroj “, klikněte pravým tlačítkem na „Správci připojení “ a vyberte „Nové připojení ADO.NET “, jak je znázorněno na obrázku níže:
Zobrazí se dialogové okno „Konfigurace Správce připojení ADO.NET " otevře. V dialogovém okně klikněte na „Nový ” jak je znázorněno na následujícím obrázku:
Zobrazí se dialogové okno „Správce připojení " otevře. Nakonfiguruji parametry konektivity SQL:
1. Název serveru – je název hostitele nebo IP adresa databázového serveru, kde je nainstalován SQL.
2. Ověření – je „typ ověřování“ používaný k připojení k serveru, který je vybrán v „Název serveru “. Může to být buď SQL Authentication nebo Windows Authentication.
3. Název databáze – je název databáze, kterou budeme používat pro extrakci dat.
V této ukázce použiji svůj místní VM. K připojení instance SQL použiji ověřování systému Windows a budu používat „WideWorldImportors ” databáze.
Podívejte se na následující obrázek:
Klikněte na „Test připojení ” pro ověření úspěšného připojení. Podívejte se na následující obrázek:
Jakmile je připojení SQL nakonfigurováno, uvidíte připojení v části „Správci připojení " okno. Nachází se ve spodní části okna ovládacího toku, jak je znázorněno na následujícím obrázku:
Vytvoření úlohy toku dat
Úloha toku dat se používá k přesunu dat mezi zdroji a cílem. Lze jej použít k provádění úloh ETL (extrahování, transformace a načítání). Data budu exportovat z SQL Serveru do Excelu nebo do textového souboru, proto použijeme úlohu toku dat.
Chcete-li nakonfigurovat úlohu datového toku, nejprve přetáhnu úlohu datového toku do okna řídicího toku a přejmenuji ji na „Export dat o prodeji do Excelu “, jak je znázorněno na obrázku níže:
Konfigurace zdroje ADO.NET
K naplnění dat z tabulky SQL Serveru musíme nakonfigurovat zdrojovou komponentu ADO.Net. Dvakrát klikněte na „Úloha toku dat " udělat to. Okno „Úloha konfigurace datového toku " otevře. Případně můžete vybrat „Datový tok “, který se nachází vedle položky „Control Flow “. Protože jsme již nakonfigurovali připojení SQL, přetáhneme ADO.NET Source do okna toku dat, jak je znázorněno na obrázku níže:
Nyní nakonfigurujeme zdroj ADO.NET, abychom mohli extrahovat data z tabulky pomocí dotazování tabulky SQL Serveru. Chcete-li to provést, dvakrát klikněte na „ADO Net source “. Otevře se dialogové okno. V dialogovém okně musíme nakonfigurovat následující parametry:
1. Správce připojení ADO.NET – vyplní seznam připojení ADO.NET vytvořených v balíčku SSIS.
2. Režim přístupu k datům má dvě možnosti:
A. Pokud vyberete „Tabulka nebo zobrazení “ v „režimu přístupu k datům “, „Název tabulky nebo zobrazení ” se vyplní tabulkami a pohledy, které existují v databázi. Viz obrázek níže:
b. Pokud vybereme „Příkaz SQL “, otevře se víceřádkové textové pole, do kterého můžeme napsat Ad-Hoc dotaz pro extrakci dat z databáze.
Viz obrázek níže:
Již jsme vytvořili připojení ADO.Net, takže v rozevíracím seznamu Správce připojení ADO.NET vyberte jeho vytvořený název. V této ukázce napíšeme vlastní dotaz, takže metoda přístupu k datům bude „příkaz SQL “.
Vytvořil jsem dotaz, který mi poskytne seznam zákazníků z databáze. Tento dotaz je níže:
SELECT s.CustomerID, s.CustomerName, sc.CustomerCategoryName, pp.FullName AS PrimaryContact, ap.FullName AS AlternateContact, s.PhoneNumber, s.FaxNumber, bg.BuyingGroupName, dm.DeliveryMethodName AS DeliveryMethod, c.CityName AS CityName FROM Sales.Customers AS s LEFT OUTER JOIN Sales.CustomerCategories AS sc ON s.CustomerCategoryID = sc.CustomerCategoryID LEFT OUTER JOIN [Application].People AS pp ON s.PrimaryContactPersonID = pp.PersonID LEFT OUTER JOIN [Application].People AS ap ON s.AlternateContactPersonID = ap.PersonID LEFT OUTER JOIN Sales.BuyingGroups AS bg ON s.BuyingGroupID = bg.BuyingGroupID LEFT OUTER JOIN [Application].DeliveryMethods AS dm ON s.DeliveryMethodID = dm.DeliveryMethodID LEFT OUTER JOIN [Application].Cities AS c ON s.DeliveryCityID = c.CityID
Nakonec bude zdrojový editor ADO.NET vypadat jako na obrázku níže:
Náhled výstupu dotazu můžeme zobrazit kliknutím na „Náhled ” v dialogovém okně. Výsledek dotazu bude takový, jak je znázorněno na obrázku níže:
Nakonfigurujte cíl aplikace Excel
Jakmile nakonfigurujeme zdroj ADO.NET, nakonfigurujeme cíl Excel.
V panelu nástrojů SSIS přetáhněte cíl aplikace Excel do okna toku dat a přejmenujte jej na „Sales Excel File “, jak je znázorněno na obrázku níže:
Dvakrát klikněte na cíl aplikace Excel. Zobrazí se dialogové okno „Editor cílů Excelu ” se otevře pro konfiguraci následujících parametrů:
1. Správce připojení aplikace Excel – používá se k připojení excelového souboru.
2. Metoda přístupu k datům . Excelový list je považován za tabulku nebo pohled. Pokud vyberete „Tabulka nebo zobrazení “, rozbalovací pole „Název excelového listu ” bude vyplněno všemi listy, které jsou vytvořeny v excelovém sešitu.
3. Název excelového listu . Ve výchozím nastavení je toto rozevírací pole zakázáno. Povolí se automaticky, když vybereme „Tabulka nebo zobrazení ” jako režim přístupu k datům. Můžeme také vybrat vhodný excelový list.
Dosud jsme nevytvářeli excelové cílové připojení, takže nejprve je nutné vytvořit excelového správce destinací. Chcete-li to provést, klikněte na „Nový “ vedle položky „Excel Connection Manager “, jak je znázorněno na obrázku níže:
Dialogové okno „Excel Connection Manager " otevře. Zde můžeme konfigurovat:
1. Cesta k souboru Excel – umístění souboru aplikace Excel.
2. Verze aplikace Excel – můžete vybrat verzi aplikace Excel z rozevíracího seznamu.
Pro toto demo jsem vytvořil excelový soubor a uložil jej do svého počítače. Chcete-li soubor vyhledat, klikněte na Procházet, procházejte systémem souborů, vyberte soubor a klikněte na OK , jak je znázorněno na obrázku níže:
Nyní vyberte režim přístupu k datům jako „Tabulka nebo zobrazení “ v „Správci destinací Excel “. Seznam excelových listů bude vyplněn v rozevíracím seznamu. Vyberte „Název listu aplikace Excel ” z rozevíracího seznamu, jak je znázorněno na obrázku níže:
Nyní, abychom mohli exportovat data z SQL tabulky do excelového souboru, musíme namapovat pole SQL tabulky a Excel souboru. Chcete-li to provést, přetáhněte modrou šipku pod „Údaje o prodeji DB serveru “ a umístěte jej do „souboru Sales excel “, jak je znázorněno na obrázku níže:
Dvakrát klikněte na „Cíl aplikace Excel ” pro mapování polí. “Editor cílů Excelu (Sales Excel File) " otevře. Vyberte „Mappings ” z levého panelu dialogového okna. V mapování budou vstupní sloupce sloupce výstupu SQL Query a cílové sloupce budou sloupce souboru aplikace Excel. Doporučuje se zachovat stejný název pro výstup SQL Query a excelové sloupce. Díky tomu bude mapování mnohem jednodušší, protože pole nemusíme mapovat ručně. SSIS automaticky mapuje sloupce.
Pro toto demo má soubor Excel a výstup SQL Query stejný název, takže mapování bylo provedeno automaticky. Ověřte, že mapování proběhlo správně, a klikněte na OK . Viz obrázek níže:
Po dokončení mapování bude celá úloha toku dat vypadat jako na obrázku níže:
Nyní můžeme balíček spustit. Chcete-li to provést, klikněte na „Start “, které se nachází na liště nabídek. Pokud se balíček úspěšně spustí, můžete vidět zelenou ikonu na každé součásti, jak je znázorněno na obrázku níže:
Konfigurovat cíl plochého souboru
Jak jsem zmínil na začátku článku, v SSIS můžeme exportovat data z SQL tabulky do textového souboru. K tomu musíme v úloze datového toku vytvořit cíl plochého souboru. Přetáhněte „Cíl plochého souboru “ do okna úlohy toku dat a přejmenujte jej na „Data prodeje do textového souboru ” jak je znázorněno na obrázku níže:
Nyní dvakrát klikněte na „Cíl plochého souboru “. Zobrazí se dialogové okno „Editor cílového umístění plochého souboru ” se otevře, jak je znázorněno na obrázku níže:
Nyní klikněte na „Nový “ vedle položky „Správci připojení plochých souborů “. Dialogové okno „Font File Format " otevře. Má čtyři možnosti:export dat do oddělovačů, pevné šířky, pevné šířky s oddělovači řádků a roztřepené vpravo. Pro tuto ukázku zvolíme „Oddělený “.
Vyberte „Oddělený “ a klikněte na OK jak je znázorněno na obrázku níže:
Další dialogové okno „Editor správce připojení plochých souborů " otevře. Pojmenujte správce připojení jako „Export dat prodeje ” jak je znázorněno na následujícím obrázku:
Chcete-li uložit data SQL do textového souboru, můžeme buď vytvořit nový textový soubor, nebo vybrat existující.
Pro toto demo vytvoříme nový soubor. Vytvořím soubor s názvem „Údaje o prodeji “. Za tím účelem kliknu na procházet a budu se pohybovat systémem souborů, jak je znázorněno na obrázku níže:
Nyní nakonfigurujeme parametry plochého souboru:
- Exportovaná data z tabulky SQL budou uložena ve formátu s oddělovači, takže vyberte „D omezeno “ v části „Formát “, jak je znázorněno na obrázku níže:
- “Oddělovač řádku záhlaví “ bude „{CR}{LF} “, takže v rozevíracím seznamu vyberte příslušnou možnost, jak je znázorněno na obrázku níže:
- První řádek v textovém souboru bude záhlaví sloupce, proto zaškrtněte políčko „Názvy sloupců v prvním řádku s údaji ” jak je znázorněno na obrázku níže:
Klikněte na OK zavřete „Editor správce připojení plochých souborů “.
Nyní budeme mapovat sloupce. Chcete-li to provést, klikněte na „Mappings “ na levé straně „Editor cílového umístění plochých souborů ” jak je znázorněno na obrázku níže:
Jako názvy „vstupu dotazu SQL “ a „Cíl textového souboru ” sloupce jsou stejné, balíček SSIS mapuje sloupce automaticky.
Po dokončení mapování bude celá úloha toku dat vypadat jako na obrázku níže:
Nyní můžeme balíček spustit. Chcete-li to provést, klikněte na „Start “, které se nachází na liště nabídek. Pokud se balíček úspěšně spustí, můžete vidět zelenou ikonu na každé součásti, jak je znázorněno na obrázku níže:
Níže je snímek obrazovky s daty extrahovanými z tabulky SQL:
Shrnutí
V tomto článku jsem se zabýval:
- Vytvoření správce připojení ADO.NET
- Vytvoření úlohy toku dat a konfigurace zdrojové databáze
- Konfigurace cíle aplikace Excel a export dat z tabulky SQL do souboru aplikace Excel.
- Konfigurace cíle plochého souboru a export dat z tabulky SQL do textového souboru.
Užitečné nástroje:
Devart SSIS Data Flow Components – umožňují integrovat databázová a cloudová data prostřednictvím SQL Server Integration Services.