

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
<a name="SQLServer.Procedural.Importing.BCP.Linux"></a>

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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Prerequisites"></a>

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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Installing"></a>

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](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)
+ [utilitas bcp](https://docs.microsoft.com/en-us/sql/tools/bcp-utility) - 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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting"></a>

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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic"></a>

Sintaks dasar untuk mengekspor data menggunakan BCP adalah:

```
bcp database.schema.table out output_file -S server_name -U username -P password [options]
```

Di mana:
+ `database.schema.table`- Nama tabel yang sepenuhnya memenuhi syarat
+ `output_file`- Path dan nama file output
+ `server_name`- RDS Anda untuk titik akhir SQL Server
+ `username`- Nama pengguna database Anda
+ `password`- Kata sandi basis data Anda

### Contoh ekspor
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example"></a>

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 \
    -P mypassword \
    -c \
    -t "|" \
    -r "\n"
```

Perintah ini:
+ Mengekspor data dari tabel `customers`
+ Menyimpan output ke `/home/user/customers.txt`
+ Menggunakan format karakter (`-c`)
+ Menggunakan pipa (\$1) sebagai pembatas bidang () `-t "|"`
+ Menggunakan baris baru sebagai pembatas baris () `-r "\n"`

## Mengimpor data ke RDS untuk SQL Server
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing"></a>

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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic"></a>

Sintaks dasar untuk mengimpor data menggunakan BCP adalah:

```
bcp database.schema.table in input_file -S server_name -U username -P password [options]
```

Di mana:
+ `database.schema.table`- Nama tabel tujuan yang memenuhi syarat
+ `input_file`- Jalur dan nama file input
+ `server_name`- RDS Anda untuk titik akhir SQL Server
+ `username`- Nama pengguna database Anda
+ `password`- Kata sandi basis data Anda

### Contoh impor
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Example"></a>

Contoh berikut mengimpor data dari file ke dalam tabel bernama`customers`:

```
bcp sales.dbo.customers in /home/user/customers.txt \
    -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \
    -U admin \
    -P mypassword \
    -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 (\$1) sebagai pembatas bidang () `-t "|"`
+ Menggunakan baris baru sebagai pembatas baris () `-r "\n"`
+ Memproses data dalam batch 1000 baris () `-b 1000`

## Opsi BCP umum
<a name="SQLServer.Procedural.Importing.BCP.Linux.Options"></a>

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
<a name="SQLServer.Procedural.Importing.BCP.Linux.BestPractices"></a>

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` atau `tmux` 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
<a name="SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting"></a>

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