Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dwloader je nástroj příkazového řádku paralelního datového skladu (PDW), který hromadně načítá řádky tabulky do existující tabulky. Při načítání řádků můžete přidat všechny řádky na konec tabulky (režim připojení nebo režim fastappendu), přidat nové řádky a aktualizovat existující řádky (režim upsertu) nebo odstranit všechny existující řádky před načtením a vložit všechny řádky do prázdné tabulky (režim opětovného načtení).
Proces načítání dat
Připravte zdrojová data.
Pomocí vlastního procesu ETL vytvořte zdrojová data, která chcete načíst. Zdrojová data musí být naformátovaná tak, aby odpovídala schématu cílové tabulky. Uložte zdrojová data do jednoho nebo více textových souborů a zkopírujte textové soubory do stejného adresáře na serveru načítání. Informace o serveru načítání naleznete v tématu Získání a konfigurace načítacího serveru.
Připravte možnosti načítání.
Rozhodněte se, které možnosti načítání použijete. Uložte možnosti načtení do konfiguračního souboru. Zkopírujte konfigurační soubor do místního umístění na vašem nahrávacím serveru. Možnosti konfigurace dwloaderu jsou popsány v tomto tématu.
Připravte možnosti selhání načítání.
Rozhodněte se, jak chcete , aby dwloader zpracovával řádky, které se nepodařilo načíst. Pro provedení načtení dwloader nejprve načte data do přechodné tabulky a potom přenese data do cílové tabulky. Když nahrávač načte data do pracovní tabulky, sleduje počet řádků, které se nepodaří načíst. Například řádky, které nejsou správně naformátované, se nenačtou. Neúspěšné řádky se zkopírují do souboru zamítnutí. Ve výchozím nastavení se zatížení přeruší po prvním zamítnutí, pokud nezadáte jinou prahovou hodnotu zamítnutí.
Nainstalujte dwloader.
Pokud není dwloader již nainstalován, nainstalujte jej na načítací server.
Spusťte dwloader.
Přihlaste se k serveru načítání a spusťte spustitelný soubordwloader.exe s příslušnými možnostmi příkazového řádku.
Ověřte výsledky.
Můžete zkontrolovat soubor neúspěšných řádků (zadaný pomocí -R) a zjistit, jestli se některé řádky nepodařilo načíst. Pokud je tento soubor prázdný, všechny řádky byly úspěšně načteny. Dwloader je transakční, takže pokud jakýkoli krok selže (kromě odmítnutých řádků), všechny kroky se vrátí zpět do původního stavu.
Syntaxe
dwloader.exe { -h }
dwloader.exe
{
{ -U login_name -P <password> }
| -W
}
[ -f parameter_file ]
[ -S target_appliance ]
{ -T target_database_name . [ schema ] . table_name }
{ -i source_data_location } [ <source_data_options> ]
{ -R load_failure_file_name } [ <load_failure_options> ]
[ <loading_options> ]
}
<source_data_options> ::=
{
[ -fh number_header_rows ]
[ < variable_length_column_options > | < fixed_width_column_options > ]
[ -D { mdy | myd | ymd | ydm | dmy | dym | custom_date_format } ]
[ -dt datetime_format_file ]
}
<variable_length_column_options> ::=
{
[ -e character_encoding ]
-r row_delimiter
[ -s string_delimiter ]
-t field_delimiter
}
<fixed_width_column_options> ::=
{
-w fixed_width_config_file
[ -e character_encoding ]
-r row_delimiter
}
<load_failure_options> ::=
{
[ -rt { value | percentage } ]
[ -rv reject_value ]
[ -rs reject_sample_value ]
}
<loading_options> ::=
{
[ -d staging_database_name ]
[ -M { append | fastappend | upsert -K merge_column [ ,...n ] | reload } ]
[ -b batchsize ]
[ -c ]
[ -E ]
[ -m ]
[ -N ]
[ -se ]
[ -l ]
}
Arguments
-h
Zobrazí jednoduché informace nápovědy o používání zavaděče. Nápověda se zobrazí jenom v případě, že nejsou zadány žádné další parametry příkazového řádku.
-Ulogin_name
Platné přihlášení pomocí ověřování SQL Serveru s příslušnými oprávněními k provedení načítacího procesu.
-P<heslo>
Heslo pro ověřování SQL Serveru login_name.
-W
Použijte ověřování systému Windows. (Nevyžaduje se login_name ani heslo .)
-fparameter_file_name
Místo parametrů příkazového řádku použijte soubor parametrů parameter_file_name.
parameter_file_name může obsahovat libovolný parametr příkazového řádku s výjimkou user_name a hesla. Pokud je parametr zadán na příkazovém řádku a v souboru parametrů, příkazový řádek přepíše parametr souboru.
Soubor parametrů obsahuje jeden parametr bez předpony - na řádek.
Examples:
rt=percentage
rv=25
-Scílový_spotřebič
Určuje zařízení SQL Server PDW, které bude přijímat načtená data.
Pro připojení Infiniband je target_appliance zadán jako <název zařízení>-SQLCTL01. Pokud chcete nakonfigurovat toto pojmenované připojení, přečtěte si téma Konfigurace síťových adaptérů InfiniBand.
U ethernetových připojení target_appliance je IP adresa clusteru řídicích uzlů.
Pokud tento parametr vynecháte, dwloader použije výchozí hodnotu, která byla zadána při instalaci dwloaderu.
-Ttarget_database_name.[schéma].table_name
Třídílný název cílové tabulky.
-Isource_data_location
Umístění jednoho nebo více zdrojových souborů, které se mají načíst. Každý zdrojový soubor musí být textový soubor nebo textový soubor komprimovaný pomocí gzipu. Do každého souboru gzip lze komprimovat pouze jeden zdrojový soubor.
Formátování zdrojového souboru:
Zdrojový soubor musí být formátován v souladu s možnostmi načtení.
Každý řádek ve zdrojovém souboru obsahuje data pro jeden řádek tabulky. Zdrojová data musí odpovídat schématu cílové tabulky. Pořadí sloupců a datové typy se také musí shodovat. Každé pole v řádku představuje sloupec v cílové tabulce.
Ve výchozím nastavení jsou pole proměnnou délkou a oddělená oddělovačem. Chcete-li zadat typ oddělovače, použijte <variable_length_column_options> možnosti příkazového řádku. Pokud chcete zadat pole s pevnou délkou, použijte <fixed_width_column_options> možnosti příkazového řádku.
Určení umístění zdrojových dat:
Umístění zdrojových dat může být síťová cesta nebo místní cesta k adresáři na serveru pro načítání.
Pokud chcete zadat všechny soubory v adresáři, zadejte cestu k adresáři následovanou zástupným znakem * . Zavaděč nenačítá soubory z žádných podadresářů, které jsou ve zdrojovém umístění dat. Zavaděč vyvolává chybu, když v souboru gzip existuje adresář.
Pokud chcete zadat některé soubory v adresáři, použijte kombinaci znaků a zástupného znaku * .
Načtení více souborů jedním příkazem:
Všechny soubory musí existovat ve stejném adresáři.
Soubory musí být všechny textové soubory, všechny soubory gzip nebo kombinace textových i gzip souborů.
Žádný ze souborů nemůže obsahovat informace záhlaví.
Všechny soubory musí používat stejný typ kódování znaků. Podívejte se na možnost -e.
Všechny soubory musí být načteny do stejné tabulky.
Všechny soubory se zřetědí a načtou, jako by byly jeden soubor, a odmítnuté řádky se přesunou do jednoho souboru zamítnutí.
Examples:
-i \\loadserver\loads\daily\*.gz
-i \\loadserver\loads\daily\*.txt
-i \\loadserver\loads\daily\monday.*
-i \\loadserver\loads\daily\monday.txt
-i \\loadserver\loads\daily\*
-Rload_failure_file_name
Pokud dojde k selháním načítání, dwloader uloží řádek, který se nepodařilo načíst, a popis selhání informace o selhání v souboru s názvem load_failure_file_name. Pokud již tento soubor existuje, dwloader přepíše existující soubor.
load_failure_file_name se vytvoří při prvním selhání. Pokud se všechny řádky úspěšně načtou, load_failure_file_name se nevytvoří.
-fhnumber_header_rows
Počet řádků (řádků), které se mají ignorovat na začátku source_data_file_name. Výchozí hodnota je 0.
<možnosti_s_sloupcem_promenlivé_délky>
Možnosti pro source_data_file_name, který má sloupce s proměnlivou délkou znakem oddělené. Ve výchozím nastavení source_data_file_name ve sloupcích s proměnlivou délkou obsahuje znaky ASCII.
U souborů ASCII jsou hodnoty NULLs reprezentovány umístěním oddělovačů po sobě jdoucími. Například v souboru s oddělovači (|) je hodnota NULL označená znakem ||. V souboru s oddělovači je hodnota NULL označená znakem ",". Kromě toho musí být zadána možnost -E (--emptyStringAsNull). Další informace o -E najdete níže.
-echaracter_encoding
Určuje typ kódování znaků pro data, která se mají načíst z datového souboru. Možnosti jsou ASCII (výchozí), UTF8, UTF16 nebo UTF16BE, kde UTF16 je malý endian a UTF16BE je big endian. Tyto možnosti nerozlišují malá a velká písmena.
-toddělovač_pole
Oddělovač pro každé pole (sloupec) v řádku. Oddělovač polí je jeden nebo více z těchto řídicích znaků ASCII nebo šestnáctkových hodnot ASCII.
| Název | escape znak | Hexadecimální znak |
|---|---|---|
| Tab | \t | 0x09 |
| Návrat vozíku (CR) | \r | 0x0d |
| Podávání ČAR (LF) | \n | 0x0a |
| CRLF | \r\n | 0x0d0x0a |
| Čárka | ',' | 0x2c |
| Dvojitá uvozovka | \" | 0x22 |
| Jednoduchá uvozovka | \' | 0x27 |
Pokud chcete zadat znak svislé čáry na příkazovém řádku, uzavřete ho do dvojitých uvozovek, "|". Tím se zabrání nesprávné interpretaci analyzátorem příkazového řádku. Jiné znaky jsou uzavřeny jednoduchými uvozovkami.
Examples:
-t |
-t ' '
-t 0x0a
-t \t
-t '~|~'
-roddělovač_řádků
Oddělovač pro každý řádek zdrojového datového souboru. Oddělovač řádků je jedna nebo více hodnot ASCII.
Pokud chcete jako oddělovač zadat znak návratu na začátek řádku (CR), znak nového řádku (LF) nebo znak tabulátoru, můžete použít řídicí znaky (\r, \n, \t) nebo jejich šestnáctkové hodnoty (0d, 0a, 09). Pokud chcete zadat jiné speciální znaky jako oddělovače, použijte jejich šestnáctkové hodnoty.
Příklady CR+LF:
-r \r\n
-r 0x0d0x0a
Příklady CR:
-r \r
-r 0x0d
Příklady LF:
-r \n
-r 0x0a
Pro Unix se vyžaduje LF. Pro Windows se vyžaduje CR.
-sstring_delimiter
Oddělovač pro pole typu řetězce ve vstupním souboru s textovými oddělovači. Oddělovač řetězců je jedna nebo více hodnot ASCII. Lze ji zadat jako znak (např. -s *) nebo jako šestnáctkovou hodnotu (například -s 0x22 pro dvojitou uvozovku).
Examples:
-s*
-s 0x22
< možnosti_sloupce_pevné_šířky>
Možnosti zdrojového datového souboru se sloupci s pevnou délkou Ve výchozím nastavení source_data_file_name ve sloupcích s proměnlivou délkou obsahuje znaky ASCII.
Sloupce s pevnou šířkou nejsou podporovány, pokud je -e UTF8.
-wfixed_width_config_file
Cesta a název konfiguračního souboru, který určuje počet znaků v každém sloupci. Každé pole musí být zadáno.
Tento soubor se musí nacházet na serveru načítání. Cesta může být UNC, relativní nebo absolutní. Každý řádek v fixed_width_config_file obsahuje název jednoho sloupce a počet znaků pro daný sloupec. Pro každý sloupec je jeden řádek a pořadí v souboru se musí shodovat s pořadím v cílové tabulce:
Column_name=num_chars
Column_name=num_chars
Příklad konfiguračního souboru s pevnou šířkou:
SalesCode=3
SalesID=10
Ukázkové řádky v source_data_file_name:
230Shirts0056
320Towels1356
V předchozím příkladu bude mít první načtený řádek SalesCode='230' a SalesID='Shirts0056'. Druhý načtený řádek bude mít SalesCode='320' a SaleID='Towels1356'.
Informace o zpracování úvodních a koncových mezer nebo převodu datových typů v režimu pevné šířky naleznete v tématu Pravidla převodu datových typů pro dwloader.
-echaracter_encoding
Určuje typ kódování znaků pro data, která se mají načíst z datového souboru. Možnosti jsou ASCII (výchozí), UTF8, UTF16 nebo UTF16BE, kde UTF16 je malý endian a UTF16BE je big endian. Tyto možnosti nerozlišují malá a velká písmena.
Sloupce s pevnou šířkou nejsou podporovány, pokud je -e UTF8.
-roddělovač_řádků
Oddělovač pro každý řádek zdrojového datového souboru. Oddělovač řádků je jedna nebo více hodnot ASCII.
Pokud chcete jako oddělovač zadat znak návratu na začátek řádku (CR), znak nového řádku (LF) nebo znak tabulátoru, můžete použít řídicí znaky (\r, \n, \t) nebo jejich šestnáctkové hodnoty (0d, 0a, 09). Pokud chcete zadat jiné speciální znaky jako oddělovače, použijte jejich šestnáctkové hodnoty.
Příklady CR+LF:
-r \r\n
-r 0x0d0x0a
Příklady CR:
-r \r
-r 0x0d
Příklady LF:
-r \n
-r 0x0a
Pro Unix se vyžaduje LF. Pro Windows se vyžaduje CR.
-D { ymd | ydm | mdy | myd | dmy | dym | custom_date_format }
Určuje pořadí měsíce (m), dne (d) a roku (y) pro všechna pole data a času ve vstupním souboru. Výchozí pořadí je ymd. Pokud chcete zadat více formátů objednávek pro stejný zdrojový soubor, použijte možnost -dt.
ymd | dmy
ydm a dmy umožňují stejné vstupní formáty. Oba umožňují, aby rok byl na začátku nebo na konci data. Například pro formáty kalendářních dat ydm i dmy můžete mít ve vstupním souboru 2013-02-03 nebo 02-03-2013.
ydm
Vstup formátovaný jako ydm můžete načíst jenom do sloupců datového typu datetime a smalldatetime. Hodnoty ydm nelze načíst do sloupce datového typu datetime2, date nebo datetimeoffset.
mdy
mdy umožňuje <měsíc><mezera><den><čárka><rok>.
Příklady vstupních dat mdy pro 1. ledna 1975:
1. ledna 1975
01. ledna 1975
1. ledna 75
01011975
Myd
Příklady vstupních souborů pro březen 04 2010: 03-2010-04, 3/2010/4
dym
Příklady vstupních souborů pro březen 04, 2010: 04-2010-03, 4/2010/3
custom_date_format
custom_date_format je vlastní formát data (např. MM/dd/rrrr) a je součástí zpětné kompatibility. Dwloader nevynucuje vlastní formát data. Místo toho, když zadáte vlastní formát data, dwloader ho převede na odpovídající nastavení ymd, ydm, mdy, myd, dym nebo dmy.
Pokud například zadáte -D MM/dd/yyyy, dwloader očekává, že se bude všechna data řadit s měsícem jako prvním, pak dnem a rokem (mdy). Nevymáhá dvoumístné měsíce, dvoumístné dny a čtyřmístné roky, jak je určeno definovaným formátem data. Tady je několik příkladů způsobů formátování kalendářních dat ve vstupním souboru, pokud je formát data D MM/dd/yyyy: 01/02/2013, led.02.2013, 1/2/2013
Podrobnější informace o formátování najdete v tématu Pravidla převodu datových typů pro dwloader.
-dtdatetime_format_file
Každý formát data a času je zadaný v souboru s názvem datetime_format_file. Na rozdíl od parametrů příkazového řádku nesmí být parametry souboru, které obsahují mezery, uzavřeny do dvojitých uvozovek. Při načítání dat nelze změnit formát data a času. Zdrojový datový soubor a odpovídající sloupec v cílové tabulce musí mít stejný formát.
Každý řádek obsahuje název sloupce v cílové tabulce a jeho formát data a času.
Examples:
LastReceiptDate=ymd
ModifiedDate=dym
-dstaging_database_name
Název databáze, který bude obsahovat pracovní tabulku. Výchozí hodnota je databáze zadaná s možností -T, což je databáze pro cílovou tabulku. Další informace o použití staging databáze naleznete v části Vytvoření staging databáze.
-Mload_mode_option
Určuje, zda se mají připojit, upsertovat nebo znovu načíst data. Výchozí režim je připojen.
připojit
Zavaděč vloží řádky na konec existujících řádků v cílové tabulce.
fastappend
Zavaděč vloží řádky přímo bez použití dočasné tabulky na konec existujících řádků v cílové tabulce. Fastappend vyžaduje možnost více transakcí (-m). Pracovní databázi nelze zadat při použití fastappendu. U fastappendu nelze provést rollback, což znamená, že obnovení z neúspěšného nebo přerušeného procesu načítání musí být zpracováno vaším vlastním postupem načítání.
upsert -Kmerge_column [ ,... n ]
Zavaděč používá příkaz SQL Server Merge k aktualizaci stávajících řádků a vložení nových.
Možnost -K určuje sloupec nebo sloupce, na kterých se má sloučení založit. Tyto sloupce tvoří slučovací klíč, který by měl představovat jedinečný řádek. Pokud v cílové tabulce existuje slučovací klíč, řádek se aktualizuje. Pokud v cílové tabulce neexistuje slučovací klíč, připojí se řádek.
U tabulek distribuovaných pomocí hashů musí být klíč pro sjednocení nebo musí obsahovat distribuční sloupec.
U replikovaných tabulek je slučovací klíč kombinací jednoho nebo více sloupců. Tyto sloupce se zadají podle potřeb aplikace.
Více sloupců musí být odděleno čárkami bez mezer nebo čárkami s mezerami a uzavřeno v jednoduchých uvozovkách.
Pokud mají dva řádky ve zdrojové tabulce odpovídající hodnoty klíče sloučení, musí být odpovídající řádky shodné.
dobít
Zavaděč před vložením zdrojových dat zkrátí cílovou tabulku.
-bbatchsize
Doporučeno pouze pro použití technickou podporou Microsoftu, batchsize je velikost dávky SQL Serveru pro hromadné kopírování, které služba DMS provádí do instancí SQL Serveru na výpočetních uzlech. Při zadání batchsize SQL Server PDW přepíše velikost dávkového načtení, která se pro každé načtení vypočítá dynamicky.
Od verze SQL Server 2012 PDW řídicí uzel ve výchozím nastavení dynamicky vypočítává velikost dávky pro každé načítání. Tento automatický výpočet vychází z několika parametrů, jako je velikost paměti, typ cílové tabulky, schéma cílové tabulky, typ načtení, velikost souboru a třída prostředků uživatele.
Pokud je například režim načítání FASTAPPEND a tabulka obsahuje clusterovaný index columnstore, pokusí se PDW SQL Serveru ve výchozím nastavení použít velikost dávky 1 048 576, aby se skupiny řádků uzavřely a načetly přímo do columnstore, aniž by procházely rozdílovým úložištěm. Pokud paměť neumožňuje velikost dávky 1 048 576, dwloader zvolí menší dávku.
Pokud je typ načítání FASTAPPEND, velikost dávky se vztahuje na vkládání dat do tabulky, jinak se velikost dávky použije pro vkládání dat do pracovní tabulky.
<možnosti_odmítnutí>
Určuje možnosti pro určení počtu selhání zatížení, které zavaděč povolí. Pokud selhání zatížení překročí prahovou hodnotu, zavaděč se zastaví a nespustí žádné řádky.
-rt { hodnota | procento }
Určuje, jestli je parametr -reject_value v parametru -rvreject_value literálem počet řádků (hodnota) nebo míra selhání (procento). Výchozí hodnota je hodnota.
Možnost procentuálního výpočtu je výpočet v reálném čase, který se provádí v intervalech podle možnosti -rs.
Pokud se například zavaděč pokusí načíst 100 řádků a 25 selže a 75 je úspěšné, podíl selhání je 25%.
-rvreject_value
Určuje počet nebo procento odmítnutí řádků, které se mají povolit před zastavením načítání. Možnost -rt určuje, jestli reject_value odkazuje na počet řádků nebo procento řádků.
Výchozí reject_value je 0.
Při použití s -rt hodnotou zavaděč zastaví zatížení, když počet odmítnutých řádků překročí reject_value.
Při použití s procentem -rt zavaděč vypočítá procento při daných intervalech s použitím možností -rs. Proto procento neúspěšných řádků může překročit reject_value.
-rsreject_sample_size
Používá se s -rt percentage možností k určení přírůstkových procentuálních kontrol. Pokud je například reject_sample_size 1000, Loader vypočítá procento neúspěšných řádků po načtení 1 000 řádků. Přepočítá procento neúspěšných řádků poté, co se pokusí načíst dalších 1 000 řádků.
-c
Odebere bílé znaky z levé a pravé strany polí typu char, nchar, varchar a nvarchar. Tranformuje každé pole, které obsahuje pouze prázdné znaky, na prázdný řetězec.
Examples:
'' se zkrátí na ''
' abc ' se zkrátí na 'abc'
Při použití -c s -E se nejprve provede operace -E. Pole, která obsahují pouze prázdné znaky, se převedou na prázdný řetězec, nikoli na hodnotu NULL.
-E
Převede prázdné řetězce na hodnotu NULL. Výchozí hodnota je neprovádět tyto převody.
-m
Použijte režim více transakcí pro druhou fázi načítání při načítání dat z pracovní tabulky do distribuované tabulky.
S příkazem -m provádí PDW SQL Serveru paralelní načítání a potvrzení. To provádí mnohem rychleji než výchozí režim načítání, ale není bezpečný pro transakce.
Bez -m provádí a zapíše soubor PDW SQL Serveru sériově napříč distribucemi v jednotlivých výpočetních uzlech a současně napříč výpočetními uzly. Tato metoda je pomalejší než režim více transakcí, ale je bezpečná pro transakce.
-m je volitelný pro připojení, reload a upsert.
-m je vyžadován pro fastappend.
-m nelze použít s replikovanými tabulkami.
-m platí pouze pro druhou fázi načítání. Nevztahuje se na první fázi načítání, což je načítání dat do pracovní tabulky.
V multitransakčním režimu neexistuje možnost vrácení zpět, což znamená, že obnovení z neúspěšného nebo přerušeného načítání musí být řešeno vlastním procesem načítání.
Doporučujeme použít -m pouze při načítání do prázdné tabulky, abyste je mohli obnovit bez ztráty dat. Pokud se chcete zotavit z selhání načítání: odstraňte cílovou tabulku, vyřešte problém s načtením, znovu vytvořte cílovou tabulku a spusťte načtení znovu.
-N
Ověřte, že cílové zařízení má platný certifikát PDW sql Serveru od důvěryhodné autority. Tento postup vám pomůže zajistit to, aby útočník neunesl vaše data a neposlal je na neautorizované umístění. Certifikát už musí být na zařízení nainstalovaný. Jediným podporovaným způsobem instalace certifikátu je, aby ho správce zařízení nainstaloval pomocí nástroje Správce konfigurace. Požádejte správce zařízení, jestli si nejste jistí, jestli má zařízení nainstalovaný důvěryhodný certifikát.
-se
Přeskočte načítání prázdných souborů. Tím se také přeskočí nekomprimace prázdných souborů gzip.
-l
K dispozici s aktualizací CU7.4 určuje maximální délku řádku (v bajtech), kterou lze načíst. Platné hodnoty jsou celá čísla mezi 32768 a 33554432. Používejte jej pouze tehdy, když je potřeba načíst velké řádky (větší než 32 kB), protože to přidělí více paměti na straně klienta i serveru.
Hodnoty návratového kódu
0 (úspěch) nebo jiná celočíselná hodnota (selhání)
V příkazovém okně nebo dávkovém souboru použijte errorlevel k zobrazení návratového kódu. Například:
dwloader
echo ReturnCode=%errorlevel%
if not %errorlevel%==0 echo Fail
if %errorlevel%==0 echo Success
Při použití PowerShellu použijte $LastExitCode.
Povolení
Vyžaduje oprávnění LOAD a příslušná oprávnění (INSERT, UPDATE, DELETE) v cílové tabulce. Vyžaduje oprávnění CREATE v "staging" databázi pro vytvoření dočasné tabulky. Pokud se staging databáze nepoužívá, je pro cílovou databázi vyžadováno oprávnění CREATE.
Obecné poznámky
Informace o převodech datových typů při načítání pomocí dwloaderu naleznete v tématu Pravidla převodu datových typů pro dwloader.
Pokud parametr obsahuje jednu nebo více mezer, uzavřete parametr do dvojitých uvozovek.
Zavaděč byste měli spustit z místa, kam byl nainstalován. Spustitelný soubor dwloaderu je předinstalovaný se zařízením a nachází se v adresáři C:\Program Files\Microsoft SQL Server Data Warehouse\DWLoader.
Parametr zadaný v souboru parametrů (-f možnosti) můžete přepsat zadáním parametru příkazového řádku.
Můžete spustit více instancí Zavaděče současně. Maximální počet instancí Loaderu je předem nakonfigurovaný a nelze jej změnit.
Načtená data můžou vyžadovat více nebo méně místa na zařízení než ve zdrojovém umístění. K odhadu spotřeby disků můžete provést testovací importy s podmnožinami dat.
I když je dwloader transakční proces a v případě selhání se vrátí bez problémů, nelze jej vrátit zpět po úspěšném dokončení hromadného načtení. Pokud chcete zrušit aktivní proces dwloaderu , zadejte CTRL+C.
Limitace a omezení
Celková velikost všech současně probíhajících zatížení musí být menší než LOG_SIZE databáze a doporučujeme, aby celková velikost všech souběžných zatížení byla menší než 50% LOG_SIZE. Pokud chcete dosáhnout tohoto omezení velikosti, můžete velké zatížení rozdělit do několika dávek. Další informace o LOG_SIZE najdete v tématu CREATE DATABASE
Při načítání více souborů pomocí jednoho příkazu pro načtení se všechny odmítnuté řádky zapisují do stejného souboru zamítnutí. Soubor zamítnutí nezobrazuje, který vstupní soubor obsahuje každý odmítnutý řádek.
Prázdný řetězec by se neměl používat jako oddělovač. Pokud se prázdný řetězec použije jako oddělovač řádků, načtení selže. Pokud se používá jako oddělovač sloupců, zatížení ignoruje oddělovač a nadále jako oddělovač sloupců používá výchozí znak |. Při použití jako oddělovač řetězců se prázdný řetězec ignoruje a použije se výchozí chování.
Chování zámku
Chování uzamčení dwloader se různí podle možnosti load_mode_option.
append - Přidání je doporučená a nejběžnější možnost. Data se připojují do přechodné tabulky. Zamykání je podrobně popsáno níže.
rychlé připojení – rychlé připojení se načte přímo do konečné tabulky, která přebírá zámek tabulky ExclusiveUpdate, a je jediným režimem, který nepoužívá pracovní tabulku.
opětovné načtení – Opětovné načtení načte data do pracovní tabulky a vyžaduje výhradní zámek v pracovní i cílové tabulce. Opětovné načtení se nedoporučuje pro souběžné operace.
Upsert – Upsert načte data do pracovní tabulky a potom provede operaci sloučení z pracovní tabulky do konečné tabulky. Upsert nevyžaduje výhradní zámky v konečné tabulce. Výkon se může při použití upsertu lišit. Otestujte chování ve vašem prostředí.
Chování zámku
Zamykání režimu připojení
Připojit lze spustit v režimu s více transakcemi (pomocí argumentu -m), ale není transakčně bezpečné. Připojení by proto mělo být použito jako transakční operace (bez použití argumentu -m). Během konečné INSERToperace -SELECT je bohužel transakční režim asi šestkrát pomalejší než režim s více transakcemi.
Režim připojení načte data ve dvou fázích. Fáze 1 načte data ze zdrojového souboru do pracovní tabulky souběžně (může dojít k fragmentaci). Fáze 2 načte data z pracovní tabulky do konečné tabulky. Druhá fáze provádí operaci INSERT INTO...SELECT WITH (TABLOCK). Následující tabulka ukazuje chování uzamčení konečné tabulky a chování protokolování při použití režimu připojení:
| Typ tabulky | Více transakcí Režim (-m) |
Tabulka je prázdná. | Podpora souběžnosti | Logování |
|---|---|---|---|---|
| Halda | Ano | Ano | Ano | Minimální |
| Halda | Ano | Ne | Ano | Minimální |
| Halda | Ne | Ano | Ne | Minimální |
| Halda | Ne | Ne | Ne | Minimální |
| Cl | Ano | Ano | Ne | Minimální |
| Cl | Ano | Ne | Ano | Full |
| Cl | Ne | Ano | Ne | Minimální |
| Cl | Ne | Ne | Ano | Full |
Výše uvedená tabulka ukazuje dwloader používající připojovací režim pro načítání do tabulky haldy nebo s clusterovaným indexem (CI), s příznakem více transakcí nebo bez něj, a načítání do prázdné nebo neprázdné tabulky. V tabulce se zobrazuje chování zamykání a protokolování každé takové kombinace zatížení. Například načtení ve 2. fázi s režimem připojení do clusterovaného indexu bez režimu více transakcí do prázdné tabulky způsobí, že PDW vytvoří výhradní zámek v tabulce, a protokolování je minimální. To znamená, že zákazník nebude moci načíst 2. fázi a současně dotazovat do prázdné tabulky. Při načítání se stejnou konfigurací do neprázdné tabulky však PDW nevydá výhradní zámek na tabulku a souběžnost je možná. Bohužel dochází k úplnému protokolování, což zpomaluje proces.
Examples
A. Příklad jednoduchého dwloaderu
Následující příklad ukazuje inicializaci zavaděče s vybranými pouze nezbytnými možnostmi. Další možnosti jsou převzaty z globálního konfiguračního souboru ,loadparamfile.txt.
Příklad použití ověřování SQL Serveru
--Load over Ethernet
dwloader.exe -S 10.192.63.148 -U mylogin -P 123jkl -f /configfiles/loadparamfile.txt
--Load over InfiniBand to appliance named MyPDW
dwloader.exe -S MyPDW-SQLCTL01 -U mylogin -P 123jkl -f /configfiles/loadparamfile.txt
Stejný příklad pomocí ověřování systému Windows.
--Load over Ethernet
dwloader.exe -S 10.192.63.148 -W -f /configfiles/loadparamfile.txt
--Load over InfiniBand to appliance named MyPDW
dwloader.exe -S MyPDW-SQLCTL01 -W -f /configfiles/loadparamfile.txt
Příklad použití argumentů pro zdrojový soubor a chybový soubor
--Load over Ethernet
dwloader.exe -U mylogin -P 123jkl -S 10.192.63.148 -i C:\SQLData\AWDimEmployees.csv -T AdventureWorksPDW2012.dbo.DimEmployees -R C:\SQLData\LoadErrors
B. Načtení dat do tabulky AdventureWorks
Následující příklad je součástí dávkového skriptu, který načte data do AdventureWorksPDW2012. Úplný skript zobrazíte tak, že otevřete soubor aw_create.bat, který se dodává s instalačním balíčkem AdventureWorksPDW2012 .
Následující fragment kódu skriptu používá dwloader k načtení dat do tabulek DimAccount a DimCurrency. Tento skript používá ethernetovou adresu. Pokud by používal InfiniBand, server by byl <appliance_name>-SQLCTL01.
set server=10.193.63.134
set user=<MyUser>
set password=<password>
set schema=AdventureWorksPDW2012.dbo
set load="C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe"
set mode=reload
--Loads data into the AdventureWorksPDW2012.dbo.DimAccount table
--Source data is stored in the file DimAccount.txt,
--which is in the current directory.
set t1=DimAccount
%load% -S %server% -E -M %mode% -e Utf16 -i .\%t1%.txt -T %schema%.%t1% -R %t1%.bad -t "|" -r \r\n -U %user% -P %password%
--Loads data from the DimCurrency.txt file into
--AdventureWorksPDW2012.dbo.DimCurrency
set t1=DimCurrency
%load% -S %server% -E -M %mode% -e Utf16 -i .\%t1%.txt -T %schema%.%t1% -R %t1%.bad -t "|" -r \r\n -U %user% -P %password%
Následuje DDL pro tabulku DimAccount.
CREATE TABLE DimAccount(
AccountKey int NOT NULL,
ParentAccountKey int,
AccountCodeAlternateKey int,
ParentAccountCodeAlternateKey int,
AccountDescription nvarchar(50),
AccountType nvarchar(50),
Operator nvarchar(50),
CustomMembers nvarchar(300),
ValueType nvarchar(50),
CustomMemberOptions nvarchar(200))
with (CLUSTERED INDEX(AccountKey),
DISTRIBUTION = REPLICATE);
Následuje příklad datového souboru, DimAccount.txt, který obsahuje data, která se mají načíst do tabulky DimAccount.
--Sample of data in the DimAccount.txt load file.
1||1||Balance Sheet||~||Currency|
2|1|10|1|Assets|Assets|+||Currency|
3|2|110|10|Current Assets|Assets|+||Currency|
4|3|1110|110|Cash|Assets|+||Currency|
5|3|1120|110|Receivables|Assets|+||Currency|
6|5|1130|1120|Trade Receivables|Assets|+||Currency|
7|5|1140|1120|Other Receivables|Assets|+||Currency|
8|3|1150|110|Allowance for Bad Debt|Assets|+||Currency|
9|3|1160|110|Inventory|Assets|+||Currency|
10|9|1162|1160|Raw Materials|Assets|+||Currency|
11|9|1164|1160|Work in Process|Assets|+||Currency|
12|9|1166|1160|Finished Goods|Assets|+||Currency|
13|3|1170|110|Deferred Taxes|Assets|+||Currency|
C. Načtení dat z příkazového řádku
Skript v příkladu B lze nahradit zadáním všech parametrů na příkazovém řádku, jak je znázorněno v následujícím příkladu.
C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe -S <Control node IP> -E -M reload -e UTF16 -i .\DimAccount.txt -T AdventureWorksPDW2012.dbo.DimAccount -R DimAccount.bad -t "|" -r \r\n -U <login> -P <password>
Popis parametrů příkazového řádku:
C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe je nainstalované umístění dwloader.exe.
-S následuje IP adresa řídicího uzlu.
-E určuje načtení prázdných řetězců jako NULL.
-M reload určuje zkrácení cílové tabulky před vložením zdrojových dat.
-e UTF16 označuje, že zdrojový soubor používá typ kódování malého endian znaku.
-i .\DimAccount.txt určuje, že data jsou v souboru s názvem DimAccount.txt, který existuje v aktuálním adresáři.
-T AdventureWorksPDW2012.dbo.DimAccount určuje název 3 části tabulky pro příjem dat.
-R DimAccount.bad určuje řádky, které se nepodařilo načíst, budou zapsány do souboru s názvem DimAccount.bad.
-t "|" označuje, že pole ve vstupním souboru DimAccount.txt jsou oddělena znakem svislé roury.
-r \r\n označuje, že každý řádek v DimAccount.txt končí znakem návrat vozíku a znakem posun na nový řádek.
-U <login_name> -P <heslo> určuje přihlašovací jméno a heslo pro login s oprávněním provést nahrání.