Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
dwloader is een pdw-opdrachtregelprogramma (Parallel Data Warehouse) waarmee tabelrijen bulksgewijs in een bestaande tabel worden geladen. Wanneer u rijen laadt, kunt u alle rijen toevoegen aan het einde van de tabel (toevoegmodus of fastappend modus), nieuwe rijen toevoegen en bestaande rijen bijwerken (upsert-modus), of alle bestaande rijen verwijderen voordat ze worden geladen en vervolgens alle rijen invoegen in een lege tabel (modus voor opnieuw laden).
Proces voor het laden van gegevens
Bereid de brongegevens voor.
Gebruik uw eigen ETL-proces om de brongegevens te maken die u wilt laden. De brongegevens moeten worden opgemaakt zodat deze overeenkomen met het schema van de doeltabel. Sla de brongegevens op in een of meer tekstbestanden en kopieer de tekstbestanden naar dezelfde map op de laadserver. Zie Een laadserver verkrijgen en configureren voor informatie over de laadserver
Bereid de laadopties voor.
Bepaal welke laadopties u gaat gebruiken. Sla de laadopties op in een configuratiebestand. Kopieer het configuratiebestand naar een lokale locatie op de laadserver. De configuratieopties voor dwloaders worden beschreven in dit onderwerp.
Bereid de opties voor laadfouten voor.
Bepaal hoe u wilt dat dwloader rijen verwerkt die niet worden geladen. Als dwloader de gegevens laadt, worden ze eerst in een faseringstabel geplaatst en vervolgens overgedragen naar de doeltabel. Terwijl het laadprogramma gegevens in de faseringstabel laadt, wordt het aantal rijen bijgehouden dat niet kan worden geladen. Rijen die niet correct zijn opgemaakt, worden bijvoorbeeld niet geladen. Mislukte rijen worden gekopieerd naar een afwijzingsbestand. Standaard wordt de lading afgebroken na de eerste afwijzing, tenzij u een andere afwijsdrempel instelt.
Installeer dwloader.
Installeer dwloader op de laadserver als deze nog niet is geïnstalleerd.
Voer dwloader uit.
Meld u aan bij de laadserver en voer het uitvoerbare dwloader.exe uit met de juiste opdrachtregelopties.
Controleer de resultaten.
U kunt het bestand met mislukte rijen controleren (opgegeven met -R) om te zien of er rijen niet kunnen worden geladen. Als dit bestand leeg is, zijn alle rijen succesvol geladen. dwloader is transactioneel, dus als een stap mislukt (behalve geweigerde rijen), worden alle stappen teruggedraaid naar de oorspronkelijke status.
Syntaxis
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
Geeft eenvoudige Help-informatie weer over het gebruik van het laadprogramma. Help wordt alleen weergegeven als er geen andere opdrachtregelparameters zijn opgegeven.
-Ulogin_name
Een geldige SQL Server-inlog met de juiste machtigingen om het laden uit te voeren.
-P-wachtwoord<>
Het wachtwoord voor een SQL Server-verificatie login_name.
-W
Gebruik Windows-verificatie. (Geen login_name of wachtwoord vereist.)
-fparameter_file_name
Gebruik een parameterbestand , parameter_file_name, in plaats van opdrachtregelparameters.
parameter_file_name kan elke opdrachtregelparameter bevatten, behalve user_name en wachtwoord. Als een parameter is opgegeven op de opdrachtregel en in het parameterbestand, overschrijft de opdrachtregel de bestandsparameter.
Het parameterbestand bevat één parameter, zonder het - voorvoegsel, per regel.
Examples:
rt=percentage
rv=25
-Starget_appliance
Hiermee geeft u het SQL Server PDW-apparaat op dat de geladen gegevens ontvangt.
Voor Infiniband-verbindingenwordt target_appliance opgegeven als <apparaatnaam-SQLCTL01>. Zie InfiniBand-netwerkadapters configureren om deze benoemde verbinding te configureren.
Voor Ethernet-verbindingen is target_appliance het IP-adres voor het beheerknooppuntcluster.
Als u dit weglaat, wordt dwloader standaard ingesteld op de waarde die is opgegeven toen dwloader werd geïnstalleerd.
-Ttarget_database_name.[schema]. Table_name
De driedelige naam voor de doeltabel.
-Isource_data_location
De locatie van een of meer bronbestanden die moeten worden geladen. Elk bronbestand moet een tekstbestand of een tekstbestand zijn dat is gecomprimeerd met gzip. Er kan slechts één bronbestand worden gecomprimeerd in elk gzip-bestand.
Een bronbestand opmaken:
Het bronbestand moet worden opgemaakt in overeenstemming met de laadopties.
Elke regel in een bronbestand bevat de gegevens voor één tabelrij. De brongegevens moeten overeenkomen met het schema van de doeltabel. Kolomvolgorde en gegevenstypen moeten ook overeenkomen. Elk veld in de rij vertegenwoordigt een kolom in de doeltabel.
De velden zijn standaard variabele lengte en gescheiden door een scheidingsteken. Als u het type scheidingsteken wilt opgeven, gebruikt u de <variable_length_column_options> opdrachtregelopties. Als u velden met een vaste lengte wilt opgeven, gebruikt u de <fixed_width_column_options> opdrachtregelopties.
De locatie van de brongegevens opgeven:
De locatie van de brongegevens kan een netwerkpad of een lokaal pad naar een map op de laadserver zijn.
Als u alle bestanden in een map wilt opgeven, voert u het mappad in, gevolgd door het jokerteken *. Het laadprogramma laadt geen bestanden uit submappen die zich op de locatie van de brongegevens bevinden. De laadprogrammafouten wanneer een map in een gzip-bestand bestaat.
Als u een aantal bestanden in een map wilt opgeven, gebruikt u een combinatie van tekens en het jokerteken *.
Meerdere bestanden laden met één opdracht:
Alle bestanden moeten zich in dezelfde map bevinden.
De bestanden moeten alle tekstbestanden, alle gzip-bestanden of een combinatie van zowel tekst- als gzip-bestanden zijn.
Geen van de bestanden kan headergegevens bevatten.
Alle bestanden moeten hetzelfde tekencoderingstype gebruiken. Zie de optie -e.
Alle bestanden moeten in dezelfde tabel worden geladen.
Alle bestanden worden samengevoegd en geladen alsof ze één bestand zijn, en de geweigerde rijen gaan naar één weigeringsbestand.
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
Als er laadfouten zijn, slaat het laadprogramma de rij op die niet kon worden geladen en de foutbeschrijving van de foutinformatie in een bestand met de naam load_failure_file_name. Als dit bestand al bestaat, overschrijft dwloader het bestaande bestand.
load_failure_file_name wordt gemaakt wanneer de eerste fout optreedt. Als alle rijen succesvol zijn geladen, wordt load_failure_file_name niet aangemaakt.
-fhnumber_header_rows
Het aantal regels (rijen) dat aan het begin van source_data_file_name moet worden genegeerd. De standaardwaarde is 0.
<opties_voor_kolommen_met_variabele_lengte>
De opties voor een source_data_file_name met tekengescheiden kolommen van variabele lengte. Standaard bevat source_data_file_name ASCII-tekens in kolommen met een variabele lengte.
Voor ASCII-bestanden worden NULL's vertegenwoordigd door scheidingstekens opeenvolgend te plaatsen. In een bestand met pijpscheidingstekens ("|") wordt bijvoorbeeld een NULL-waarde aangegeven door "||". In een bestand met door komma's gescheiden waarden wordt een NULL aangegeven door ',,'. Daarnaast moet de optie -E (---emptyStringAsNull) worden opgegeven. Zie hieronder voor meer informatie over -E.
-echaracter_encoding
Hiermee geeft u een tekencoderingstype op voor de gegevens die uit het gegevensbestand moeten worden geladen. Opties zijn ASCII (standaard), UTF8, UTF16 of UTF16BE, waarbij UTF16 weinig endian is en UTF16BE big endian is. Deze opties zijn niet hoofdlettergevoelig.
-tveldlimiet
Het scheidingsteken voor elk veld (kolom) in de rij. Het veldscheidingsteken is een of meer van deze ASCII-escapetekens of ASCII-hexwaarden.
| Naam | Escape-teken | Hex-teken |
|---|---|---|
| Tab | \t | 0x09 |
| Regelterugloop (CR) | \r | 0x0d |
| Lijnfeed (LF) | \n | 0x0a |
| CRLF | \r\n | 0x0d0x0a |
| Door komma's gescheiden | ',' | 0x2c |
| Dubbele aanhalingstekens | \" | 0x22 |
| Enkele aanhalingsteken | \' | 0x27 |
Als u het pipeteken op de opdrachtregel wilt opgeven, plaatst u het tussen dubbele aanhalingstekens, "|". Dit voorkomt onjuiste interpretatie door de opdrachtregelparser. Andere tekens staan tussen enkele aanhalingstekens.
Examples:
-t "|"
-t ' '
-t 0x0a
-t \t
-t ~|~'
-rrow_delimiter
Het scheidingsteken voor elke rij van het brongegevensbestand. Het scheidingsteken voor rijen is een of meer ASCII-waarden.
Als u een regelterugloop (CR), regelfeed (LF) of tabteken wilt opgeven als scheidingsteken, kunt u de escapetekens (\r, \n, \t) of de hexwaarden (0x, 0d, 09) gebruiken. Als u andere speciale tekens als scheidingstekens wilt opgeven, gebruikt u de hexwaarde.
Voorbeelden van CR+LF:
-r \r\n
-r 0x0d0x0a
Voorbeelden van CR:
-r \r
-r 0x0d
Voorbeelden van LF:
-r \n
-r 0x0a
Een LF is vereist voor Unix. Er is een CR vereist voor Windows.
-sstring_delimiter
Het scheidingsteken voor het veld van het gegevenstype tekenreeks in een invoerbestand met tekstscheidingstekens. Het tekenreeksscheidingsteken is een of meer ASCII-waarden. Het kan worden opgegeven als een teken (bijvoorbeeld -s *) of als een hexwaarde (bijvoorbeeld -s 0x22 voor een dubbele aanhalingsteken).
Examples:
-S*
-s 0x22
< fixed_width_column_options>
De opties voor een brongegevensbestand met kolommen met een vaste lengte. Standaard bevat source_data_file_name ASCII-tekens in kolommen met een variabele lengte.
Kolommen met vaste breedte worden niet ondersteund wanneer -e UTF8 is.
-wfixed_width_config_file
Pad en naam van het configuratiebestand dat het aantal tekens in elke kolom aangeeft. Elk veld moet worden opgegeven.
Dit bestand moet zich op de laadserver bevinden. Het pad kan een UNC, relatief of absoluut pad zijn. Elke regel in fixed_width_config_file bevat de naam van één kolom en het aantal tekens voor die kolom. Er is als volgt één regel per kolom en de volgorde in het bestand moet overeenkomen met de volgorde in de doeltabel:
column_name=aantal_tekens
column_name=Aantal_tekens
Voorbeeld van configuratiebestand met vaste breedte:
SalesCode=3
SalesID=10
Voorbeeldregels in source_data_file_name:
230Shirts0056
320Handdoeken1356
In het vorige voorbeeld heeft de eerste geladen rij SalesCode='230' en SalesID='Shirts0056'. De tweede geladen rij heeft SalesCode='320' en SaleID='Towels1356'.
Zie De regels voor conversie van gegevenstypen voor dwloader voor hoe om te gaan met voorloop- en volgspaties of gegevenstypeconversies in de modus met vaste breedte.
-echaracter_encoding
Hiermee geeft u een tekencoderingstype op voor de gegevens die uit het gegevensbestand moeten worden geladen. Opties zijn ASCII (standaard), UTF8, UTF16 of UTF16BE, waarbij UTF16 weinig endian is en UTF16BE big endian is. Deze opties zijn niet hoofdlettergevoelig.
Kolommen met vaste breedte worden niet ondersteund wanneer -e UTF8 is.
-rrow_delimiter
Het scheidingsteken voor elke rij van het brongegevensbestand. Het scheidingsteken voor rijen is een of meer ASCII-waarden.
Als u een regelterugloop (CR), regelfeed (LF) of tabteken wilt opgeven als scheidingsteken, kunt u de escapetekens (\r, \n, \t) of de hexwaarden (0x, 0d, 09) gebruiken. Als u andere speciale tekens als scheidingstekens wilt opgeven, gebruikt u de hexwaarde.
Voorbeelden van CR+LF:
-r \r\n
-r 0x0d0x0a
Voorbeelden van CR:
-r \r
-r 0x0d
Voorbeelden van LF:
-r \n
-r 0x0a
Een LF is vereist voor Unix. Er is een CR vereist voor Windows.
-D { ymd | ydm | mdy | myd | dmy | dym | custom_date_format }
Hiermee geeft u de volgorde van maand (m), dag (d) en jaar (y) voor alle datum/tijd-velden in het invoerbestand. De standaardvolgorde is ymd. Als u meerdere volgordenotaties voor hetzelfde bronbestand wilt opgeven, gebruikt u de optie -dt.
jmd | dmj
ydm en dmy staan dezelfde invoerindelingen toe. Beide maken het mogelijk dat het jaar aan het begin of het einde van de datum staat. Voor datumnotaties ydm en dmy kunt u bijvoorbeeld 2013-02-03 of 02-03-2013 in het invoerbestand hebben.
ydm
U kunt invoer die is opgemaakt als ydm alleen laden in kolommen van het gegevenstype datetime en smalldatetime. U kunt ydm-waarden niet laden in een kolom van het gegevenstype datetime2, date of datetimeoffset.
mdy
mdy staat <maand><ruimte dag><><komma><jaar>.
Voorbeelden van mdy-invoergegevens voor 1 januari 1975:
1 januari 1975
01 januari 75
Jan/1/75
01011975
myd
Voorbeelden van invoerbestanden voor 04 maart 2010: 03-2010-04, 3-2010/4
dym
Voorbeelden van invoerbestanden voor 04 maart 2010: 04-2010-03, 4/2010/3
aangepast_datumformaat
custom_date_format is een aangepaste datumnotatie (bijvoorbeeld MM/dd/jjjj) die alleen is opgenomen voor achterwaartse compatibiliteit. dwloader dwingt de aangepaste datumnotatie niet af. In plaats daarvan, wanneer u een aangepaste datumnotatie opgeeft, wordt deze door dwloader omgezet naar de bijbehorende instelling van ymd, ydm, mdy, myd, dym of dmy.
Als u bijvoorbeeld -D MM/dd/jjjj opgeeft, verwacht dwloader dat alle datuminvoer eerst moet worden besteld met maand, vervolgens dag en vervolgens jaar (mdy). Het dwingt niet af dat maanden uit 2 tekens, dagen uit 2 cijfers, en jaren uit 4 cijfers bestaan, zoals gespecificeerd door de aangepaste datumnotatie. Hier volgen enkele voorbeelden van manieren waarop datums kunnen worden opgemaakt in het invoerbestand wanneer de datumnotatie is -D MM/dd/jjjj: 01/02/2013, jan.02.2013, 1-2-2013
Zie Gegevenstypeconversieregels voor dwloader voor uitgebreidere opmaakinformatie.
-dtdatetime_format_file
Elke datum/tijd-indeling wordt opgegeven in een bestand met de naam datetime_format_file. In tegenstelling tot de opdrachtregelparameters mogen bestandsparameters met spaties niet tussen dubbele aanhalingstekens worden geplaatst. U kunt de datum/tijd-indeling niet wijzigen terwijl u gegevens laadt. Het brongegevensbestand en de bijbehorende kolom in de doeltabel moeten dezelfde indeling hebben.
Elke regel bevat de naam van een kolom in de doeltabel en de datum/tijd-indeling.
Examples:
LastReceiptDate=ymd
ModifiedDate=dym
-dstaging_database_name
De databasenaam die de faseringstabel bevat. De standaardwaarde is de database die is opgegeven met de optie -T. Dit is de database voor de doeltabel. Zie De faseringsdatabase maken voor meer informatie over het gebruik van een faseringsdatabase.
-Mload_mode_option
Hiermee geeft u op of u gegevens wilt toevoegen, upsert of opnieuw wilt laden. De standaardmodus wordt toegevoegd.
append
Het laadprogramma voegt rijen toe aan het einde van bestaande rijen in de doeltabel.
fastappend
Met het laadprogramma worden rijen rechtstreeks ingevoegd, zonder een tijdelijke tabel te gebruiken, tot het einde van bestaande rijen in de doeltabel. voor fastappend is de optie voor meerdere transacties (-m) vereist. Een faseringsdatabase kan niet worden opgegeven wanneer u fastappend gebruikt. Er is geen rollback bij fastappend, wat betekent dat het herstel van een mislukte of afgebroken laadactie moet worden afgehandeld door uw eigen laadproces.
upsert -Kmerge_column [ ,... n ]
De Loader maakt gebruik van de SQL Server Merge-instructie om bestaande rijen bij te werken en nieuwe rijen in te voegen.
Met de optie -K geeft u de kolom of kolommen op waarop de samenvoegbewerking moet worden gebaseerd. Deze kolommen vormen een samenvoegsleutel, die een unieke rij moet vertegenwoordigen. Als de samenvoegsleutel bestaat in de doeltabel, wordt de rij bijgewerkt. Als de samenvoegsleutel niet bestaat in de doeltabel, wordt de rij toegevoegd.
Voor hash-gedistribueerde tabellen moet de samenvoegsleutel de distributiekolom zijn of opnemen.
Voor gerepliceerde tabellen is de samenvoegsleutel de combinatie van een of meer kolommen. Deze kolommen worden opgegeven op basis van de behoeften van de toepassing.
Meerdere kolommen moeten door komma's worden gescheiden zonder spaties, of door komma's gescheiden worden met spaties en tussen enkele aanhalingstekens staan.
Als twee rijen in de brontabel overeenkomende samenvoegsleutelwaarden hebben, moeten de respectieve rijen identiek zijn.
Herladen
De loader verwijdert de doeltabel voordat de brongegevens worden ingevoegd.
-bbatchsize
Alleen aanbevolen voor gebruik door Microsoft Support, de parameter batchsize is de batchgrootte voor de SQL Server-bulkkopie die DMS uitvoert in SQL Server-exemplaren op de rekenknooppunten. Wanneer batchsize is opgegeven, overschrijft SQL Server PDW de batchbelastingsgrootte die dynamisch wordt berekend voor elke belasting.
Vanaf SQL Server 2012 PDW berekent het besturingsknooppunt standaard een batchgrootte voor elke belasting. Deze automatische berekening is gebaseerd op verschillende parameters, zoals geheugengrootte, doeltabeltype, doeltabelschema, laadtype, bestandsgrootte en resourceklasse van de gebruiker.
Als de laadmodus bijvoorbeeld FASTAPPEND is en de tabel een geclusterde columnstore-index heeft, probeert SQL Server PDW standaard een batchgrootte van 1.048.576 te gebruiken, zodat rijgroepen gesloten worden en rechtstreeks in de columnstore worden geladen zonder door de Delta Store te gaan. Als geheugen de batchgrootte van 1.048.576 niet toestaat, kiest dwloader een kleinere batchgrootte.
Als het laadtype FASTAPPEND is, is de batchsize van toepassing op het laden van gegevens in de tabel, anders is batchsize van toepassing op het laden van gegevens in de faseringstabel.
<afwijsopties>
Hiermee geeft u opties voor het bepalen van het aantal laadfouten dat door het laadprogramma wordt toegestaan. Als de laadfouten de drempelwaarde overschrijden, stopt het laadprogramma en worden er geen rijen doorgevoerd.
-rt { waarde | percentage }
Hiermee geeft u op of de -reject_value in de optie -rvreject_value een letterlijk aantal rijen (waarde) of een foutpercentage (percentage) is. De standaardwaarde is waarde.
De percentageoptie is een realtime berekening die plaatsvindt met intervallen volgens de optie -rs.
Als het laadprogramma bijvoorbeeld probeert 100 rijen te laden en 25 te mislukken en 75 slaagt, is de foutfrequentie 25%.
-rvreject_value
Hiermee geeft u het aantal of percentage afgekeurde rijen op dat kan worden toegestaan voordat het laden wordt gestopt. De optie -rt bepaalt of reject_value verwijst naar het aantal rijen of het percentage rijen.
De standaard reject_value is 0.
Bij gebruik met -rt waarde stopt het laadprogramma de belasting wanneer het aantal geweigerde rijen groter is dan reject_value.
Bij gebruik met -rt percentage berekent het laadprogramma het percentage met intervallen (-rs optie). Daarom kan het percentage mislukte rijen groter zijn dan reject_value.
-rsreject_sample_size
Wordt gebruikt met de -rt percentage optie om de incrementele percentagecontroles op te geven. Als reject_sample_size bijvoorbeeld 1000 is, berekent het laadprogramma het percentage mislukte rijen nadat is geprobeerd 1000 rijen te laden. Het berekent het percentage mislukte rijen opnieuw nadat wordt geprobeerd om elke extra 1000 rijen te laden.
-c
Verwijdert witruimtetekens van de linker- en rechterzijde van Char-, NChar-, Varchar- en NVarchar-velden. Converteert elk veld dat alleen spatietekens bevat naar de lege tekenreeks.
Examples:
' ' wordt afgekapt tot ''
' abc ' wordt ingekort tot 'abc'
Wanneer -c wordt gebruikt met -E, vindt de -E bewerking eerst plaats. Velden die alleen spatietekens bevatten, worden geconverteerd naar de lege tekenreeks en niet naar NULL.
-E
Lege tekenreeksen converteren naar NULL. De standaardinstelling is om deze conversies niet uit te voeren.
-m
Gebruik de modus voor meerdere transacties voor de tweede fase van het laden; bij het laden van gegevens uit de faseringstabel in een gedistribueerde tabel.
Met -m voert SQL Server PDW parallel laadacties uit en voltooit ze. Dit presteert veel sneller dan de standaard laadmodus, maar is niet transactieveilig.
Zonder -m voert SQL Server PDW de laadtaken serieel uit en voltooit ze over de distributies binnen elk rekenknooppunt, terwijl hij ze gelijktijdig uitvoert over de rekenknooppunten. Deze methode is langzamer dan de modus voor meerdere transacties, maar is transactieveilig.
-m is optioneel voor toevoegen, opnieuw laden en upsert.
-m is vereist voor fastappend.
-m kan niet worden gebruikt met gerepliceerde tabellen.
-m is alleen van toepassing op de tweede laadfase. Deze is niet van toepassing op de eerste laadfase, het laden van gegevens in de stagingtabel.
Er is geen rollback bij gebruik van de multi-transactionmodus, wat betekent dat herstel na een mislukte of afgebroken lading door uw eigen laadproces moet worden afgehandeld.
We raden u aan -m alleen te gebruiken bij het laden in een lege tabel, zodat u zonder gegevensverlies kunt herstellen. Als u wilt herstellen na een laadprobleem, verwijdert u de doeltabel, lost u het laadprobleem op, maakt u de doeltabel opnieuw aan en start u het laden opnieuw.
-N
Controleer of het doelapparaat een geldig SQL Server PDW-certificaat van een vertrouwde instantie heeft. Gebruik dit om ervoor te zorgen dat uw gegevens niet worden gekaapt door een aanvaller en worden verzonden naar een niet-geautoriseerde locatie. Het certificaat moet al op het apparaat zijn geïnstalleerd. De enige ondersteunde manier om het certificaat te installeren, is dat de beheerder van het apparaat het kan installeren met behulp van het Configuration Manager-hulpprogramma. Vraag de beheerder van het apparaat of u niet zeker weet of op het apparaat een vertrouwd certificaat is geïnstalleerd.
-Se
Sla het laden van lege bestanden over. Ook het uitpakken van lege gzip-bestanden wordt overgeslagen.
-l
Beschikbaar met de CU7.4-update, specificeert de maximale rijlengte (in bytes) die kan worden geladen. Geldige waarden zijn gehele getallen tussen 32768 en 33554432. Gebruik alleen wanneer dat nodig is om grote rijen (groter dan 32 kB) te laden, omdat hiermee meer geheugen wordt toegewezen aan de client en server.
Retourcodewaarden
0 (geslaagd) of andere gehele waarde (fout)
Gebruik errorlevel in een opdrachtvenster of batchbestand om de retourcode weer te geven. Voorbeeld:
dwloader
echo ReturnCode=%errorlevel%
if not %errorlevel%==0 echo Fail
if %errorlevel%==0 echo Success
Wanneer u PowerShell gebruikt, gebruikt u $LastExitCode.
Permissions
Vereist LOAD-machtiging en toepasselijke machtigingen (INSERT, UPDATE, DELETE) op de doeltabel. Vereist een CREATE-machtiging (voor het maken van een tijdelijke tabel) in de faseringsdatabase. Als er geen faseringsdatabase wordt gebruikt, is create-machtiging vereist voor de doeldatabase.
Algemene opmerkingen
Zie Gegevenstypeconversieregels voor dwloaders voor informatie over conversies van gegevenstypen bij het laden met een dwloader.
Als een parameter een of meer spaties bevat, plaatst u de parameter tussen dubbele aanhalingstekens.
U moet het laadprogramma uitvoeren vanaf de geïnstalleerde locatie. Het uitvoerbare dwloader is vooraf geïnstalleerd met het apparaat en bevindt zich in de map C:\Program Files\Microsoft SQL Server Data Warehouse\DWLoader.
U kunt een parameter die is opgegeven in het parameterbestand (-f optie) overschrijven door deze op te geven als opdrachtregelparameter.
U kunt meerdere exemplaren van het laadprogramma tegelijk uitvoeren. Het maximum aantal Loader-exemplaren is vooraf geconfigureerd en kan niet worden gewijzigd.
Geladen gegevens vereisen mogelijk meer of minder ruimte op het apparaat dan op de bronlocatie. U kunt testimporten uitvoeren met subsets van gegevens om het schijfverbruik te schatten.
Hoewel dwloader een transactieproces is en probleemloos terugdraait bij een fout, kan het niet worden teruggedraaid zodra de bulksgewijs laden is voltooid. Als u een actief dwloaderproces wilt annuleren, typt u Ctrl+C.
Beperkingen en beperkingen
De totale grootte van alle ladingen die gelijktijdig plaatsvinden, moet kleiner zijn dan LOG_SIZE voor de database. We raden aan dat de totale grootte van alle gelijktijdige ladingen kleiner moet zijn dan 50% van de LOG_SIZE. Om deze groottebeperking te bereiken, kunt u grote belastingen splitsen in meerdere batches. Zie CREATE DATABASE voor meer informatie over LOG_SIZE
Bij het laden van meerdere bestanden met één laadopdracht worden alle geweigerde rijen naar hetzelfde weigeringsbestand geschreven. In het weigeringsbestand wordt niet weergegeven welk invoerbestand elke geweigerde rij bevat.
De lege string mag niet worden gebruikt als scheidingsteken. Wanneer een lege tekenreeks wordt gebruikt als scheidingsteken voor rijen, leidt dit tot een mislukking van het laadproces. Wanneer het als kolomscheidingsteken wordt gebruikt, negeert de lading het scheidingsteken en blijft het de standaard "|" als kolomscheidingsteken gebruiken. Wanneer deze wordt gebruikt als tekenreeksscheidingsteken, wordt de lege tekenreeks genegeerd en wordt het standaardgedrag toegepast.
Vergrendelingsgedrag
Gedrag voor het vergrendelen van dwloader varieert afhankelijk van de load_mode_option.
toevoegen - Toevoegen is de aanbevolen en de meest voorkomende optie. Gegevens toevoegen aan een faseringstabel. Hieronder wordt de vergrendeling beschreven.
snel toevoegen - snel toevoegen wordt rechtstreeks in de uiteindelijke tabel geladen met een Exclusive Update-tabelvergrendeling en is de enige modus die geen faseringstabel gebruikt.
opnieuw laden : laadt gegevens opnieuw in een faseringstabel en vereist een exclusieve vergrendeling op zowel de faseringstabel als de uiteindelijke tabel. Opnieuw laden wordt niet aanbevolen voor gelijktijdige bewerkingen.
upsert - Upsert laadt gegevens in een faseringstabel en voert vervolgens een samenvoegbewerking uit van de faseringstabel naar de uiteindelijke tabel. Upsert vereist geen exclusieve vergrendelingen op de uiteindelijke tabel. De prestaties kunnen variëren wanneer u upsert gebruikt. Test het gedrag in uw omgeving.
Vergrendelingsgedrag
Vergrendeling van toevoegingsmodus
Toevoegen kan worden uitgevoerd in de multi-transactionele modus (met behulp van het argument -m), maar het is niet transactieveilig. Daarom moet ‘append’ gebruikt worden als een transactionele bewerking (zonder het gebruik van het -m argument). Helaas is de transactionele modus tijdens de laatste INSERT-SELECT bewerking momenteel ongeveer zes keer langzamer dan de multi-transactionele modus.
In de toevoegmodus worden gegevens in twee fasen geladen. Fase één laadt gegevens uit het bronbestand gelijktijdig in een faseringstabel (fragmentatie kan optreden). Fase 2 laadt gegevens uit de faseringstabel naar de laatste tabel. De tweede fase voert een INSERT INTO...SELECT WITH (TABLOCK) bewerking uit. In de volgende tabel ziet u het vergrendelingsgedrag in de uiteindelijke tabel en het gedrag van logboekregistratie bij het gebruik van de toevoegmodus:
| Tabeltype | Meerdere transacties Modus (-m) |
Tabel is leeg | Gelijktijdigheid ondersteund | Logging |
|---|---|---|---|---|
| Stapel | Yes | Yes | Yes | Minimaal |
| Stapel | Yes | Nee. | Yes | Minimaal |
| Stapel | Nee. | Yes | Nee. | Minimaal |
| Stapel | Nee. | Nee. | Nee. | Minimaal |
| Cl | Yes | Yes | Nee. | Minimaal |
| Cl | Yes | Nee. | Yes | Volledig |
| Cl | Nee. | Yes | Nee. | Minimaal |
| Cl | Nee. | Nee. | Yes | Volledig |
In de bovenstaande tabel ziet u dwloader die de toevoegmodus gebruikt om in een heap- of een geclusterde indextabel (CI) te laden, met of zonder de multi-transactionele vlag, en laden in een lege of een niet-lege tabel. Het vergrendelings- en logboekregistratiegedrag van elke combinatie van belasting wordt weergegeven in de tabel. Als u bijvoorbeeld de fase (2e) laadt met de toevoegmodus in een geclusterde index zonder de multi-transactionele modus en in een lege tabel, wordt met PDW een exclusieve vergrendeling voor de tabel gemaakt en is logboekregistratie minimaal. Dit betekent dat een klant de fase (2e) niet kan laden en gelijktijdig een query kan uitvoeren in een lege tabel. Bij het laden met dezelfde configuratie in een niet-lege tabel geeft PDW echter geen exclusieve vergrendeling op de tabel uit en is gelijktijdigheid mogelijk. Helaas treedt volledige logboekregistratie op, waardoor het proces wordt vertraagd.
Voorbeelden
Eén. Voorbeeld van eenvoudige dwloader
In het volgende voorbeeld ziet u de start van het laadprogramma met alleen de vereiste opties geselecteerd. Andere opties zijn afkomstig uit het globale configuratiebestand, loadparamfile.txt.
Voorbeeld van SQL Server-verificatie.
--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
Hetzelfde voorbeeld met Windows Verificatie.
--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
Voorbeeld van argumenten voor een bronbestand en een foutenbestand.
--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. Gegevens laden in een AdventureWorks-tabel
Het volgende voorbeeld maakt deel uit van een batchscript waarmee gegevens in AdventureWorksPDW2012 worden geladen. Als u het volledige script wilt bekijken, opent u het aw_create.bat-bestand dat wordt geleverd met het AdventureWorksPDW2012-installatiepakket .
In het volgende scriptfragment wordt dwloader gebruikt om gegevens te laden in de tabellen DimAccount en DimCurrency. Dit script maakt gebruik van een Ethernet-adres. Als het gebruik zou maken van InfiniBand, zou de server <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%
Hier volgt de DDL voor de DimAccount-tabel.
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);
Hier volgt een voorbeeld van het gegevensbestand, DimAccount.txt, dat gegevens bevat die in de tabel DimAccount moeten worden geladen.
--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. Gegevens laden vanaf de opdrachtregel
Het script in voorbeeld B kan worden vervangen door alle parameters op de opdrachtregel in te voeren, zoals wordt weergegeven in het volgende voorbeeld.
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>
Beschrijving van de opdrachtregelparameters:
C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe is de geïnstalleerde locatie van dwloader.exe.
-S wordt gevolgd door het IP-adres van het besturingsknooppunt.
-E geeft aan lege tekenreeksen te laden als NULL.
-M reload geeft aan dat de doeltabel moet worden getrunceerd voordat de brongegevens worden ingevoegd.
-e UTF16 geeft aan dat het bronbestand gebruikmaakt van het kleine endiane tekencoderingstype.
-i.\DimAccount.txt geeft aan dat de gegevens zich in een bestand bevinden met de naam DimAccount.txt dat in de huidige map bestaat.
-T AdventureWorksPDW2012.dbo.DimAccount geeft de driedelige naam van de tabel op om de gegevens te ontvangen.
-R DimAccount.bad geeft de rijen op die niet kunnen worden geladen, worden geschreven naar een bestand met de naam DimAccount.bad.
-t "|" geeft aan dat de velden in het invoerbestand, DimAccount.txt, gescheiden zijn door het pipe-teken.
-r \r\n geeft aan dat elke rij in DimAccount.txt eindigt met een regelterugloop en een regelinvoerteken.
-U <login_name> -P <wachtwoord> specificeert de aanmeldgegevens en het wachtwoord voor de login die de rechten heeft om de laadoperatie uit te voeren.