sql >> Databáze >  >> RDS >> Mysql

Transformace podmíněného rozdělení:Exportujte data ze serveru SQL Server do databází Oracle a MySQL

V tomto článku jsem vysvětlil, jak můžeme rozdělit a exportovat data databázové tabulky SQL Serveru do databází Oracle a MySQL. Tento proces je založen na podmínce definované v SSIS jako „podmíněná rozdělená transformace “. Podmíněná rozdělená transformace je jako případový příkaz jakéhokoli programovacího jazyka. Pomocí podmíněného můžeme přesměrovat výstup komponenty do více destinací, což je založeno na podmínce definované v komponentě podmíněného rozdělení.

Nastavení ukázky

Můžeme získávat data z různých databázových platforem pomocí připojení ODBC při použití datových nástrojů SQL Server. Většina databázových platforem poskytuje své ovladače připojení, které lze použít ke konfiguraci připojení mezi aplikací a databází.

Chystám se exportovat data zákaznické tabulky „AdventureWorks2014 ” databáze do Oracle a MySQL na základě podmínky definované v rozdělení podmínek. Data budou rozdělena na základě „StateProvinceName “ ve sloupci „Zákazníci " stůl. Záznamy, které mají hodnotu s názvem „Kalifornie “ v „StateProvinceName ” bude exportován do databáze Oracle a záznamy, které mají hodnotu s názvem “Washington ” bude exportován do databáze MySQL.

Nainstaloval jsem Oracle 11g express edition a MySQL 8.0 na svůj místní počítač. Vytvořil jsem databázi XE v Oracle a „WideWorldImportors ” databáze na serveru MySQL. Vytvořil jsem „zákazníka ” tabulky v obou databázích. Níže je uveden kód SQL pro vytvoření tabulky.

CREATE TABLE customers 
  ( 
     cust_id                INT, 
     cust_customername      VARCHAR(500), 
     cust_contactnumber     VARCHAR(50), 
     cust_contactnumbertype VARCHAR(10), 
     cust_email             VARCHAR(150), 
     cust_addresstype       VARCHAR(10), 
     cust_address           VARCHAR(1500), 
     cust_city              VARCHAR(50), 
     cust_state             VARCHAR(50), 
     cust_postalcode        INT, 
     cust_countryname       VARCHAR(100) 
  )

Při používání komponenty datového toku datových nástrojů SQL Server můžeme přenášet data mezi různými databázemi pomocí konfigurace ovladačů ODBC. Datové nástroje SQL Server, které můžeme nainstalovat pomocí správce připojení, již podporují klienta Oracle, ale pro MySQL musíme vytvořit zdroj dat ODBC.

Data tools SQL Server je 32bitová aplikace a běží v 32bitovém režimu. Proto si musíme stáhnout 32bitový ODBC ovladač MySQL. Viz níže uvedený obrázek:

Musíme nainstalovat „Connector/ODBC 8.0.11 ” za účelem připojení databáze MySQL pomocí ovladače ODBC. Ovladač ODBC 8.0.11 je k dispozici pro 64bitovou platformu OS. Proto musíme použít starší verzi ovladačů ODBC. Viz obrázek níže:

Namísto použití ovladačů pro připojení poskytovaných MySQL jsem použil ovladač ODBC pro MySQL vyvinutý společností Devart.

Devart ODBC Driver for MySQL je výkonný a vysoce výkonný ovladač pro připojení. Je nezávislý na platformě, snadno se konfiguruje a podporuje nástroje třetích stran pro připojení k databázi MySQL. Níže jsou funkce.

  1. Podporuje zabezpečené připojení SSL a SSH.
  2. Kompatibilní se všemi verzemi MySQL. Podporuje MariaDB, Azure Database for MySQL a Amazon Aurora.
  3. Kompatibilní s mnoha analytickými nástroji třetích stran.
  4. Nezávislý na platformě. Podporuje 32bitové i 64bitové platformy OS a mnoho dalších.

Můžete si stáhnout 30denní zkušební verzi ovladače ODBC pro MySQL zde . Pro informaci viz následující obrázek:

Po stažení ovladačů je nainstalujte spuštěním instalačního programu.

Po instalaci ovladačů musíme nakonfigurovat zdroj dat ODBC pro připojení databáze MySQL. Chcete-li to provést, otevřete zdroje dat ODBC (32bitové). Nachází se v Ovládacích panelech>> Nástroje pro správu>> Zdroje dat ODBC. Viz níže uvedený obrázek:

Otevřete zdroje dat ODBC (32bitové). Dialogové okno „Administrátor zdroje dat ODBC (32bitový) " otevře. V tomto dialogovém okně klikněte na „Přidat “. Další dialogové okno „Vytvořit nový zdroj dat otevře se “, který má všechny ovladače ODBC nainstalované v počítači. Z tohoto seznamu vyberte „Devart ODBC Driver for MySQL “ a klikněte na „Dokončit “. Pro informaci viz následující obrázek:

Jakmile kliknete na „Dokončit “, otevře se dialogové okno pro konfiguraci parametrů připojení MySQL. V tomto dialogovém okně můžete definovat parametry připojení. Do příslušných polí zadejte název a popis pro rozpoznání zdroje dat. V „Server ” textové pole zadejte název hostitele nebo IP adresu počítače/serveru, kde je nainstalována MySQL. Zadejte příslušné uživatelské jméno a heslo pro přihlášení k serveru a výběr databáze. Pro informaci viz následující obrázek:

Nainstaloval jsem MySQL na svůj místní počítač, a proto jsem jako textové pole Server poskytl „localhost“. Připojuji se k serveru pomocí uživatele „root“, takže uživatel je „root“. V ideálním případě to není preferováno. Místo roota vytvořte jiného uživatele a použijte jej k ověření databáze MySQL. Vytvořil jsem „WideWorldImportors ” databáze na databázovém serveru MySQL, proto jsem poskytl „WideWorldImportors ” v rozevíracím seznamu databáze.

Podobně pro připojení databáze Oracle pomocí SSDT musíme nainstalovat klientský software Oracle. Datové nástroje SQL Serveru pracují v 32bitovém režimu, proto musí být nainstalována 32bitová verze ovladačů ODBC pro Oracle. Oracle Client si můžete stáhnout zde.

Protože všichni víme, jak vytvořit balíček SSIS, přímo vysvětlím, jak vytvořit úlohu toku dat.

Vytvoření úlohy toku dat

V úloze Tok dat použijeme čtyři komponenty:

  1. Zdroj ADO.NET k naplnění dat z databáze SQL Server.
  2. Podmíněné rozdělení pro rozdělení dat do více sad.
  3. Nakonfigurujte cíl MySQL a cíl Oracle
  4. Nakonfigurujte cestu dat pro ukládání výstupu podmíněného rozdělení do příslušných databází.

Konfigurace zdroje ADO.NET

Přetáhněte „Zdroj ADO.NET “ z SSIS Toolbox na „Datový tok “ a pojmenujte jej „Údaje o prodeji ” jak je znázorněno na následujícím obrázku:

Dvakrát klikněte na „Údaje o prodeji “. Dialogové okno „ADO.NET Source Editor " otevře. Protože správce připojení ještě není vytvořen, proto „Správce připojení ADO.NET “ rozevírací pole je prázdné. Chcete-li v tomto dialogovém okně vytvořit nové připojení, klikněte na „Nové “. Další dialogové okno „Konfigurovat správce připojení ” se otevře, jak je znázorněno na obrázku níže:

V části „Konfigurace správce připojení ADO.NET “, klikněte na „Nový “ a otevřete „Správce připojení ” dialogové okno.

V části „Název serveru ” zadejte název nebo IP-adresu serveru, na kterém byl nainstalován SQL Server. SQL Server je nainstalován na mém místním počítači, proto jsem poskytl „localhost\SQL2016 ” jako textové pole názvu serveru. V rozevíracím seznamu Authentication vyberte typ ověřování použitého pro připojení k instanci SQL. Ověřuji se k serveru SQL pomocí ověřování systému Windows, proto jsem v rozevíracím seznamu vybral ověřování systému Windows. A nakonec v rozevíracím poli databáze vyberte název databáze, kde je tabulka uložena. Exportuji data z „AdventureWorks2014 ” databáze, proto jsem ji vybral v „Název databáze “. Podívejte se na následující obrázek:

Po dokončení konfigurace klikněte na „Test připojení ” pro ověření konektivity s databází a klikněte na “OK”.

Nakonfigurovali jsme správce připojení ADO.NET, takže výchozí správce připojení bude vybrán automaticky v „Správci připojení ADO.NET “rozbalit. Chcete-li načíst data z tabulky, vyberte „Tabulka nebo zobrazení ” v rozevíracím poli Režim přístupu k datům. Jakmile v rozevíracím seznamu vyberete možnost „Tabulka nebo Zobrazit“, zobrazí se seznam všech tabulek vytvořených v databázi. V tomto seznamu vyberte „Zákazníci ” tabulky, jak je znázorněno na následujícím obrázku:

Konfigurace podmíněného rozdělení

Nyní použijeme podmíněnou rozdělenou transformaci pro export dat v různých pracovních listech Excelu na základě podmínky. Přetáhněte komponentu podmíněného rozdělení z panelu nástrojů SSIS do okna Tok dat a přejmenujte ji na „Filtr dat ” jak je znázorněno na obrázku níže:

Již jsem zmínil, že výstup dat tabulky „Zákazníci“ bude exportován do více databází Oracle a MySQL na základě podmínky definované v „Podmíněné rozdělení “.

Nejprve připojte zdroj ADO.Net k transformaci podmíněného rozdělení. Chcete-li to provést, klikněte na modrou šipku na cestě toku dat pod „Customers SQL DB ” a přetáhněte ji na podmíněnou rozdělenou transformaci, jak je znázorněno na obrázku níže:

Chcete-li nakonfigurovat podmíněné rozdělení, poklepejte na „Editor transformace podmíněného rozdělení“. Zobrazí se dialogové okno „Editor podmíněné rozdělené transformace ” se otevře, jak je znázorněno na následujícím obrázku:

Chcete-li použít podmínku na „StateProvinceName “, nejprve rozbalte uzel sloupce, přetáhněte „StateProvinceName ” (část 1) a umístěte jej do mřížky (část 3). Podmínka filtrování dat je ve sloupci „StateProvinceName“. Záznamy, které mají hodnotu „Kalifornie ” budou exportovány do databáze Oracle a záznamy, které mají hodnotu “Washington ” bude exportován do databáze MySQL. Na základě podmínky budeme používat rovná se (==) operátor. Rovnice je následující:

[Cust_State]=="California"

[Cust_State]=="Washington"

Podívejte se na následující obrázek:

Jakmile jsou podmínky definovány, klikněte na „OK“ pro uložení a zavření dialogového okna.

Nakonfigurujte cíl MySQL

Abychom mohli exportovat data ze serveru SQL Server do MySQL a Oracle, musíme nakonfigurovat dva cíle. Nejprve nakonfigurujte cíl MySQL. Chcete-li to provést, přetáhněte cíl ODBC z panelu nástrojů SSIS a přejmenujte jej na „MySQL Database“, jak je znázorněno na obrázku níže:

Dvakrát klikněte na cíl MySQL Database (ODBC Connection). Otevře se dialogové okno „ODBC Destination“. V tomto dialogovém okně klikněte na „Nový“. Otevře se další dialogové okno „Konfigurovat správce připojení ODBC“, jak je znázorněno na následujícím obrázku:

Další dialogové okno „Správce připojení " otevře. V dialogovém okně seznam DSN vytvořených na počítači, který je vyplněn v části „Použít název zdroje dat uživatele nebo systému “. Protože jsme již nakonfigurovali ODBC DSN, vyberte „Cíl MySQL ” z rozevíracího seznamu, jak je znázorněno na obrázku níže:

Klikněte na „Test připojení ” pro ověření úspěšného navázání připojení a klikněte na “OK”.

Nyní v „Destinaci ODBC “, vyberte název tabulky z „Název tabulky nebo zobrazení “, jak je znázorněno na následujícím obrázku:

Jakmile je úspěšně nakonfigurován cíl databáze MySQL, nakonfigurujte cíl databáze Oracle.

Konfigurace Oracle Destination

Chcete-li nakonfigurovat cíl Oracle, přetáhněte „AdO.NET Destination“ do okna toku dat a přejmenujte jej na „Oracle Database“, jak je znázorněno na následujícím obrázku:

Dvakrát klikněte na Oracle Database (cíl ADO.NET). Zobrazí se dialogové okno „AdO.NET Destination Editor " otevře. V dialogovém okně klikněte na „Nový “. Další dialogové okno „Konfigurovat správce připojení ADO.NET“ se otevře, jak je znázorněno na následujícím obrázku:

V části „Konfigurace Správce připojení ADO.NET “, klikněte na „Nový “. Otevře se další dialogové okno „Správce připojení“. Chcete-li nakonfigurovat připojení k databázi Oracle, musíme vybrat „Net.Provider\OracleClient “ v „Poskytovatel " dialogové okno. Do textového pole „Název serveru“ zadejte název hostitele nebo IP adresu databázového serveru Oracle. Zadejte uživatelské jméno a heslo pro připojení instance databáze Oracle. Jak jsem zmínil, nainstaloval jsem instanci Oracle jako svůj místní počítač, a proto jsem v textovém poli názvu serveru uvedl „localhost“. Připojil jsem databázi Oracle pomocí uživatele „Sales“, proto jsem do textového pole „User Name“ zadal „Sales“ jako uživatelské jméno a zadal heslo. Podívejte se na následující obrázek:

Chcete-li ověřit, že bylo navázáno připojení, klikněte na „Test připojení “ a po navázání připojení klikněte na „OK ” pro zavření dialogového okna.

Nyní na „Editor cílů ADO.NET ” vyberte název tabulky nebo pohledu, kam mají být data uložena. Exportuji data do tabulky zákazníků, proto jsem zvolil „Prodej.Zákazník ” tabulky, jak je znázorněno na následujícím obrázku:

Konfigurace datové cesty

Jakmile jsou oba cíle nakonfigurovány, nakonfigurujte datovou cestu pro přenos dat v příslušných databázích. Chcete-li to provést, přetáhněte modrou šipku datové cesty pod transformaci podmíněného rozdělení a pusťte ji na cíl ODBC (cíl MySQL). Když se datová cesta připojí k cíli ODBC, zobrazí se dialogové okno. Vyberte cíl z „Výstup ” rozevíracího seznamu pro nasměrování dat, která jsou načtena z SQL Query. Dialogové okno vypadá jako na obrázku níže:

Rozbalovací seznam je vyplněn všemi podmínkami, které jsou definovány v transformaci podmíněného rozdělení. V tomto případě rozbalovací nabídka obsahuje tři možnosti.

  1. Výstup MySQL
  2. Oracle Output
  3. Výchozí výstup

Jak je uvedeno výše, záznamy, které mají hodnotu „Washington ” ze sloupce „StateProvinceName“ bude exportován do databáze MySQL, proto vyberte Výstup MySQL.

Nyní mapujte výstupní sloupce podmíněné transformace s tabulkou zákazníků databáze MySQL. Chcete-li to provést, dvakrát klikněte na „databáze MySQL “ (cíl ODBC) a v dialogovém okně „Cíl ODBC“ vyberte „Mapování “, která se nachází v levém podokně dialogového okna, jak je znázorněno na obrázku níže:

Na obrázku výše jsou „Vstupní sloupce“ název sloupce tabulky serveru SQL a cílový sloupec bude název sloupce tabulky „Zákazníci“ listu MySQL. V této ukázce je název sloupce tabulky SQL a tabulky MySQL stejný, takže jeho vstupní a výstupní sloupce jsou mapovány automaticky.

Opakujte proces konfigurace datového toku pro datovou cestu „Oracle Output“ stejným způsobem. Níže jsou změny.

  1. Musíme vybrat „Oracle Output“ v dialogovém okně pro výběr vstupu a výstupu, jak je znázorněno na obrázku níže:
  2. V „AdO.NET Destination Editor“ ověřte správnost mapování sloupců vstup-výstup, jak je znázorněno na obrázku níže:

Po dokončení všech konfigurací bude celý úkol toku dat vypadat jako na obrázku níže:

Testování balíčku SSIS

Nyní spusťte balíček kliknutím na tlačítko „Start“ na liště nabídek. Pokud balíček úspěšně dokončí své provádění, měl by vypadat jako na obrázku níže:

Balíček rozdělil výstup dat SQL pomocí podmíněného rozdělení a exportoval 4 445 záznamů v databázi MySQL a 2 285 záznamů v databázi Oracle.

Shrnutí

V tomto článku jsme nakonfigurovali připojení ODBC pro MySQL, vytvořili balíček SSIS s datovým tokem. Použili jsme Podmíněnou rozdělenou transformaci k rozdělení výstupu, získaného z databáze SQL serveru a exportu do databází Oracle a MySQL.

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.

Ovladače Devart ODBC – poskytují vysoce výkonná a na funkce bohatá řešení připojení pro aplikace založené na ODBC.


  1. GeneratedValue v Postgresu

  2. MySQL - jak zadat PSČ s 0?

  3. Můj výpis PDO nefunguje

  4. SQLiteException:neznámá databáze