View a markdown version of this page

Memuat data lebar tetap dari Amazon S3 - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memuat data lebar tetap dari Amazon S3

Fixed-width file data memiliki panjang yang seragam untuk setiap kolom data. Setiap bidang dalam file data lebar tetap memiliki panjang dan posisi yang persis sama. Untuk data karakter (CHAR dan VARCHAR) dalam file data lebar tetap, Anda harus menyertakan spasi di depan atau di belakang sebagai placeholder agar lebar tetap seragam. Untuk bilangan bulat, Anda harus menggunakan nol di depan sebagai placeholder. File data lebar tetap tidak memiliki pembatas untuk memisahkan kolom.

Untuk memuat file data dengan lebar tetap ke tabel yang ada, GUNAKAN parameter FIXEDWIDTH dalam perintah COPY. Spesifikasi tabel Anda harus sesuai dengan nilai fixedwidth_spec agar data dimuat dengan benar.

Untuk memuat data dengan lebar tetap dari file ke tabel, berikan perintah berikut:

COPY table_name FROM 's3://amzn-s3-demo-bucket/prefix' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' FIXEDWIDTH 'fixedwidth_spec';

Parameter fixedwidth_spec adalah string yang berisi pengidentifikasi untuk setiap kolom dan lebar setiap kolom, dipisahkan oleh titik dua. Pas column:width angan dibatasi oleh koma. Pengidentifikasi dapat berupa apa pun yang Anda pilih: angka, huruf, atau kombinasi keduanya. Pengidentifikasi tidak memiliki hubungan dengan tabel itu sendiri, sehingga spesifikasi harus berisi kolom dalam urutan yang sama dengan tabel.

Dua contoh berikut menunjukkan spesifikasi yang sama, dengan yang pertama menggunakan pengidentifikasi numerik dan yang kedua menggunakan pengidentifikasi string:

'0:3,1:25,2:12,3:2,4:6'
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'

Contoh berikut menunjukkan data sampel dengan lebar tetap yang dapat dimuat ke dalam tabel VENUE menggunakan spesifikasi sebelumnya:

1 Toyota Park Bridgeview IL0 2 Columbus Crew Stadium Columbus OH0 3 RFK Stadium Washington DC0 4 CommunityAmerica Ballpark Kansas City KS0 5 Gillette Stadium Foxborough MA68756

Perintah COPY berikut memuat kumpulan data ini ke dalam tabel VENUE:

COPY venue FROM 's3://amzn-s3-demo-bucket/data/venue_fw.txt' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' FIXEDWIDTH 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';