Megosztás:


dwloader Parancssori betöltő a Parallel Data Warehouse-hoz

A dwloader egy párhuzamos adattárház (PDW) parancssori eszköz, amely tömegesen betölti a táblázat sorait egy meglévő táblába. Sorok betöltésekor az összes sort hozzáadhatja a táblázat végéhez (hozzáfűzési mód vagy gyorsalkalmazás mód), új sorokat fűzhet hozzá, és frissítheti a meglévő sorokat (upsert mód), vagy a betöltés előtt törölheti az összes meglévő sort, majd az összes sort beszúrhatja egy üres táblába (újratöltési mód).

Adatok betöltésének folyamata

  1. Készítse elő a forrásadatokat.

    Saját ETL-folyamatával hozza létre a betölteni kívánt forrásadatokat. A forrásadatokat úgy kell formázni, hogy megfeleljenek a céltábla sémájának. Tárolja a forrásadatokat egy vagy több szövegfájlban, és másolja a szövegfájlokat ugyanabba a könyvtárba a betöltési kiszolgálón. További információ a betöltési kiszolgálóról: Betöltőkiszolgáló beszerzése és konfigurálása

  2. Készítse elő a betöltési beállításokat.

    Döntse el, hogy mely betöltési beállításokat fogja használni. Tárolja a betöltési beállításokat egy konfigurációs fájlban. Másolja a konfigurációs fájlt egy helyi helyre a betöltési kiszolgálón. A dwloader konfigurációs beállításait ebben a témakörben ismertetjük.

  3. A terhelési hiba opciók előkészítése.

    Döntse el, hogy a dwloader hogyan kezelje a be nem tölthető sorokat. A betöltés végrehajtásához a dwloader először betölti az adatokat egy átmeneti táblába, majd átviszi az adatokat a céltáblába. Ahogy a Betöltő betölti az adatokat az előkészítési táblába, nyomon követi a nem betöltendő sorok számát. A nem megfelelően formázott sorok betöltése például sikertelen lesz. A rendszer a sikertelen sorokat egy elutasító fájlba másolja. Alapértelmezés szerint a terhelés az első elutasítás után megszakad, hacsak nem ad meg másik elutasítási küszöbértéket.

  4. Telepítse dwloadert.

    Telepítse a dwloadert a betöltési kiszolgálóra, ha még nincs telepítve.

  1. Futtassa a dwloader-t.

    Jelentkezzen be a betöltési kiszolgálóra, és futtassa a végrehajtható dwloader.exe a megfelelő parancssori beállításokkal.

  2. Ellenőrizze az eredményeket.

    Ellenőrizheti a sikertelen sorokat tartalmazó fájlt (-R), hogy lássa, mely sorok betöltése nem sikerült. Ha ez a fájl üres, az összes sor sikeresen betöltődött. A dwloader tranzakciós, ezért ha bármelyik lépés meghiúsul (kivéve az elutasított sorokat), az összes lépés vissza fog kerülni a kezdeti állapotba.

Szemantika

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
A Betöltő használatával kapcsolatos egyszerű súgóinformációkat jelenít meg. A súgó csak akkor jelenik meg, ha nincs megadva más parancssori paraméter.

-Ulogin_name
Érvényes SQL Server-hitelesítési bejelentkezés a terhelés végrehajtásához szükséges engedélyekkel.

-P<jelszó>
Az SQL Server-hitelesítés login_name jelszava.

-W
Windows-hitelesítés használata. (Nem szükséges login_name vagy jelszó.)

-fparameter_file_name
Parancssori paraméterek helyett használjon parameter_file_name paraméterfájlt. parameter_file_name a user_name és a jelszó kivételével bármilyen parancssori paramétert tartalmazhat. Ha egy paraméter a parancssorban és a paraméterfájlban van megadva, a parancssor felülírja a fájlparamétert.

A paraméterfájl soronként egyetlen paramétert tartalmaz az - előtag nélkül.

Examples:

rt=percentage

rv=25

-Starget_appliance
Megadja a betöltött adatokat fogadó SQL Server PDW-berendezést.

Az Infiniband-kapcsolatok esetébena target_appliance berendezésnév-SQLCTL01< ként >van megadva. A névvel ellátott kapcsolat konfigurálásához lásd az InfiniBand hálózati adapterek konfigurálását.

Ethernet-kapcsolatok esetén target_appliance a vezérlő csomópont klaszter IP-címe.

Ha nincs megadva, a dwloader alapértelmezés szerint a dwloader telepítésekor megadott értékre kerül.

-Ttarget_database_name.[séma]. table_name
A céltábla háromrészes neve.

-Isource_data_location
Egy vagy több betöltendő forrásfájl helye. Minden forrásfájlnak egy szövegfájlnak vagy egy gzip-vel tömörített szövegfájlnak kell lennie. Minden gzip-fájlba csak egy forrásfájl tömöríthető.

Forrásfájl formázása:

  • A forrásfájlt a betöltési beállításoknak megfelelően kell formázni.

  • A forrásfájl minden sora egy táblasor adatait tartalmazza. A forrásadatoknak meg kell egyeznie a céltábla sémájának. Az oszlopsorrendnek és az adattípusoknak is egyeznie kell. A sor minden mezője a céltábla egy oszlopát jelöli.

  • Alapértelmezés szerint a mezők változó hosszúságúak, és elválasztójel választják el egymástól. Az elválasztó típus megadásához használja a <variable_length_column_options> parancssori beállításokat. Rögzített hosszúságú mezők megadásához használja a <fixed_width_column_options> parancssori beállításokat.

A forrásadatok helyének megadása:

  • A forrásadat-hely lehet hálózati elérési út vagy helyi elérési út a betöltési kiszolgálón lévő címtárhoz.

  • A címtárban lévő összes fájl megadásához adja meg a könyvtár elérési útját, majd a * helyettesítő karaktert. A betöltő nem tölt be fájlokat a forrásadat-helyen található alkönyvtárakból. A betöltő hibát jelez, ha egy könyvtár található egy gzip-fájlban.

  • A könyvtárban lévő fájlok egy részének megadásához használja a karakterek és a * helyettesítő karakterek kombinációját.

Több fájl betöltése egyetlen paranccsal:

  • Minden fájlnak ugyanabban a könyvtárban kell lennie.

  • A fájloknak minden szövegfájlnak, minden gzip-fájlnak vagy szöveg- és gzip-fájl kombinációjának kell lenniük.

  • Egyik fájl sem tartalmazhat fejlécadatokat.

  • Minden fájlnak ugyanazt a karakterkódolási típust kell használnia. Tekintse meg a -e lehetőséget.

  • Minden fájlt ugyanabba a táblába kell betölteni.

  • Az összes fájl összefűződik és betöltődik, mintha egy fájl lenne, és az elutasított sorok egyetlen elutasító fájlba kerülnek.

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
Ha terhelési hibák történnek, a dwloader tárolja a be nem tölthető sort, a hiba leírását pedig egy load_failure_file_name nevű fájlban. Ha ez a fájl már létezik, a dwloader felülírja a meglévő fájlt. load_failure_file_name az első hiba bekövetkezésekor jön létre. Ha az összes sor sikeresen betöltődik, load_failure_file_name nem jön létre.

-fhnumber_header_rows
A source_data_file_name elején figyelmen kívül hagyandó sorok (sorok) száma. Az alapértelmezett érték 0.

<változó hosszúságú oszlop beállítások>
A karakterrel tagolt változóhosszú oszlopokkal rendelkező source_data_file_name beállításai. Alapértelmezés szerint source_data_file_name ASCII-karaktereket tartalmaz változó hosszúságú oszlopokban.

AZ ASCII-fájlok esetében a NULL-ek egymást követő elválasztójelek elhelyezésével jelennek meg. Például egy csővel tagolt fájlban ("|") a NULL értéket a következő jelöli: "||". Vesszővel tagolt fájlban a NULL értéket a "," jelöli. Emellett meg kell adni az -E (--emptyStringAsNull) beállítást is. Az -E-ről az alábbiakban talál további információt.

-echaracter_encoding
Az adatfájlból betöltendő adatok karakterkódolási típusát adja meg. A beállítások az ASCII (alapértelmezett), UTF8, UTF16 vagy UTF16BE, ahol az UTF16 kis endian, UTF16BE pedig nagy endian. Ezek a lehetőségek nem érzékenyek a kis- és nagybetűkre.

-tmezőelválasztó
A sor egyes mezőinek (oszlopainak) elválasztójele. A mezőelválasztó egy vagy több ilyen ASCII vezérlőkarakterből vagy ASCII hexadecimális értékekből áll.

Név Elkerülő karakter Hex karakter
Tab \t 0x09
Kocsivissza (CR) \r 0x0d
Vonalcsatorna (LF) \n 0x0a
CRLF \r\n 0x0d0x0a
Vessző ',' 0x2c
Dupla idézőjel \" 0x22
Egy idézőjel \' 0x27

Ha a parancssorban meg szeretné adni a pipa karaktert, csatolja a következő idézőjelekhez: "|". Ezzel elkerülheti a parancssori elemző félreértelmezését. A többi karakter egyetlen idézőjel közé van zárva.

Examples:

-t "|"

-t ' '

-t 0x0a

-t \t

-t '~|~'

-rsorhatároló
A forrásadatfájl minden sorának elválasztójele. A sorelválasztó egy vagy több ASCII-érték.

Ha elválasztóként szeretne megadni egy kocsivisszatérés (CR), soremelés (LF) vagy tabulátor karaktert, használhatja az escape karaktereket (\r, \n, \t) vagy azok hexadecimális értékeit (0x0D, 0x0A, 0x09). Ha más különleges karaktereket elválasztóként szeretne megadni, használja a hexadecimális értéket.

Példák a CR+LF használatára:

-r \r\n

-r 0x0d0x0a

Példák a CR-ra:

-r \r

-r 0x0d

Példák az LF-re:

-r \n

-r 0x0a

A Unixhoz LF szükséges. A Windowshoz CR szükséges.

-sstring_delimiter
A szöveggel tagolt bemeneti fájl sztring típusú adattípusának elválasztó mezője. A sztringelválasztó egy vagy több ASCII-érték. Megadható karakterként (például -s *) vagy hexaértékként (például -s 0x22 egy dupla idézőjelhez).

Examples:

-s*

-s 0x22

< rögzített szélességű oszlop opciók>
Rögzített hosszúságú oszlopokkal rendelkező forrásadatfájl beállításai. Alapértelmezés szerint source_data_file_name ASCII-karaktereket tartalmaz változó hosszúságú oszlopokban.

A rögzített szélességű oszlopok nem támogatottak, ha -e UTF8.

-wfixed_width_config_file
Az egyes oszlopokban szereplő karakterek számát meghatározó konfigurációs fájl elérési útja és neve. Minden mezőt meg kell adni.

Ennek a fájlnak a betöltési kiszolgálón kell lennie. Az elérési út lehet UNC, relatív vagy abszolút. A fixed_width_config_file minden sora egy oszlop nevét és az oszlop karaktereinek számát tartalmazza. Az alábbiak szerint oszloponként egy sor van, és a fájlban lévő sorrendnek meg kell egyeznie a céltáblában szereplő sorrenddel:

column_name=num_chars

oszlop_név=karakterek_száma

Példa rögzített szélességű konfigurációs fájlra:

SalesCode=3

SalesID=10

Példasorok a source_data_file_name:

230Shirts0056

320Towels1356

Az előző példában az első betöltött sor SalesCode='230' és SalesID='Shirts0056' lesz. A második betöltött sor a SalesCode='320' és a SaleID='Towels1356' lesz.

A kezdő és záró szóközök vagy adattípus-átalakítás rögzített szélességű módban történő kezelésével kapcsolatos információkért lásd a dwloader adattípus-átalakítási szabályait.

-echaracter_encoding
Az adatfájlból betöltendő adatok karakterkódolási típusát adja meg. A beállítások az ASCII (alapértelmezett), UTF8, UTF16 vagy UTF16BE, ahol az UTF16 kis endian, UTF16BE pedig nagy endian. Ezek a lehetőségek nem érzékenyek a kis- és nagybetűkre.

A rögzített szélességű oszlopok nem támogatottak, ha -e UTF8.

-rsorhatároló
A forrásadatfájl minden sorának elválasztójele. A sorelválasztó egy vagy több ASCII-érték.

Ha elválasztóként szeretne megadni egy kocsivisszatérés (CR), soremelés (LF) vagy tabulátor karaktert, használhatja az escape karaktereket (\r, \n, \t) vagy azok hexadecimális értékeit (0x0D, 0x0A, 0x09). Ha más különleges karaktereket elválasztóként szeretne megadni, használja a hexadecimális értéket.

Példák a CR+LF használatára:

-r \r\n

-r 0x0d0x0a

Példák a CR-ra:

-r \r

-r 0x0d

Példák az LF-re:

-r \n

-r 0x0a

A Unixhoz LF szükséges. A Windowshoz CR szükséges.

-D { ymd | ydm | mdy | myd | dmy | dym | custom_date_format }
Megadja a hónap (m), a nap (d) és az év (y) sorrendjét a bemeneti fájl összes datetime mezőjéhez. Az alapértelmezett sorrend az ymd. Ha több rendelésformátumot szeretne megadni ugyanahhoz a forrásfájlhoz, használja a -dt lehetőséget.

ymd | dmy
Az ydm és a dmy ugyanazokat a bemeneti formátumokat engedélyezi. Mindkettő lehetővé teszi, hogy az év a dátum elején vagy végén legyen. Például az ydm és a dmy dátumformátum esetén a bemeneti fájlban a 2013-02-03 vagy a 02-03-2013 is szerepelhet.

ydm
Csak ydm formátumban formázott bemenetet tölthet be datetime és smalldatetime adattípusú oszlopokba. Az ydm-értékeket nem töltheti be a datetime2, date vagy datetimeoffset adattípus oszlopába.

mdy
mdy lehetővé teszi <hónap><szóköz><nap><vessző><év>.

Példák mdy bemeneti adatokra 1975. január 1-jei adatokra:

  • 1975. január 1.

  • Január 01, 75

  • Január/1/75

  • 01011975

myd
Bemeneti fájlpéldák 2010. március 04-hez: 03-2010-04, 3/2010/4

dym
Bemeneti fájlpéldák 2010. március 04-hez: 04-2010-03, 4/2010/3

egyedi dátumformátum
custom_date_format egy egyéni dátumformátum (pl. MM/dd/ééé), és csak a visszamenőleges kompatibilitáshoz használható. A dwloader nem kényszeríti ki az egyéni dátumformátumot. Ehelyett, ha egyéni dátumformátumot ad meg, a dwloader konvertálja azt az ymd, ydm, mdy, myd, dym vagy dmy megfelelő formátumra.

Ha például -D MM/dd/yyyyy értéket ad meg, a dwloader azt várja, hogy az összes dátumbevitelt a hónap, majd a nap, majd az év (mdy) szerint rendezze. Nem kényszeríti ki a 2 karakterből álló hónapokat, a kétjegyű napokat és a 4 jegyű éveket az egyéni dátumformátumban megadottak szerint. Íme néhány példa arra, hogyan formázhatók a dátumok a bemeneti fájlban, ha a dátumformátum -D MM/dd/éééé: 01/02/2013, jan.02.2013, 01/02/2013.

Átfogóbb formázási információkért tekintse meg a dwloader adattípus-konvertálási szabályait.

-dtdátumidő_formátum_fájl
Minden dátum/idő formátum egy datetime_format_file nevű fájlban van megadva. A parancssori paraméterekkel ellentétben a szóközöket tartalmazó fájlparamétereket nem szabad idézőjelek közé foglalni. Adatok betöltésekor nem módosíthatja a datetime formátumot. A forrásadatfájlnak és a céltábla megfelelő oszlopának azonos formátumúnak kell lennie.

Minden sor tartalmazza a céltáblában lévő oszlop nevét és dátum-idő formátumát.

Examples:

LastReceiptDate=ymd

ModifiedDate=dym

-dstaging_database_name
Az előkészítési táblát tartalmazó adatbázis neve. Az alapértelmezett beállítás a -T beállítással megadott adatbázis, amely a céltábla adatbázisa. Az átmeneti adatbázis használatáról további információt az Átmeneti adatbázis létrehozása című témakörben talál.

-Mload_mode_option
Megadja, hogy az adatok hozzáfűzése, feltöltése vagy újratöltése legyen-e. Az alapértelmezett mód a hozzáfűzés.

hozzáfűz
A Betöltő a céltábla meglévő sorainak végére szúrja be a sorokat.

gyorshozzáfűzés
A Betöltő közvetlenül, ideiglenes tábla használata nélkül szúr be sorokat a céltábla meglévő sorainak végére. A fastappend használatához a több tranzakciós (-m) beállítás szükséges. A fastappend használatakor nem adható meg átmeneti adatbázis. A fastappend használatával nincs visszaállítás, ami azt jelenti, hogy a sikertelen vagy megszakított adatbetöltésből való visszaállítást saját adatfeltöltési folyamat keretén belül kell kezelni.

upsert -Kmerge_column [ ,... n ]
A Loader az SQL Server Merge utasításával frissíti a meglévő sorokat, és új sorokat szúr be.

A -K beállítás megadja az egyesítés alapjául szolgáló oszlopot vagy oszlopokat. Ezek az oszlopok egy egyesítési kulcsot alkotnak, amelynek egyedi sort kell jelölnie. Ha az egyesítési kulcs megtalálható a céltáblában, a sor frissül. Ha az egyesítési kulcs nem szerepel a céltáblában, a program hozzáfűzi a sort.

Hash-szétosztott táblák esetén az összevonási kulcsnak kell tartalmaznia vagy magában foglalnia kell az elosztási oszlopot.

Replikált táblák esetén az egyesítési kulcs egy vagy több oszlop kombinációja. Ezek az oszlopok az alkalmazás igényeinek megfelelően vannak megadva.

Több oszlopot szóköz nélkül kell vesszővel elválasztani, vagy szóközökkel vesszővel elválasztani, és egyetlen idézőjelben kell elhelyezni.

Ha a forrástábla két sora egyező egyesítési kulcsértékekkel rendelkezik, a megfelelő soroknak azonosnak kell lenniük.

feltölt
A Loader csonkolja a céltáblát, mielőtt beszúrja a forrásadatokat.

-bkötegméret
Csak a Microsoft ügyfélszolgálata által javasolt, a batchsize az SQL Server kötegmérete, melyet a DMS a számítási csomópontokon lévő SQL Server-példányokba végzett tömeges másolás során használ. A kötegméret megadásakor az SQL Server PDW felülbírálja az egyes terhelésekhez dinamikusan kiszámított kötegbetöltési méretet.

Az SQL Server 2012 PDW-től kezdve a Vezérlő csomópont alapértelmezés szerint dinamikusan kiszámítja az egyes terhelések kötegméretét. Ez az automatikus számítás több paraméteren alapul, például a memóriaméreten, a céltábla típusán, a céltábla sémáján, a betöltési típuson, a fájlméreten és a felhasználó erőforrásosztályán.

Ha például a betöltési mód FASTAPPEND, és a tábla fürtözött oszlopstore indexet tartalmaz, az SQL Server PDW alapértelmezés szerint 1 048 576-os kötegméretet kísérel meg használni, hogy a sorcsoportok CLOSED (zárva) legyenek, és közvetlenül az oszlopstore-ba töltődjenek be anélkül, hogy áthaladnának a deltatárolón. Ha a memória nem teszi lehetővé az 1 048 576-os kötegméretet, a dwloader kisebb kötegméretet választ.

Ha a betöltési típus FASTAPPEND, a kötegméret az adatok táblába való betöltésére vonatkozik, ellenkező esetben pedig a kötegméret az adatok átmeneti táblába való betöltésére vonatkozik.

<visszautasítási_opciók>
A betöltő által engedélyezett terhelési hibák számának meghatározására szolgáló beállításokat adja meg. Ha a terhelési hibák túllépik a küszöbértéket, a betöltő leáll, és nem véglegesíti a sorokat.

-rt { érték | százalék }
Azt határozza meg, hogy a -reject_value a -rvreject_value beállításban a sorok (értékek) literális száma vagy a hiba aránya (százalék). Az alapértelmezett érték.

A százalékos beállítás egy valós idejű számítás, amely a -rs beállításnak megfelelően időközönként történik.

Ha például a Betöltő 100 sort próbál betölteni, 25 sikertelen és 75 sikeres, akkor a hibaarány 25%.

-rvreject_value
Megadja a sorkilökések számát vagy százalékos arányát, amelyeket a terhelés leállítása előtt engedélyezni kell. A -rt beállítás határozza meg, hogy reject_value a sorok számára vagy a sorok százalékos arányára vonatkozik-e.

Az alapértelmezett reject_value 0.

Ha a -rt értékkel használja, a betöltő leállítja a betöltést, ha az elutasított sorok száma meghaladja az elutasítási küszöb értékét.

Ha -rt százalékos értéket használ, a betöltő időközökben számítja ki a százalékos értéket (-rs beállítás). Ezért a sikertelen sorok százalékos aránya meghaladhatja a reject_value.

-rsreject_sample_size
Használható a -rt percentage opcióval a növekményes százalékos ellenőrzések megadásához. Ha például reject_sample_size 1000, a Betöltő kiszámítja a sikertelen sorok százalékos arányát, miután 1000 sort próbált betölteni. Újraszámítja a sikertelen sorok százalékos arányát, miután megkísérli betölteni az egyes további 1000 sort.

-c
Eltávolítja a fehér szóközöket a char, nchar, varchar és nvarchar mezők bal és jobb oldaláról. A csak üres szóköz karaktereket tartalmazó mezőket üres sztringgé alakítja.

Examples:

Az ' ' karakterek ''-re csonkolódnak.

A ' abc ' csonkolódik 'abc'-ra.

Amikor a -c-t és a -E-t együtt használják, először a -E művelet történik. A csak üres szóköz karaktereket tartalmazó mezőket a program üres karakterlánccá alakítja, és nem NULL értékre.

-E
Üres sztringek konvertálása NULL értékre. Az alapértelmezett beállítás, hogy nem hajtja végre ezeket a konvertálásokat.

-m
Több tranzakciós mód használata a betöltés második fázisához; amikor adatokat tölt be az előkészítési táblából egy elosztott táblába.

Az -m használatával az SQL Server PDW párhuzamosan hajtja végre és véglegesíti a betöltést. Ez sokkal gyorsabban működik, mint az alapértelmezett betöltési mód, de nem tranzakcióbiztos.

Az -m nélkül az SQL Server PDW az egyes számítási csomópontok eloszlásai között, valamint a számítási csomópontok között egyidejűleg végzi el és véglegesíti a terhelést. Ez a módszer lassabb, mint a több tranzakciós mód, de tranzakcióbiztos.

A -m nem kötelező hozzáfűzéshez, újratöltéshez és upserthez.

-m szükséges a fastappendhez.

A -m nem használható replikált táblákkal.

-m csak a második betöltési fázisra vonatkozik. Ez nem vonatkozik az első betöltési fázisra; adatok betöltése az előkészítési táblába.

Több tranzakció kezelésére szolgáló módban nincs visszaállítás, ami azt jelenti, hogy a sikertelen vagy megszakított betöltésből való helyreállítást saját betöltési folyamatával kell kezelnie.

Azt javasoljuk, hogy csak üres táblába való betöltéskor használja a -m parancsot, hogy adatvesztés nélkül is helyreálljon. A terhelési hiba utáni helyreállításhoz: dobja el a céltáblát, oldja meg a terhelési problémát, hozza létre újra a céltáblát, és futtassa újra a betöltést.

-N
Ellenőrizze, hogy a célberendezés rendelkezik-e érvényes SQL Server PDW-tanúsítvánnyal egy megbízható szolgáltatótól. Ezzel biztosíthatja, hogy a támadók ne lopják el az adatokat, és ne küldjenek illetéktelen helyre. A tanúsítványt már telepíteni kell a berendezésre. A tanúsítvány telepítésének egyetlen támogatott módja, ha a berendezés rendszergazdája telepíti azt a Configuration Manager eszközzel. Kérdezze meg a berendezés rendszergazdáját, hogy nem biztos-e abban, hogy a berendezés rendelkezik-e megbízható tanúsítvánnyal.

-Se
Hagyja ki az üres fájlok betöltését. Ez az üres gzip-fájlok kibontását is kihagyja.

-l
A CU7.4 frissítéssel elérhető, a betölthető sorok maximális hosszát (bájtban) adja meg. Az érvényes értékek 32768 és 33554432 közötti egész számok. Csak akkor használja, ha nagy (32 KB-nál nagyobb) sorok betöltésére van szükség, mivel ez több memóriát foglal le az ügyfélen és a kiszolgálón.

Kódértékek visszaadása

0 (sikeres) vagy más egész számérték (hiba)

Parancsablakban vagy kötegfájlban a visszatérési kód megjelenítésére használható errorlevel . Például:

dwloader  
echo ReturnCode=%errorlevel%  
if not %errorlevel%==0 echo Fail  
if %errorlevel%==0 echo Success  

PowerShell használatakor használja $LastExitCode.

Permissions

A céltáblán terhelési és vonatkozó engedélyekre (INSERT, UPDATE, DELETE) van szükség. Create engedélyre van szükség (ideiglenes tábla létrehozásához) az átmeneti adatbázisban. Ha nem használ átmeneti adatbázist, a céladatbázison létrehozási engedélyre van szükség.

Általános megjegyzések

A dwloaderrel való betöltéskor az adattípus-átalakításokról további információt a dwloader adattípus-konvertálási szabályaiban talál.

Ha egy paraméter egy vagy több szóközt tartalmaz, a paramétert idézőjelek közé kell sorolni.

A loadert a telepített helyről kell futtatnia. A végrehajtható dwloader előre telepítve van a berendezéssel, és a C:\Program Files\Microsoft SQL Server Data Warehouse\DWLoader könyvtárban található.

A paraméterfájlban (-f beállításban) megadott paraméter felülbírálható parancssori paraméterként való megadásával.

Egyszerre több példányt is futtathat a Loaderben. A Loader-példányok maximális száma előre konfigurálva van, és nem módosítható.

A betöltött adatok több vagy kevesebb helyet igényelhetnek a berendezésen, mint a forráshelyen. A lemezhasználat becsléséhez adathalmazokkal végezhet tesztimportálást.

Bár a dwloader egy tranzakciós folyamat, és zökkenőmentesen visszaállít hiba esetén, a tömeges terhelés sikeres befejezése után nem állítható vissza. Az aktív dwloader-folyamat megszakításához írja be a CTRL+C billentyűkombinációt.

Korlátozások és korlátozások

Az egyidejűleg előforduló összes terhelés teljes méretének kisebbnek kell lennie, mint az adatbázis LOG_SIZE, és javasoljuk, hogy az egyidejű terhelések teljes mérete kisebb legyen, mint a LOG_SIZE 50%. Ennek a méretkorlátozásnak a elérése érdekében a nagy terheléseket több kötegre oszthatja. További információ a LOG_SIZE-ról lásd: CREATE DATABASE

Ha több fájlt tölt be egy betöltési paranccsal, a rendszer az összes elutasított sort ugyanarra az elutasító fájlra írja. Az elutasító fájl nem jeleníti meg, hogy melyik bemeneti fájl tartalmazza az egyes elutasított sorokat.

Az üres sztring nem használható elválasztóként. Ha egy üres sztringet használ sorelválasztóként, a betöltés sikertelenül végződik. Ha oszlopelválasztóként van használva, a terhelés figyelmen kívül hagyja a határolót, és továbbra is az alapértelmezett |értéket használja oszlopelválasztóként. Ha sztringelválasztóként használják, a rendszer figyelmen kívül hagyja az üres sztringet, és alkalmazza az alapértelmezett viselkedést.

Zárolási viselkedés

A dwloader zárolási viselkedése a load_mode_option függően változik.

  • append – A hozzáfűzés az ajánlott és a leggyakoribb lehetőség. Az adatokat egy előkészítő táblába fűzi be. A zárolást az alábbiakban részletesen ismertetjük.

  • gyors hozzáfűzés – A gyors hozzáfűzés közvetlenül a végleges táblába töltődik be egy ExclusiveUpdate táblazárolással, és ez az egyetlen mód, amely nem használ átmeneti táblázatot.

  • reload – Az újratöltés adatokat tölt be egy átmeneti táblába, és kizárólagos zárolást igényel mind az előkészítési táblán, mind az utolsó táblán. Az újratöltés nem ajánlott az egyidejű műveletekhez.

  • upsert – Az Upsert betölti az adatokat egy átmeneti táblába, majd egyesítési műveletet hajt végre az előkészítési táblától a végső tábláig. Az Upsert nem igényel kizárólagos zárolást a végleges táblán. A teljesítmény az upsert használatakor eltérő lehet. Tesztelje a viselkedést a környezetben.

Zárolási viselkedés

Hozzáfűzési mód zárolása

A hozzáfűzés több tranzakciós módban is futtatható (a -m argumentum használatával), de nem biztonságos a tranzakció. Ezért a hozzáfűzést tranzakciós műveletként kell használni (a -m argumentum használata nélkül). Sajnos az utolsó INSERT-SELECT művelet során a tranzakciós mód jelenleg körülbelül hatszor lassabb, mint a több tranzakciós mód.

A hozzáfűzési mód két fázisban tölti be az adatokat. Az első fázis egyszerre tölti be az adatokat a forrásfájlból egy átmeneti táblába (töredezettség fordulhat elő). A második fázis betölti az adatokat az előkészítési táblából az utolsó táblába. A második fázis egy INSERT INTO... SELECT WITH (TABLOCK) műveletet hajt végre. Az alábbi táblázat a záró tábla zárolási viselkedését, valamint a naplózási viselkedést mutatja be a hozzáfűzési mód használatakor:

Táblázat típusa Több tranzakciós
Mód (-m)
A tábla üres Egyidejűség támogatott Logging
Halommemória Igen Igen Igen Minimális
Halommemória Igen Nem Igen Minimális
Halommemória Nem Igen Nem Minimális
Halommemória Nem Nem Nem Minimális
Cl Igen Igen Nem Minimális
Cl Igen Nem Igen Full
Cl Nem Igen Nem Minimális
Cl Nem Nem Igen Full

A fenti táblázat azt mutatja, hogy a dwloader a hozzáfűzési módot használva tölt be adatokat egy halmozott vagy egy fürtözött index (CI) táblába, a többtranzakciós jelzővel vagy anélkül, illetve üres vagy nem üres táblába. Az ilyen terhelés-kombinációk zárolási és naplózási viselkedése megjelenik a táblázatban. Például a hozzáfűzési módban lévő (2.) fázis betöltése egy üres táblába és egy több tranzakciós mód alkalmazása nélküli fürtözött indexbe a PDW kizárólagos zárolást hoz létre az asztalon, és a naplózás minimális. Ez azt jelenti, hogy az ügyfél nem fogja tudni betölteni a (2.) fázist, és egyidejűleg lekérdezni egy üres táblába. Ha azonban ugyanazzal a konfigurációval tölt be egy nem üres táblába, a PDW nem ad ki kizárólagos zárolást a táblán, és lehetséges a párhuzamos feldolgozás. Sajnos a teljes naplózás megtörténik, ami lelassítja a folyamatot.

Példák

A. Egyszerű dwloader-példa

Az alábbi példa a Betöltő elindítását mutatja be, és csak a szükséges beállításokat jelölte ki. Az egyéb beállításokat a globális konfigurációs fájl, a loadparamfile.txt, tartalmazza.

Példa AZ SQL Server-hitelesítés használatára.

--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  

Ugyanez a windowsos hitelesítést használó példa.

--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élda egy forrásfájl és hibafájl argumentumainak használatára.

--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. Adatok betöltése AdventureWorks-táblába

Az alábbi példa egy batch szkript része, amely adatokat tölt be az AdventureWorksPDW2012-be. A teljes szkript megtekintéséhez nyissa meg az AdventureWorksPDW2012 telepítőcsomaggal rendelkező aw_create.bat fájlt.

Az alábbi szkriptrészlet dwloader használatával tölt be adatokat a DimAccount és a DimCurrency táblákba. Ez a szkript Ethernet-címet használ. Ha InfiniBand-et használna, a szerver <appliance_name>-SQLCTL01 lenne.

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%  

A következő a DimAccount tábla DDL-je.

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);  

Az alábbiakban egy példa látható a DimAccount táblába betöltendő adatokat tartalmazó DimAccount.txtadatfájlra.

--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. Adatok betöltése a parancssorból

A B példa szkriptje lecserélhető a parancssor összes paraméterének beírásával, ahogyan az az alábbi példában is látható.

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>  

A parancssori paraméterek leírása:

  • C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe a dwloader.exetelepített helye.

  • Az -S-t a Vezérlő csomópont IP-címe követi.

  • -E az üres sztringek null értékű betöltését határozza meg.

  • -M reload a céltábla csonkolását írja elő a forrásadatok beszúrása előtt.

  • -e UTF16 azt jelzi, hogy a forrásfájl a little endian karakterkódolási típust használja.

  • Az -i .\DimAccount.txt az adatokat egy DimAccount.txt nevű fájlban adja meg, amely az aktuális könyvtárban található.

  • -T AdventureWorksPDW2012.dbo.DimAccount a tábla 3 részes nevét adja meg az adatok fogadásához.

  • -R DimAccount.bad megadja, hogy a betöltés sikertelen sorok egy DimAccount.bad nevű fájlba kerülnek írásra.

  • -t "|" azt jelzi, hogy a bemeneti fájl mezői (DimAccount.txt) a cső karakterrel vannak elválasztva.

  • -r \r\n a DimAccount.txt minden sorát egy kocsivisszafejtéssel és egy sorbetöltési karakterrel határozza meg.

  • -U <login_name> -P <jelszó> megadja a betöltés végrehajtásához engedéllyel rendelkező bejelentkezés bejelentkezését és jelszavát.