Bagikan melalui


dwloader Command Line Loader untuk Gudang Data Paralel

dwloader adalah alat baris perintah Parallel Data Warehouse (PDW) yang memuat baris tabel secara massal ke dalam tabel yang ada. Saat memuat baris, Anda dapat menambahkan semua baris ke akhir tabel (mode penambahan atau mode fastappend), menambahkan baris baru dan memperbarui baris yang ada (mode upsert), atau menghapus semua baris yang ada sebelum memuat lalu menyisipkan semua baris ke dalam tabel kosong (mode muat ulang).

Proses untuk memuat data

  1. Siapkan data sumber.

    Gunakan proses ETL Anda sendiri untuk membuat data sumber yang ingin Anda muat. Data sumber harus diformat agar sesuai dengan skema tabel tujuan. Simpan data sumber ke dalam satu atau beberapa file teks dan salin file teks ke direktori yang sama di server Pemuatan Anda. Untuk informasi tentang Server pemuatan, lihat Memperoleh dan Mengonfigurasi Server Pemuatan

  2. Siapkan opsi pemuatan.

    Tentukan opsi pemuatan mana yang akan Anda gunakan. Simpan opsi beban dalam file konfigurasi. Salin file konfigurasi ke lokasi lokal di server Pemuatan Anda. Opsi konfigurasi dwloader dijelaskan dalam topik ini.

  3. Siapkan opsi kegagalan pemuatan.

    Tentukan bagaimana Anda ingin dwloader menangani baris yang gagal dimuat. Untuk melakukan pemuatan, dwloader terlebih dahulu memuat data ke dalam tabel penahapan lalu mentransfer data ke tabel tujuan. Saat Loader memuat data ke dalam tabel penahapan, Loader melacak jumlah baris yang gagal dimuat. Misalnya, baris yang tidak diformat dengan benar akan gagal dimuat. Baris yang gagal disalin ke file penolakan. Secara default, beban dibatalkan setelah penolakan pertama kecuali Anda menentukan ambang penolakan yang berbeda.

  4. Pasang dwloader.

    Instal dwloader ke server Pemuatan jika belum diinstal.

  1. Jalankan dwloader.

    Masuk ke server Pemuatan dan jalankan dwloader.exe yang dapat dieksekusi dengan opsi baris perintah yang sesuai.

  2. Verifikasi hasil.

    Anda dapat memeriksa file baris yang gagal (ditentukan dengan -R) untuk melihat apakah ada baris yang gagal dimuat. Jika file ini kosong, semua baris berhasil dimuat. dwloader bersifat transaksi, jadi jika ada langkah yang gagal (selain baris yang ditolak), semua langkah akan kembali ke status awal.

Sintaks

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

Argumen

-jam
Menampilkan informasi Bantuan sederhana tentang menggunakan Loader. Bantuan hanya ditampilkan jika tidak ada parameter baris perintah lain yang ditentukan.

-Ulogin_name
Login Autentikasi SQL Server yang valid dengan izin yang sesuai untuk melakukan pemuatan.

Kata sandi -P
Kata sandi untuk login_name Autentikasi SQL Server.

-W
Gunakan Autentikasi Windows. (Tidak diperlukan login_name atau kata sandi .)

-fparameter_file_name
Gunakan file parameter, parameter_file_name, sebagai pengganti parameter baris perintah. parameter_file_name dapat berisi parameter baris perintah apa pun kecuali user_name dan kata sandi. Jika parameter ditentukan pada baris perintah dan dalam file parameter, baris perintah akan mengambil alih parameter file.

File parameter berisi satu parameter, tanpa awalan - , per baris.

Contoh:

rt=percentage

rv=25

-Starget_appliance
Menentukan appliance SQL Server PDW yang akan menerima data yang dimuat.

Untuk koneksi Infiniband, target_appliance ditentukan sebagai <appliance-name-SQLCTL01>. Untuk mengonfigurasi koneksi bernama ini, lihat Mengonfigurasi Adaptor Jaringan InfiniBand.

Untuk koneksi Ethernet, target_appliance adalah alamat IP untuk kluster node Kontrol.

Jika dihilangkan, dwloader default ke nilai yang ditentukan saat dwloader diinstal.

-Ttarget_database_name.[skema].table_name
Nama tiga bagian untuk tabel tujuan.

- Akusource_data_location
Lokasi satu atau beberapa file sumber yang akan dimuat. Setiap file sumber harus berupa file teks atau file teks yang dikompresi dengan gzip. Hanya satu file sumber yang dapat dikompresi ke dalam setiap file gzip.

Untuk memformat file sumber:

  • File sumber harus diformat sesuai dengan opsi pemuatan.

  • Setiap baris dalam file sumber berisi data untuk satu baris tabel. Data sumber harus cocok dengan skema tabel tujuan. Urutan kolom dan jenis data juga harus cocok. Setiap bidang dalam baris mewakili kolom dalam tabel tujuan.

  • Secara default, bidang memiliki panjang variabel dan dipisahkan oleh pemisah. Untuk menentukan jenis pemisah, gunakan <opsi baris perintah variable_length_column_options> . Untuk menentukan bidang panjang tetap, gunakan <opsi baris perintah fixed_width_column_options> .

Untuk menentukan lokasi data sumber:

  • Lokasi data sumber dapat berupa jalur jaringan atau jalur lokal ke direktori di server pemuatan.

  • Untuk menentukan semua file dalam direktori, masukkan jalur direktori diikuti oleh karakter kartubebas * . Loader tidak memuat file dari subdirektori apa pun yang berada di lokasi data sumber. Loader kesalahan ketika direktori ada dalam file gzip.

  • Untuk menentukan beberapa file dalam direktori, gunakan kombinasi karakter dan * kartubebas.

Untuk memuat beberapa file dengan satu perintah:

  • Semua file harus ada di direktori yang sama.

  • File harus semua file teks, semua file gzip, atau kombinasi file teks dan gzip.

  • Tidak ada file yang dapat berisi informasi header.

  • Semua file harus menggunakan jenis pengodean karakter yang sama. Lihat opsi -e.

  • Semua file harus dimuat ke dalam tabel yang sama.

  • Semua file akan digabungkan dan dimuat seolah-olah mereka adalah satu file, dan baris yang ditolak akan masuk ke satu file penolakan.

Contoh:

  • -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
Jika ada kegagalan beban, dwloader menyimpan baris yang gagal dimuat dan deskripsi kegagalan informasi kegagalan dalam file bernama load_failure_file_name. Jika file ini sudah ada, dwloader akan menimpa file yang ada. load_failure_file_name dibuat ketika kegagalan pertama terjadi. Jika semua baris berhasil dimuat, load_failure_file_name tidak dibuat.

-fhnumber_header_rows
Jumlah baris (baris) yang akan diabaikan di awal source_data_file_name. Defaultnya adalah 0.

<variable_length_column_options>
Opsi untuk source_data_file_name yang memiliki kolom panjang variabel yang dibatasi karakter. Secara default, source_data_file_name berisi karakter ASCII dalam kolom panjang variabel.

Untuk file ASCII, NULL diwakili dengan menempatkan pemisah secara berturut-turut. Misalnya, dalam file yang dibatasi pipa ("|"), NULL ditunjukkan oleh "||". Dalam file yang dibatasi koma, NULL ditunjukkan oleh ",,". Selain itu, opsi -E (--emptyStringAsNull) harus ditentukan. Untuk informasi selengkapnya tentang -E, lihat di bawah ini.

-echaracter_encoding
Menentukan jenis pengodean karakter untuk data yang akan dimuat dari file data. Opsinya adalah ASCII (default), UTF8, UTF16, atau UTF16BE, di mana UTF16 adalah little endian dan UTF16BE adalah big endian. Opsi ini tidak peka huruf besar/kecil.

-tfield_delimiter
Pemisah untuk setiap bidang (kolom) dalam baris. Pemisah bidang adalah satu atau beberapa karakter escape ASCII ini atau nilai heksa ASCII.

Nama Karakter Escape Karakter Hex
Tab \t 0x09
Pengembalian pengangkutan (CR) \r 0x0d
Umpan baris (LF) \n 0x0a
CRLF \r\n 0x0d0x0a
Koma ',' 0x2c
Kutipan ganda \" 0x22
Kutipan tunggal \' 0x27

Untuk menentukan karakter pipa pada baris perintah, sertakan dengan tanda kutip ganda, "|". Ini akan menghindari salah tafsir oleh pengurai baris perintah. Karakter lain diapit dengan tanda kutip tunggal.

Contoh:

-t "|"

-t ' '

-t 0x0a

-t \t

-t '~|~'

-rrow_delimiter
Pemisah untuk setiap baris file data sumber. Pemisah baris adalah satu atau beberapa nilai ASCII.

Untuk menentukan pengembalian gerbong (CR), linefeed (LF), atau karakter tab sebagai pemisah, Anda dapat menggunakan karakter escape (\r, \n, \t) atau nilai hex mereka (0x, 0d, 09). Untuk menentukan karakter khusus lainnya sebagai pemisah, gunakan nilai hex-nya.

Contoh CR+LF:

-r \r\n

-r 0x0d0x0a

Contoh CR:

-r \r

-r 0x0d

Contoh LF:

-r \n

-r 0x0a

LF diperlukan untuk Unix. CR diperlukan untuk Windows.

-sstring_delimiter
Pemisah untuk bidang tipe data string dari file input yang dibatasi teks. Pemisah string adalah satu atau beberapa nilai ASCII. Ini dapat ditentukan sebagai karakter (misalnya, -s *) atau sebagai nilai heksa (misalnya, -s 0x22 untuk tanda kutip ganda).

Contoh:

-S*

-s 0x22

< fixed_width_column_options>
Opsi untuk file data sumber yang memiliki kolom panjang tetap. Secara default, source_data_file_name berisi karakter ASCII dalam kolom panjang variabel.

Kolom lebar tetap tidak didukung ketika -e adalah UTF8.

-wfixed_width_config_file
Jalur dan nama file konfigurasi yang menentukan jumlah karakter di setiap kolom. Setiap bidang harus ditentukan.

File ini harus berada di server Pemuatan. Jalur dapat berupa jalur UNC, relatif, atau absolut. Setiap baris dalam fixed_width_config_file berisi nama satu kolom dan jumlah karakter untuk kolom tersebut. Ada satu baris per kolom, sebagai berikut, dan urutan dalam file harus cocok dengan urutan dalam tabel tujuan:

=num_chars column_name

=num_chars column_name

Contoh file konfigurasi lebar tetap:

SalesCode=3

SalesID=10

Contoh baris di source_data_file_name:

230Shirts0056

320Towels1356

Dalam contoh sebelumnya, baris pertama yang dimuat akan memiliki SalesCode='230' dan SalesID='Shirts0056'. Baris kedua yang dimuat akan memiliki SalesCode='320' dan SaleID='Towels1356'.

Untuk informasi tentang cara menangani spasi di depan dan belakang atau konversi jenis data dalam mode lebar tetap, lihat Aturan konversi jenis data untuk dwloader.

-echaracter_encoding
Menentukan jenis pengodean karakter untuk data yang akan dimuat dari file data. Opsinya adalah ASCII (default), UTF8, UTF16, atau UTF16BE, di mana UTF16 adalah little endian dan UTF16BE adalah big endian. Opsi ini tidak peka huruf besar/kecil.

Kolom lebar tetap tidak didukung ketika -e adalah UTF8.

-rrow_delimiter
Pemisah untuk setiap baris file data sumber. Pemisah baris adalah satu atau beberapa nilai ASCII.

Untuk menentukan pengembalian gerbong (CR), linefeed (LF), atau karakter tab sebagai pemisah, Anda dapat menggunakan karakter escape (\r, \n, \t) atau nilai hex mereka (0x, 0d, 09). Untuk menentukan karakter khusus lainnya sebagai pemisah, gunakan nilai hex-nya.

Contoh CR+LF:

-r \r\n

-r 0x0d0x0a

Contoh CR:

-r \r

-r 0x0d

Contoh LF:

-r \n

-r 0x0a

LF diperlukan untuk Unix. CR diperlukan untuk Windows.

-D { ymd | ydm | mdy | myd | dmy | dym | custom_date_format }
Menentukan urutan bulan (m), hari (d), dan tahun (y) untuk semua bidang tanggalwaktu dalam file input. Urutan defaultnya adalah ymd. Untuk menentukan beberapa format pesanan untuk file sumber yang sama, gunakan opsi -dt.

ymd | dmy
ydm dan dmy memungkinkan format input yang sama. Keduanya memungkinkan tahun berada di awal atau akhir tanggal. Misalnya, untuk format tanggal ydm dan dmy , Anda dapat memiliki 2013-02-03 atau 02-03-2013 dalam file input.

ydm
Anda hanya dapat memuat input yang diformat sebagai ydm ke dalam kolom tanggalwaktu jenis data dan smalldatetime. Anda tidak dapat memuat nilai ydm ke dalam kolom jenis data datetime2, date, atau datetimeoffset.

mdy
mdy memungkinkan <bulan><ruang><hari koma><><tahun>.

Contoh data input mdy untuk 1 Januari 1975:

  • 1 Januari 1975

  • Jan 01, 75

  • Jan/1/75

  • 01011975

myd
Contoh file input untuk 04 Maret 2010: 03-2010-04, 3/2010/4

dym
Contoh file input untuk 04 Maret 2010: 04-2010-03, 4/2010/3

custom_date_format
custom_date_format adalah format tanggal kustom (misalnya MM/dd/yyyy) dan disertakan hanya untuk kompatibilitas mundur. dwloader tidak memberlakukan format tanggal kustom. Sebagai gantinya, ketika Anda menentukan format tanggal kustom, dwloader akan mengonversinya ke pengaturan ymd, ydm, mdy, myd, dym, atau dmy yang sesuai.

Misalnya, jika Anda menentukan -D MM/dd/yyyy, dwloader mengharapkan semua input tanggal dipesan dengan bulan pertama, lalu hari, lalu tahun (mdy). Ini tidak memberlakukan 2 bulan karakter, 2 digit hari, dan tahun 4 digit seperti yang ditentukan oleh format tanggal kustom. Berikut adalah beberapa contoh cara tanggal dapat diformat dalam file input ketika format tanggal adalah -D MM/dd/yyyy: 01/02/2013, Jan.02.2013, 1/2/2013

Untuk informasi pemformatan yang lebih komprehensif, lihat Aturan konversi jenis data untuk dwloader.

-dtdatetime_format_file
Setiap format tanggalwaktu ditentukan dalam file bernama datetime_format_file. Tidak seperti parameter baris perintah, parameter file yang menyertakan spasi tidak boleh diapit dalam tanda kutip ganda. Anda tidak dapat mengubah format tanggalwaktu saat memuat data. File data sumber dan kolom terkait dalam tabel tujuan harus memiliki format yang sama.

Setiap baris berisi nama kolom dalam tabel tujuan dan format tanggalwaktunya.

Contoh:

LastReceiptDate=ymd

ModifiedDate=dym

-dstaging_database_name
Nama database yang akan berisi tabel penahapan. Defaultnya adalah database yang ditentukan dengan opsi -T, yang merupakan database untuk tabel tujuan. Untuk informasi selengkapnya tentang menggunakan database penahapan, lihat Membuat Database Penahapan.

-Mload_mode_option
Menentukan apakah akan menambahkan, upsert, atau memuat ulang data. Mode defaultnya adalah tambahkan.

menambahkan
Loader menyisipkan baris di akhir baris yang sudah ada dalam tabel tujuan.

fastappend
Loader menyisipkan baris secara langsung, tanpa menggunakan tabel sementara, ke akhir baris yang ada dalam tabel tujuan. fastappend memerlukan opsi multi-transaksi (-m). Database penahapan tidak dapat ditentukan saat menggunakan fastappend. Tidak ada putar kembali dengan fastappend, yang berarti bahwa pemulihan dari beban yang gagal atau dibatalkan harus ditangani oleh proses beban Anda sendiri.

upsert -Kmerge_column [ ,...n ]
Loader menggunakan pernyataan Penggabungan SQL Server untuk memperbarui baris yang ada dan menyisipkan baris baru.

Opsi -K menentukan kolom atau kolom untuk mendasarkan penggabungan. Kolom ini membentuk kunci penggabungan, yang harus mewakili baris unik. Jika kunci penggabungan ada di tabel tujuan, baris akan diperbarui. Jika kunci penggabungan tidak ada di tabel tujuan, baris ditambahkan.

Untuk tabel terdistribusi hash, kunci penggabungan harus atau menyertakan kolom distribusi.

Untuk tabel yang direplikasi, kunci penggabungan adalah kombinasi dari satu atau beberapa kolom. Kolom ini ditentukan sesuai dengan kebutuhan aplikasi.

Beberapa kolom harus dipisahkan koma tanpa spasi, atau dipisahkan koma dengan spasi dan diapit dalam tanda kutip tunggal.

Jika dua baris dalam tabel sumber memiliki nilai kunci penggabungan yang cocok, baris masing-masing harus identik.

Reload
Loader memotong tabel tujuan sebelum menyisipkan data sumber.

-bbatchsize
Direkomendasikan hanya untuk digunakan oleh Dukungan Microsoft, batchsize adalah ukuran batch SQL Server untuk salinan massal yang dilakukan DMS ke dalam instans SQL Server pada simpul Komputasi. Ketika batchsize ditentukan, SQL Server PDW akan mengambil alih ukuran beban batch yang dihitung secara dinamis untuk setiap beban.

Dimulai dengan SQL Server 2012 PDW, simpul Kontrol secara dinamis menghitung ukuran batch untuk setiap beban secara default. Perhitungan otomatis ini didasarkan pada beberapa parameter seperti ukuran memori, jenis tabel target, skema tabel target, jenis beban, ukuran file, dan kelas sumber daya pengguna.

Misalnya, jika mode beban adalah FASTAPPEND dan tabel memiliki indeks penyimpan kolom berkluster, SQL Server PDW akan secara default mencoba menggunakan ukuran batch 1.048.576 sehingga grup baris akan menjadi TERTUTUP dan dimuat langsung ke penyimpanan kolom tanpa melalui penyimpanan delta. Jika memori tidak mengizinkan ukuran batch 1.048.576, dwloader akan memilih batchsize yang lebih kecil.

Jika jenis beban adalah FASTAPPEND, batchsize berlaku untuk memuat data ke dalam tabel, jika tidak , batchsize berlaku untuk memuat data ke dalam tabel penahapan.

<reject_options>
Menentukan opsi untuk menentukan jumlah kegagalan beban yang akan diizinkan Loader. Jika kegagalan beban melebihi ambang batas, loader akan berhenti dan tidak menerapkan baris apa pun.

-rt { value | percentage }
Menentukan apakah -reject_value dalam opsi -rvreject_value adalah jumlah harfiah baris (nilai) atau tingkat kegagalan (persentase). Defaultnya adalah nilai.

Opsi persentase adalah perhitungan real time yang terjadi pada interval sesuai dengan opsi -rs.

Misalnya, jika Loader mencoba memuat 100 baris dan 25 gagal dan 75 berhasil, maka tingkat kegagalan adalah 25%.

-rvreject_value
Menentukan jumlah atau persentase penolakan baris untuk diizinkan sebelum menghentikan beban. Opsi -rt menentukan apakah reject_value mengacu pada jumlah baris atau persentase baris.

Reject_value default adalah 0.

Saat digunakan dengan nilai -rt, loader menghentikan beban saat jumlah baris yang ditolak melebihi reject_value.

Saat digunakan dengan persentase -rt, loader menghitung persentase pada interval (opsi-rs). Oleh karena itu, persentase baris yang gagal dapat melebihi reject_value.

-rsreject_sample_size
Digunakan dengan -rt percentage opsi untuk menentukan pemeriksaan persentase inkremental. Misalnya, jika reject_sample_size adalah 1000, Loader akan menghitung persentase baris yang gagal setelah mencoba memuat 1000 baris. Ini menghitung ulang persentase baris yang gagal setelah mencoba memuat setiap 1000 baris tambahan.

-C
Menghapus karakter spasi putih dari sisi kiri dan kanan bidang karakter, nchar, varchar, dan nvarchar. Mengonversi setiap bidang yang hanya berisi karakter spasi kosong ke string kosong.

Contoh:

' ' akan dipotong menjadi ''

' abc ' akan dipotong ke 'abc'

Ketika -c digunakan dengan -E, operasi -E terjadi terlebih dahulu. Bidang yang hanya berisi karakter spasi putih dikonversi ke string kosong, dan bukan ke NULL.

-E
Mengonversi string kosong ke NULL. Defaultnya adalah tidak melakukan konversi ini.

-M
Gunakan mode multi-transaksi untuk fase kedua pemuatan; saat memuat data dari tabel penahapan ke dalam tabel terdistribusi.

Dengan -m, SQL Server PDW melakukan dan menerapkan beban secara paralel. Ini berkinerja jauh lebih cepat daripada mode pemuatan default, tetapi tidak aman untuk transaksi.

Tanpa -m, SQL Server PDW melakukan dan menerapkan beban secara serial di seluruh distribusi dalam setiap simpul Komputasi, dan secara bersamaan di seluruh simpul Komputasi. Metode ini lebih lambat daripada mode multi-transaksi, tetapi aman untuk transaksi.

-m bersifat opsional untuk menambahkan, memuat ulang, dan upsert.

-m diperlukan untuk fastappend.

-m tidak dapat digunakan dengan tabel yang direplikasi.

-m hanya berlaku untuk fase pemuatan kedua. Ini tidak berlaku untuk fase pemuatan pertama; memuat data ke dalam tabel penahapan.

Tidak ada putar kembali dengan mode multi-transaksi, yang berarti bahwa pemulihan dari beban yang gagal atau dibatalkan harus ditangani oleh proses beban Anda sendiri.

Sebaiknya gunakan -m hanya saat memuat ke dalam tabel kosong, sehingga Anda dapat memulihkan tanpa kehilangan data. Untuk memulihkan dari kegagalan beban: hilangkan tabel tujuan, atasi masalah beban, buat ulang tabel tujuan, dan jalankan beban lagi.

-N
Verifikasi appliance target memiliki sertifikat SQL Server PDW yang valid dari otoritas tepercaya. Gunakan ini untuk membantu memastikan data Anda tidak dibajak oleh penyerang dan dikirim ke lokasi yang tidak sah. Sertifikat harus sudah diinstal pada appliance. Satu-satunya cara yang didukung untuk menginstal sertifikat adalah agar administrator appliance menginstalnya dengan menggunakan alat Configuration Manager. Tanyakan administrator appliance Anda apakah Anda tidak yakin apakah appliance memiliki sertifikat tepercaya yang terinstal.

-Se
Lewati memuat file kosong. Ini juga melewati uncompressing file gzip kosong.

-L
Tersedia dengan pembaruan CU7.4, menentukan panjang baris maksimum (dalam byte) yang dapat dimuat. Nilai yang valid adalah bilangan bulat antara 32768 dan 33554432. Hanya gunakan saat diperlukan untuk memuat baris besar (lebih besar dari 32KB) karena ini akan mengalokasikan lebih banyak memori pada klien dan server.

Mengembalikan Nilai Kode

0 (berhasil) atau nilai bilangan bulat lainnya (kegagalan)

Di jendela perintah atau file batch, gunakan errorlevel untuk menampilkan kode pengembalian. Contohnya:

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

Saat menggunakan PowerShell, gunakan $LastExitCode.

Izin

Memerlukan izin LOAD dan izin yang berlaku (INSERT, UPDATE, DELETE) pada tabel tujuan. Memerlukan izin CREATE (untuk membuat tabel sementara) pada database penahapan. Jika database penahapan tidak digunakan, maka izin CREATE diperlukan pada database tujuan.

Keterangan Umum

Untuk informasi tentang konversi jenis data saat memuat dengan dwloader, lihat Aturan konversi jenis data untuk dwloader.

Jika parameter menyertakan satu atau beberapa spasi, sertakan parameter dengan tanda kutip ganda.

Anda harus menjalankan Loader dari lokasi yang diinstal. Dwloader executable telah diinstal sebelumnya dengan appliance dan terletak di direktori C:\Program Files\Microsoft SQL Server Data Warehouse\DWLoader.

Anda dapat mengambil alih parameter yang ditentukan dalam file parameter (opsi-f) dengan menentukannya sebagai parameter baris perintah.

Anda dapat menjalankan beberapa instans Loader secara bersamaan. Jumlah maksimum instans Loader telah dikonfigurasi sebelumnya dan tidak dapat diubah.

Data yang dimuat mungkin memerlukan lebih banyak atau kurang ruang pada appliance daripada di lokasi sumber. Anda dapat melakukan impor pengujian dengan subset data untuk memperkirakan konsumsi disk.

Meskipun dwloader adalah proses transaksi dan akan bergulir kembali dengan anggun saat gagal, dwloader tidak dapat digulung balik setelah beban massal berhasil diselesaikan. Untuk membatalkan proses dwloader aktif, ketik CTRL+C.

Batasan dan Pembatasan

Ukuran total semua beban yang terjadi secara bersamaan harus lebih kecil dari LOG_SIZE untuk database, dan kami merekomendasikan ukuran total semua beban bersamaan kurang dari 50% dari LOG_SIZE. Untuk mencapai batasan ukuran ini, Anda dapat membagi beban besar menjadi beberapa batch. Untuk informasi selengkapnya tentang LOG_SIZE, lihat MEMBUAT DATABASE

Saat memuat beberapa file dengan satu perintah muat, semua baris yang ditolak ditulis ke file penolakan yang sama. File tolak tidak menunjukkan file input mana yang berisi setiap baris yang ditolak.

String kosong tidak boleh digunakan sebagai pemisah. Ketika string kosong digunakan sebagai pemisah baris, beban akan gagal. Saat digunakan sebagai pemisah kolom, beban mengabaikan pemisah dan terus menggunakan default "|" sebagai pemisah kolom. Saat digunakan sebagai pemisah string, string kosong diabaikan dan perilaku default diterapkan.

Perilaku Penguncian

Perilaku penguncian dwloader bervariasi tergantung pada load_mode_option.

  • tambahkan - Tambahkan adalah opsi yang direkomendasikan dan yang paling umum. Tambahkan memuat data ke dalam tabel penahapan. Penguncian dijelaskan secara rinci di bawah ini.

  • penambahan cepat - Penambahan cepat dimuat langsung ke tabel akhir dengan mengambil kunci tabel ExclusiveUpdate, dan merupakan satu-satunya mode yang tidak menggunakan tabel penahapan.

  • reload - Memuat ulang memuat data ke dalam tabel penahapan dan memerlukan kunci eksklusif pada tabel penahapan dan tabel akhir. Muat ulang tidak disarankan untuk operasi bersamaan.

  • upsert - Upsert memuat data ke dalam tabel penahapan, lalu melakukan operasi penggabungan dari tabel penahapan ke tabel akhir. Upsert tidak memerlukan kunci eksklusif pada tabel akhir. Performa dapat bervariasi saat menggunakan upsert. Uji perilaku di lingkungan Anda.

Perilaku Penguncian

Penguncian mode tambahan

Penambah dapat dijalankan dalam mode multi-transaksional (menggunakan argumen -m) tetapi tidak aman transaksi. Oleh karena itu, penambahan harus digunakan sebagai operasi transaksi (tanpa menggunakan argumen -m). Sayangnya, selama operasi INSERT-SELECT akhir, mode transaksi saat ini sekitar enam kali lebih lambat daripada mode multi-transaksi.

Mode tambahan memuat data dalam dua fase. Fase satu memuat data dari file sumber ke dalam tabel penahapan secara bersamaan (fragmentasi dapat terjadi). Fase dua memuat data dari tabel penahapan ke tabel akhir. Fase kedua melakukan INSERT INTO... PILIH DENGAN operasi (TABLOCK). Tabel berikut ini memperlihatkan perilaku penguncian pada tabel akhir, dan perilaku pengelogan saat menggunakan mode penambahan:

Tipe Tabel Multi-transaksi
Mode (-m)
Tabel Kosong Konkurensi Didukung Pembuatan Log
Heap Ya Ya Ya Minimal
Heap Ya Tidak Ya Minimal
Heap Tidak Ya Tidak Minimal
Heap Tidak Tidak Tidak Minimal
Cl Ya Ya Tidak Minimal
Cl Ya Tidak Ya Penuh
Cl Tidak Ya Tidak Minimal
Cl Tidak Tidak Ya Penuh

Tabel di atas menunjukkan dwloader menggunakan mode tambahan yang dimuat ke dalam tumpukan atau tabel indeks berkluster (CI), dengan atau tanpa bendera multi-transaksi, dan memuat ke dalam tabel kosong atau tabel yang tidak kosong. Perilaku penguncian dan pengelogan dari setiap kombinasi beban tersebut ditampilkan dalam tabel. Misalnya, memuat fase (ke-2) dengan mode penambahan ke dalam indeks berkluster tanpa mode multi-transaksional dan ke dalam tabel kosong akan membuat PDW membuat kunci eksklusif pada tabel dan pengelogan minimal. Ini berarti bahwa pelanggan tidak akan dapat memuat fase (ke-2) dan mengkueri secara bersamaan ke dalam tabel kosong. Namun, saat memuat dengan konfigurasi yang sama ke dalam tabel yang tidak kosong, PDW tidak akan mengeluarkan kunci eksklusif pada tabel dan konkurensi dimungkinkan. Sayangnya, pengelogan penuh terjadi, memperlambat proses.

Contoh

J. Contoh dwloader sederhana

Contoh berikut menunjukkan inisiasi Loader hanya dengan opsi yang diperlukan yang dipilih. Opsi lain diambil dari file konfigurasi global, loadparamfile.txt.

Contoh menggunakan Autentikasi SQL Server.

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

Contoh yang sama menggunakan Autentikasi 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  

Contoh menggunakan argumen untuk file sumber dan file kesalahan.

--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. Memuat Data ke dalam Tabel AdventureWorks

Contoh berikut adalah bagian dari skrip batch yang memuat data ke AdventureWorksPDW2012. Untuk melihat skrip lengkap, buka file aw_create.bat yang dikirim dengan paket penginstalan AdventureWorksPDW2012 .

Cuplikan skrip berikut menggunakan dwloader untuk memuat data ke dalam tabel DimAccount dan DimCurrency. Skrip ini menggunakan alamat Ethernet. Jika menggunakan InfiniBand, server akan <appliance_name>-SQLCTL01.

set server=10.193.63.134  
set user=<MyUser>  
set password=<MyPassword>  
  
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%  

Berikut ini adalah DDL untuk Tabel 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);  

Berikut ini adalah contoh file data, DimAccount.txt, yang berisi data untuk dimuat ke dalam tabel 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. Memuat Data dari Baris Perintah

Skrip dalam Contoh B dapat diganti dengan memasukkan semua parameter pada baris perintah, seperti yang ditunjukkan dalam contoh berikut.

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>  

Deskripsi parameter baris perintah:

  • C:\Program Files\Microsoft SQL Server Parallel Data Warehouse\100\dwloader.exe adalah lokasi dwloader.exe yang diinstal.

  • -S diikuti oleh alamat IP node Kontrol.

  • -E menentukan untuk memuat string kosong sebagai NULL.

  • -M reload menentukan untuk memotong tabel tujuan sebelum menyisipkan data sumber.

  • -e UTF16 menunjukkan file sumber menggunakan jenis pengodean karakter little endian.

  • -i .\DimAccount.txt menentukan data berada dalam file yang disebut DimAccount.txt yang ada di direktori saat ini.

  • -T AdventureWorksPDW2012.dbo.DimAccount menentukan nama 3 bagian tabel untuk menerima data.

  • -R DimAccount.bad menentukan baris yang gagal dimuat akan ditulis ke file yang disebut DimAccount.bad.

  • -t "|" menunjukkan bidang dalam file input, DimAccount.txt, dipisahkan dengan karakter pipa.

  • -r \r\n menentukan setiap baris di DimAccount.txt diakhiri dengan pengembalian gerbong dan karakter umpan baris.

  • -U <login_name> -P <password> menentukan login dan kata sandi untuk login yang memiliki izin untuk melakukan pemuatan.