Načtení dat pomocí integračních služeb do paralelního datového skladu
Poskytuje referenční informace a informace o nasazení pro načítání dat do SLUŽBY SQL Server Parallel Data Warehouse pomocí balíčků SSIS (SQL Server Integration Services).
Základy
Integrační služby jsou součástí SQL Serveru pro extrakci, transformaci a načítání dat (ETL) a běžně se používá k naplnění a aktualizaci datového skladu.
Cílový adaptér PDW je komponenta Integrační služby, která umožňuje načíst data do pdW pomocí balíčků dtsx služby Integration Services. V rámci workflow balíčku pro systém Analytics Platform System (PDW) můžete importovat a sloučovat data z více zdrojů a nahrávat data do více cílů. Zatížení probíhá paralelně, a to jak v rámci balíčku, tak mezi několika současně spuštěnými balíčky až do maximálního počtu 10 zatížení spuštěných paralelně na stejném zařízení.
Kromě úloh popsaných v tomto tématu můžete pomocí dalších funkcí integračních služeb filtrovat, transformovat, analyzovat a vyčistit data před načtením do datového skladu. Pracovní postup balíčku můžete také vylepšit spuštěním příkazů SQL, spouštěním podřízených balíčků nebo odesíláním pošty.
Kompletní dokumentaci integračních služeb naleznete v tématu SQL Server Integration Services.
Metody spuštění balíčku integrační služby
Pomocí jedné z těchto metod spusťte balíček integrační služby.
Spustit z SQL Serveru 2008 R2 Business Intelligence Development Studio (BIDS)
Chcete-li balíček spustit z nabídky BIDS, klikněte pravým tlačítkem myši na balíček a zvolte Execute Package.
Ve výchozím nastavení služba BIDS spouští balíčky pomocí 64bitových binárních souborů. Určuje to vlastnost balíčku Run64BitRuntime. Chcete-li nastavit tuto vlastnost, přejděte do Průzkumník řešení, klikněte pravým tlačítkem na projekt a zvolte Vlastnosti. Na stránky vlastností integrační službypřejděte na Vlastnosti konfigurace a vyberte Ladění. Vlastnost Run64BitRuntime se zobrazí vlastnosti Možnosti ladění. Chcete-li použít 32bitové moduly runtime, nastavte tuto volbu na hodnotu False. Chcete-li použít 64bitové moduly runtime, nastavte to na hodnotu True.
Spuštění pomocí SQL Server Data Tools pro SQL Server 2012
Chcete-li spustit balíček z sql Server Data Tools, klikněte pravým tlačítkem myši na balíček a zvolte Spustit balíček.
Spustit z PowerShellu
Pokud chcete balíček spustit z Prostředí Windows PowerShell, použijte nástroj dtexec: dtexec /FILE <packagePath>
Například dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Spustit z příkazového řádku Windows
Spuštění balíčku z příkazového řádku systému Windows pomocí nástroje dtexec: dtexec /FILE <packagePath>
Příklad: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Datové typy
Při načítání dat ze zdroje dat do databáze PDW SQL Serveru se data nejprve mapují ze zdrojových dat na datové typy integračních služeb. To umožňuje mapování dat z více zdrojů dat na společnou sadu datových typů.
Pak se data mapují z integračních služeb na datové typy PDW SQL Serveru. Pro každý datový typ PDW SYSTÉMU SQL Server uvádí následující tabulka datové typy integračních služeb, které lze převést na datový typ PDW systému SQL Server.
Datový typ PDW | Datové typy služby Integration Services, které se mapují na datový typ PDW |
---|---|
BIT | DT_BOOL |
BIGINT | DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4 |
UKLÍZEČKA | DT_STR |
DATUM | DT_DBDATE |
DATUM A ČAS | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIME2 | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIMEOFFSET | DT_WSTR |
DESETINNÝ | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
PLOVAT | DT_R4, DT_R8 |
INT | DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2 |
PENÍZE | DT_CY |
NCHAR | DT_WSTR |
ČÍSELNÝ | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
NVARCHAR | DT_WSTR, DT_STR |
REÁLNÝ | DT_R4 |
SMALLDATETIME | DT_DBTIMESTAMP2 |
SMALLINT | DT_I1, DT_I2, DT_UI1 |
SMALLMONEY | DT_R4 |
ČAS | DT_WSTR |
TINYINT | DT_I1 |
VARBINARY | DT_BYTES |
VARCHAR | DT_STR |
omezená podpora pro přesnost datových typů
PdW vygeneruje chybu ověření, pokud mapujete DT_NUMERIC nebo DT_DECIMAL vstupní sloupec, který obsahuje hodnotu s přesností větší než 28.
nepodporované datové typy
SQL Server PDW nepodporuje následující datové typy integračních služeb:
DT_DBTIMESTAMPOFFSET
DT_DBTIME2
DT_GUID
DT_IMAGE
DT_NTEXT
DT_TEXT
Chcete-li načíst sloupce obsahující data těchto typů do souboru PDW SQL Serveru, musíte do toku dat přidat transformaci převodu dat směrem nahoru, aby byla data převedena na kompatibilní datový typ.
Dovolení
Chcete-li spustit balíček pro načítání služby Integration Services, potřebujete:
Oprávnění LOAD na databázi.
Příslušná oprávnění INSERT, UPDATE, DELETE pro cílovou tabulku.
Pokud se používá přípravná databáze, vytvořte oprávnění CREATE k pracovní databázi. Jedná se o vytvoření dočasné tabulky.
Pokud se nepoužívá žádná pracovní databáze, je nutné mít oprávnění CREATE pro cílovou databázi. Jedná se o vytvoření dočasné tabulky.
Obecné poznámky
Pokud má balíček Integration Services spuštěných více destinací SQL Server PDW a ukončí se jedno z připojení, Integrační Služby přestanou zasílat data do všech destinací SQL Server PDW.
Omezení a restrikce
U balíčku Integrační služby je počet cílů PDW systému SQL Server pro stejný zdroj dat omezený maximálním počtem aktivních zatížení. Maximum je předem nakonfigurované a není konfigurovatelné uživatelem.
Každý cíl balíčku integrační služby pro stejný zdroj dat se při spuštění balíčku počítá jako jedno načtení. Předpokládejme například, že maximální aktivní zatížení je 10. Balíček se nespustí, pokud se pokusí otevřít 11 nebo více cílů pro stejný zdroj dat.
Více balíčků může běžet souběžně, pokud každý balíček nepoužívá více než maximální aktivní zatížení. Pokud je například maximální aktivní zatížení 10, můžete souběžně spustit dva balíčky, které používají 10 cílů. Jeden balíček se spustí, zatímco druhý počká ve frontě načítání.
Pokud počet zatížení ve frontě zatížení překročí maximální zatížení ve frontě, balíček se nespustí. Pokud je například maximální počet zatížení 10 na zařízení a maximální počet zatížení zařazených do fronty je 40 na zařízení, můžete souběžně spustit pět balíčků integračních služeb, které otevřou 10 cílů. Pokud se pokusíte spustit šestý balíček, nespustí se.
Důležitý
Použití zdroje dat OLE DB ve službě SSIS s cílovým adaptérem PDW může způsobit poškození dat, pokud zdrojová tabulka obsahuje sloupce typu char a varchar s kolací SQL. Pokud zdrojová tabulka obsahuje sloupce typu char nebo varchar s kolací SQL, doporučujeme použít ADO.NET zdroj.
Chování uzamčení
Při načítání dat pomocí integračních služeb používá systém PDW (Analytics Platform System) zámky na úrovni řádků k aktualizaci dat v cílové tabulce. To znamená, že každý řádek je při aktualizaci uzamčen pro čtení a zápis. Řádky v cílové tabulce nejsou uzamčeny během načítání dat do pracovní tabulky.
Příklady
A. Jednoduché načtení z plochého souboru
Následující názorný postup ukazuje jednoduché načtení dat pomocí integračních služeb k načtení plochých dat do zařízení SQL Server PDW. V tomto příkladu se předpokládá, že na klientském počítači již byla nainstalována služba Integration Services a je nainstalován cíl PDW systému SQL Server, jak je popsáno výše.
V tomto příkladu načteme do tabulky Orders
, která obsahuje následující DDL. Tabulka Orders
je součástí databáze LoadExampleDB
.
CREATE TABLE LoadExampleDB.dbo.Orders (
id INT,
city varchar(25),
lastUpdateDate DATE,
orderDate DATE)
;
Tady jsou načtená data:
id city lastUpdateDate orderdate
--------- -------------- ------------------ ----------
1 Seattle 2010-05-01 2010-01-01
2 Denver 2002-06-25 1999-01-02
Při přípravě na načtení vytvořte plochý soubor exampleLoad.txt
obsahující načtená data:
id,city,lastUpdateDate,orderDate
1,Seattle,2010-05-01,2010-01-01
2,Denver,2002-06-25,1999-01-02
Nejprve vytvořte balíček integrační služby provedením následujících kroků:
V nástrojích SQL Server Data Tools (SSDT) vyberte Soubor, Novýa poté Projekt. Vyberte projekt integračních služeb z uvedených možností. Pojmenujte tento projekt
ExampleLoad
a klepněte na tlačítko OK.Klikněte na kartu Tok řízení a potom přetáhněte Úloha toku dat z Panel nástrojů do podokna Tok řízení.
Klikněte na kartu Data Flow a přetáhněte zdroj plochého souboru z panelu nástrojů do panelu Datového toku. Poklikejte na pole, které jste právě vytvořili, a otevřete editor zdroje plochého souboru .
Klepněte na tlačítko Správce připojení a potom klepněte na tlačítko Nový.
Do pole Název správce připojení zadejte přátelský název připojení. V tomto příkladu
Example Load Flat File CM
.Klikněte na Procházet a vyberte soubor
ExampleLoad.txt
z místního počítače.Vzhledem k tomu, že plochý soubor obsahuje řádek s názvy sloupců, klikněte na políčko názvy sloupců v prvním datovém řádku.
Klikněte na Sloupce v levém sloupci a zobrazte náhled dat, která se načtou, aby se zajistilo správné interpretace názvů sloupců a dat.
V levém sloupci klikněte na Pokročilé. Kliknutím na název každého sloupce zkontrolujte datový typ přidružený k datům. Upravte typy v boxu tak, aby datové typy načtených dat byly kompatibilní s cílovými typy sloupců.
Kliknutím na OK uložte správce připojení.
Kliknutím na OK ukončete editor zdroje plochého souboru.
Zadejte cíl toku dat.
Přetáhněte SQL Server PDW Destination z panelu nástrojů do podokna toku dat .
Poklikejte na pole, které jste právě vytvořili, pro načtení editoru SQL Server PDW Destination.
Klikněte na šipku dolů vedle Správce připojení.
Vyberte Vytvořit nové připojení.
Vyplňte informace pro server, uživatele, heslo a cílovou databázi s informacemi specifickými pro vaše zařízení. (Příklady jsou uvedené níže). Potom klepněte na tlačítko OK.
Pro připojení InfiniBand Název serveru: Zadejte <název zařízení>-SQLCTL01,17001.
Pro ethernetová připojení Název serveru: Zadejte IP adresu clusteru řídicích uzlů, čárku, port 17001. Například 10.192.63.134 17001.
Uživatel:
user1
heslo :
password1
cílová databáze:
LoadExampleDB
Vyberte cílovou tabulku:
Orders
.Jako režim načítání vyberte Připojit a klikněte na OK.
Zadejte tok dat ze zdroje do cíle.
V podokně Tok dat přetáhněte zelenou šipku z pole Flat File Source do pole SQL Server PDW Cíl.
Poklikejte na okno SQL Server PDW Destination, abyste znovu viděli Editor cíle SQL Server PDW . Názvy sloupců z plochého souboru byste měli vidět vlevo, pod Nenamapované vstupní sloupce. Názvy sloupců z cílové tabulky byste měli vidět na pravé straně v části Nenamapované cílové sloupce. Namapujte sloupce přetažením nebo poklikáním na odpovídající názvy sloupců v seznamech Nenamapované vstupní sloupce a Nenamapované cílové sloupce za účelem jejich umístění do pole Mapované sloupce. Kliknutím na OK nastavení uložte.
Uložte balíček kliknutím na Uložit v nabídce Soubor.
Spusťte balíček v integrační službě počítače.
VPrůzkumníku řešení Integrační služby (pravý sloupec) klikněte pravým tlačítkem na
Package.dtsx
a vyberte Spustit.Balíček se spustí a průběh i případné chyby budou zobrazeny v podokně Průběh. Pomocí klienta SQL potvrďte načtení nebo sledujte zatížení prostřednictvím konzoly pro správu SQL Serveru PDW.
Viz také
Vytvoření úlohy skriptu, která používá cílový adaptér SSIS PDW
SQL Server Integration Services
navrhování a implementace balíčků (integračních služeb)
kurz : Vytvoření základního balíčku pomocí průvodce
Začínáme (Integrační služby)
Ukázka dynamického generování balíčků
Navrhování vašich balíčků SSIS pro paralelismus (SQL Server Video)
Zlepšení přírůstkového načítání pomocí funkce Change Data Capture
pomalu se měnící transformace dimenzí
Úkol hromadného vložení