Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
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
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.
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.
Instal dwloader.
Instal dwloader ke server Pemuatan jika belum diinstal.
Jalankan dwloader.
Masuk ke server Pemuatan dan jalankan dwloader.exe yang dapat dieksekusi dengan opsi baris perintah yang sesuai.
Verifikasi hasilnya.
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.
Syntax
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
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.
-P<kata sandi>
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.
Examples:
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.[schema].table_name
Nama tiga komponen untuk tabel tujuan.
-Isource_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 mengalami kesalahan saat ada direktori di 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.
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
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 sudah 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.
<opsi_kolom_panjang_variabel>
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.
| Name | 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.
Examples:
-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 carriage return (CR), line feed (LF), atau karakter tab sebagai pemisah, Anda dapat menggunakan karakter escape (\r, \n, \t) atau nilai heksadesimalnya (0x, 0d, 09). Untuk menentukan karakter khusus lainnya sebagai pemisah, gunakan nilai hex-nya.
Contoh CR+LF:
-r \r\n
-r 0x0d0x0a
Contoh-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).
Examples:
-S*
-s 0x22
< opsi_kolom_lebar_tetap>
Opsi untuk file data sumber yang memiliki kolom panjang tetap. Secara default, source_data_file_name berisi karakter ASCII dalam kolom panjang variabel.
Kolom dengan lebar tetap tidak didukung saat -e disetel ke 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:
column_name=num_chars
column_name=num_chars
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 dengan lebar tetap tidak didukung saat -e disetel ke UTF8.
-rrow_delimiter
Pemisah untuk setiap baris file data sumber. Pemisah baris adalah satu atau beberapa nilai ASCII.
Untuk menentukan carriage return (CR), line feed (LF), atau karakter tab sebagai pemisah, Anda dapat menggunakan karakter escape (\r, \n, \t) atau nilai heksadesimalnya (0x, 0d, 09). Untuk menentukan karakter khusus lainnya sebagai pemisah, gunakan nilai hex-nya.
Contoh CR+LF:
-r \r\n
-r 0x0d0x0a
Contoh-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 di 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 berformat ydm ke dalam kolom dengan tipe data datetime dan smalldatetime. Anda tidak dapat memuat nilai ydm ke dalam kolom jenis data datetime2, date, atau datetimeoffset.
mdy
mdy memungkinkan <bulan><spasi><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 diurutkan dengan bulan terlebih dahulu, kemudian hari, lalu tahun (mdy). Ini tidak menerapkan bulan 2 karakter, hari 2 digit, 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.
Examples:
LastReceiptDate=ymd
ModifiedDate=dym
-dstaging_database_name
Nama database yang akan berisi tabel sementara. Defaultnya adalah database yang ditentukan dengan opsi -T, yang merupakan database untuk tabel tujuan. Untuk informasi selengkapnya tentang penggunaan database staging, lihat Membuat Database Staging.
-Mload_mode_option
Menentukan apakah akan menambahkan, upsert, atau memuat ulang data. Mode defaultnya adalah tambahkan.
tambah
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 staging tidak dapat ditentukan saat menggunakan fastappend. Tidak ada rollback dengan fastappend, yang berarti pemulihan dari proses pemuatan yang gagal atau dibatalkan harus ditangani oleh proses pemuatan 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 yang didistribusikan dengan hash, kunci penggabungan harus berupa atau mencakup 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 dengan koma tanpa spasi, atau dipisahkan dengan koma disertai spasi dan diapit dengan tanda kutip tunggal.
Jika dua baris dalam tabel sumber memiliki nilai kunci penggabungan yang cocok, baris masing-masing harus identik.
isi ulang
Loader memotong tabel tujuan sebelum menyisipkan data sumber.
-bbatchsize
Disarankan hanya untuk digunakan oleh Microsoft Support, batchsize adalah ukuran batch pada SQL Server untuk penyalinan massal yang dilakukan DMS ke instans SQL Server pada node Compute. 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 pemuatan adalah FASTAPPEND dan tabel memiliki indeks columnstore berkluster, SQL Server PDW secara bawaan akan mencoba menggunakan ukuran batch sebesar 1.048.576 sehingga kelompok baris akan menjadi CLOSED dan dimuat langsung ke columnstore tanpa melalui delta store. Jika memori tidak mengizinkan ukuran batch 1.048.576, dwloader akan memilih batchsize yang lebih kecil.
Jika jenis pemuatan adalah FASTAPPEND, batchsize digunakan untuk memuat data ke dalam tabel; jika bukan, batchsize digunakan untuk memuat data ke dalam tabel staging.
<opsi_penolakan>
Menentukan opsi untuk menetapkan jumlah kegagalan pemuatan yang diizinkan oleh Loader. Jika kegagalan pemuatan melebihi ambang batas, pemuat akan berhenti dan tidak akan mengomitim baris apa pun.
-rt { nilai | persentase }
Menentukan apakah nilai -reject_value dalam opsi -rvreject_value merupakan jumlah baris literal (nilai) atau tingkat kegagalan (persentase). Defaultnya adalah nilai.
Opsi persentase adalah perhitungan real-time yang dilakukan pada interval berdasarkan 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 yang diizinkan sebelum menghentikan pemuatan. Opsi -rt menentukan apakah reject_value mengacu pada jumlah baris atau persentase baris.
Nilai default reject_value adalah 0.
Saat digunakan dengan nilai -rt, loader menghentikan beban saat jumlah baris yang ditolak melebihi reject_value.
Bila digunakan dengan persentase -rt, loader menghitung persentase pada interval tertentu (opsi -rs). Oleh karena itu, persentase baris yang gagal dapat melebihi reject_value.
-rsreject_sample_size
Digunakan dengan opsi -rt percentage untuk menentukan pemeriksaan persentase bertahap. 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 dari sisi kiri dan kanan kolom char, nchar, varchar, dan nvarchar. Mengonversi setiap bidang yang hanya berisi karakter spasi kosong ke string kosong.
Examples:
' ' akan dipotong menjadi ''
' abc ' akan dipangkas menjadi '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 data; yaitu saat memuat data dari tabel staging 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. Hal ini tidak berlaku untuk tahap pemuatan pertama; pemuatan data ke dalam tabel staging.
Tidak ada rollback dalam mode multi-transaksi, yang berarti bahwa pemulihan dari pemuatan yang gagal atau dibatalkan harus ditangani oleh proses pemuatan 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
Pastikan appliance tujuan memiliki sertifikat SQL Server PDW yang valid dari otoritas terpercaya. 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 proses dekompresi pada berkas 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.
Permissions
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 penginstalannya. 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 dibatalkan dengan aman jika terjadi kegagalan, proses ini tidak dapat dibatalkan setelah pemuatan 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 CREATE 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 - Reload memuat data ke tabel staging dan memerlukan kunci eksklusif pada tabel staging dan tabel final. 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. Kinerja dapat bervariasi saat menggunakan upsert. Uji perilaku di lingkungan Anda.
Perilaku Penguncian
Penguncian mode tambahan
Append dapat dijalankan dalam mode multitransaksi (menggunakan argumen -m), tetapi tidak aman terhadap transaksi. Oleh karena itu, penambahan harus digunakan sebagai operasi transaksi (tanpa menggunakan argumen -m). Sayangnya, selama operasi INSERT-SELECT terakhir, mode transaksional saat ini sekitar enam kali lebih lambat dibandingkan dengan mode multi-transaksional.
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 menjalankan operasi INSERT INTO...SELECT WITH (TABLOCK). Tabel berikut ini memperlihatkan perilaku penguncian pada tabel akhir, dan perilaku pengelogan saat menggunakan mode penambahan:
| Jenis Tabel | Banyak transaksi Modus (-m) |
Tabel Kosong | Mendukung eksekusi bersamaan | Logging |
|---|---|---|---|---|
| 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 yang memuat data menggunakan mode append ke dalam tabel heap atau tabel cluster index (CI), dengan atau tanpa flag multi-transaksional, serta memuat ke dalam tabel kosong maupun tabel non-kosong. Perilaku penguncian dan pencatatan log untuk setiap kombinasi beban tersebut ditampilkan dalam tabel. Misalnya, pemuatan fase kedua dengan mode append pada indeks berkluster tanpa mode multi-transaksional dan pada tabel kosong akan membuat PDW menerapkan penguncian eksklusif pada tabel, dan pencatatan log akan diminimalkan. Ini berarti bahwa pelanggan tidak akan dapat memuat fase (ke-2) dan menjalankan kueri secara bersamaan pada tabel kosong. Namun, saat memuat dengan konfigurasi yang sama ke tabel yang tidak kosong, PDW tidak akan menerapkan kunci eksklusif pada tabel, sehingga akses serentak dimungkinkan. Sayangnya, pencatatan log secara penuh dilakukan, sehingga memperlambat proses.
Examples
A. 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 menjadi <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%
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 bahwa setiap baris dalam DimAccount.txt diakhiri dengan karakter carriage return dan line feed.
-U <login_name> -P <password> menentukan login dan kata sandi untuk login yang memiliki izin untuk melakukan pemuatan.