Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan utilitas BCP dari Linux untuk mengimpor dan mengekspor data
Utilitas BCP (Bulk Copy Program) menyediakan cara yang efisien untuk mentransfer sejumlah besar data antara RDS Anda untuk instance SQL Server DB dan file data. Anda dapat menggunakan BCP dari lingkungan Linux untuk melakukan operasi data massal, sehingga berguna untuk migrasi data, proses ETL, dan transfer data reguler.
BCP mendukung mengimpor data dari file ke tabel SQL Server dan mengekspor data dari tabel SQL Server ke file. Ini sangat efektif untuk mentransfer data terstruktur dalam berbagai format termasuk file teks yang dibatasi.
Prasyarat
Sebelum menggunakan BCP dengan instans RDS untuk SQL Server DB dari Linux, pastikan Anda memiliki yang berikut:
-
Lingkungan Linux dengan konektivitas jaringan ke RDS Anda untuk instans SQL Server DB
-
Alat baris perintah Microsoft SQL Server yang diinstal pada sistem Linux Anda, termasuk:
sqlcmd - Alat kueri baris perintah SQL Server
bcp - Utilitas Program Salinan Massal
-
Kredensi yang valid untuk RDS Anda untuk instans SQL Server DB
-
Akses jaringan dikonfigurasi melalui grup keamanan untuk memungkinkan koneksi pada port SQL Server (biasanya 1433)
-
Izin database yang sesuai untuk operasi yang ingin Anda lakukan
Menginstal alat baris perintah SQL Server di Linux
Untuk menggunakan BCP dari Linux, Anda perlu menginstal alat baris perintah Microsoft SQL Server. Untuk petunjuk penginstalan mendetail untuk distribusi Linux spesifik Anda, lihat dokumentasi Microsoft berikut ini:
-
Instal sqlcmd dan bcp alat baris perintah SQL Server di Linux
-
utilitas bcp
- Referensi lengkap untuk utilitas BCP
Setelah instalasi, pastikan alat tersedia di PATH Anda dengan menjalankan:
bcp -v sqlcmd -?
Mengekspor data dari RDS for SQL Server
Anda dapat menggunakan BCP untuk mengekspor data dari RDS Anda untuk SQL Server DB instance ke file pada sistem Linux Anda. Ini berguna untuk membuat cadangan, analisis data, atau menyiapkan data untuk migrasi.
Sintaks ekspor dasar
Sintaks dasar untuk mengekspor data menggunakan BCP adalah:
bcp
database.schema.table
out output_file -S server_name -Uusername
-Ppassword
[options]
Di mana:
database.schema.table
- Nama tabel yang sepenuhnya memenuhi syaratoutput_file
- Path dan nama file outputserver_name
- RDS Anda untuk titik akhir SQL Serverusername
- Nama pengguna database Andapassword
- Kata sandi basis data Anda
Contoh ekspor
Contoh berikut mengekspor data dari tabel bernama customers
dalam sales
database:
bcp sales.dbo.customers out /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -U
admin
\ -Pmypassword
\ -c \ -t "|" \ -r "\n"
Perintah ini:
Mengekspor data dari tabel
customers
Menyimpan output ke
/home/user/customers.txt
Menggunakan format karakter (
-c
)Menggunakan pipa (|) sebagai pembatas bidang ()
-t "|"
Menggunakan baris baru sebagai pembatas baris ()
-r "\n"
Mengimpor data ke RDS untuk SQL Server
Anda dapat menggunakan BCP untuk mengimpor data dari file pada sistem Linux Anda ke RDS Anda untuk SQL Server DB instance. Ini berguna untuk migrasi data, memuat data uji, atau pembaruan data reguler.
Sintaks impor dasar
Sintaks dasar untuk mengimpor data menggunakan BCP adalah:
bcp
database.schema.table
in input_file -Sserver_name
-Uusername
-Ppassword
[options]
Di mana:
database.schema.table
- Nama tabel tujuan yang memenuhi syaratinput_file
- Jalur dan nama file inputserver_name
- RDS Anda untuk titik akhir SQL Serverusername
- Nama pengguna database Andapassword
- Kata sandi basis data Anda
Contoh impor
Contoh berikut mengimpor data dari file ke dalam tabel bernamacustomers
:
bcp sales.dbo.customers in /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -U
admin
\ -Pmypassword
\ -c \ -t "|" \ -r "\n" \ -b 1000
Perintah ini:
Mengimpor data ke dalam tabel
customers
Membaca data dari
/home/user/customers.txt
Menggunakan format karakter (
-c
)Menggunakan pipa (|) sebagai pembatas bidang ()
-t "|"
Menggunakan baris baru sebagai pembatas baris ()
-r "\n"
Memproses data dalam batch 1000 baris ()
-b 1000
Opsi BCP umum
BCP menyediakan banyak opsi untuk mengontrol pemformatan data dan perilaku transfer. Tabel berikut menjelaskan opsi yang umum digunakan:
Opsi | Deskripsi |
---|---|
-c |
Menggunakan tipe data karakter untuk semua kolom |
-n |
Menggunakan tipe data database asli |
-t |
Menentukan pembatas bidang (default adalah tab) |
-r |
Menentukan pembatas baris (default adalah baris baru) |
-b |
Menentukan ukuran batch untuk operasi massal |
-F |
Menentukan baris pertama untuk ekspor atau impor |
-L |
Menentukan baris terakhir untuk ekspor atau impor |
-e |
Menentukan file kesalahan untuk menangkap baris ditolak |
-f |
Menentukan file format untuk pemformatan data |
-q |
Menggunakan pengidentifikasi yang dikutip untuk nama objek |
Praktik terbaik dan pertimbangan
Saat menggunakan BCP dengan RDS untuk SQL Server dari Linux, pertimbangkan praktik terbaik berikut:
-
Gunakan pemrosesan batch - Untuk kumpulan data besar, gunakan
-b
opsi untuk memproses data dalam batch. T nya meningkatkan kinerja dan memungkinkan pemulihan kesalahan yang lebih baik. -
Tangani kesalahan dengan anggun — Gunakan
-e
opsi untuk menangkap informasi kesalahan dan baris yang ditolak dalam file terpisah untuk dianalisis. -
Pilih format data yang sesuai — Gunakan format karakter (
-c
) untuk kompatibilitas lintas platform atau format asli (-n
) untuk kinerja yang lebih baik ketika sumber dan tujuan adalah SQL Server. -
Amankan kredensialmu — Hindari meletakkan kata sandi langsung di baris perintah. Pertimbangkan untuk menggunakan variabel lingkungan atau file konfigurasi dengan izin yang sesuai.
-
Uji dengan kumpulan data kecil — Sebelum memproses data dalam jumlah besar, uji perintah BCP Anda dengan kumpulan data yang lebih kecil untuk memverifikasi pemformatan dan konektivitas.
-
Monitor konektivitas jaringan — Pastikan koneksi jaringan yang stabil, terutama untuk transfer data yang besar. Pertimbangkan untuk menggunakan alat seperti
screen
atautmux
untuk operasi yang berjalan lama. -
Validasi integritas data — Setelah transfer data, verifikasi jumlah baris dan data sampel untuk memastikan operasi selesai dengan sukses.
Memecahkan masalah umum
Tabel berikut menjelaskan masalah umum yang mungkin Anda temui saat menggunakan BCP dari Linux dan solusinya:
Isu | Solusi |
---|---|
Batas waktu koneksi atau kesalahan jaringan | Verifikasi titik akhir Amazon RDS, pengaturan grup keamanan, dan konektivitas jaringan Anda. Pastikan port SQL Server (biasanya 1433) dapat diakses dari sistem Linux Anda. |
Kegagalan otentikasi | Verifikasi nama pengguna dan kata sandi Anda. Pastikan pengguna database memiliki izin yang sesuai untuk operasi yang Anda lakukan. |
Kesalahan format data | Periksa pembatas bidang dan baris Anda. Pastikan format data sesuai dengan apa yang diharapkan BCP. Gunakan file format untuk struktur data yang kompleks. |
Kesalahan ditolak izin | Pastikan pengguna database Anda memiliki INSERT izin untuk impor atau SELECT izin untuk ekspor pada tabel target. |
Masalah penanganan file besar | Gunakan pemrosesan batch dengan -b opsi. Pertimbangkan untuk membagi file besar menjadi potongan-potongan yang lebih kecil untuk kinerja yang lebih baik dan pemulihan kesalahan. |
Masalah pengkodean karakter | Pastikan file data Anda menggunakan pengkodean karakter yang kompatibel. Gunakan -c opsi untuk format karakter atau tentukan halaman kode yang sesuai. |