Opsi pemetaan kolom - Amazon Redshift

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

Opsi pemetaan kolom

Secara default, COPY menyisipkan nilai ke kolom tabel target dalam urutan yang sama seperti bidang yang terjadi dalam file data. Jika urutan kolom default tidak akan berfungsi, Anda dapat menentukan daftar kolom atau menggunakan ekspresi JsonPath untuk memetakan bidang data sumber ke kolom target.

Daftar kolom

Anda dapat menentukan daftar nama kolom yang dipisahkan koma untuk memuat bidang data sumber ke kolom target tertentu. Kolom dapat dalam urutan apa pun dalam pernyataan COPY, tetapi saat memuat dari file datar, seperti di bucket Amazon S3, urutannya harus sesuai dengan urutan data sumber.

Saat memuat dari tabel Amazon DynamoDB, pesanan tidak masalah. Perintah COPY cocok dengan nama atribut dalam item yang diambil dari tabel DynamoDB ke nama kolom di tabel Amazon Redshift. Untuk informasi selengkapnya, lihat Memuat data dari tabel Amazon DynamoDB

Format untuk daftar kolom adalah sebagai berikut.

COPY tablename (column1 [,column2, ...])

Jika kolom dalam tabel target dihilangkan dari daftar kolom, maka COPY memuat ekspresi kolom targetDEFAULT.

Jika kolom target tidak memiliki default, COPY mencoba memuat NULL.

Jika COPY mencoba untuk menetapkan NULL ke kolom yang didefinisikan sebagai NOT NULL, perintah COPY gagal.

Jika IDENTITY kolom disertakan dalam daftar kolom, maka EXPLICIT_IDS harus juga ditentukan; jika kolom IDENTITY dihilangkan, maka EXPLICIT_IDS tidak dapat ditentukan. Jika tidak ada daftar kolom yang ditentukan, perintah berperilaku seolah-olah daftar kolom lengkap dalam urutan ditentukan, dengan kolom IDENTITY dihilangkan jika EXPLICIT_IDS juga tidak ditentukan.

Jika kolom didefinisikan dengan GENERATED BY DEFAULT AS IDENTITY, maka itu dapat disalin. Nilai dihasilkan atau diperbarui dengan nilai yang Anda berikan. Opsi EXPLICIT_IDS tidak diperlukan. COPY tidak memperbarui tanda air identitas tinggi. Untuk informasi selengkapnya, lihat GENERATED BY DEFAULT AS IDENTITY.

Berkas JSONPaths

Saat memuat dari file data dalam format JSON atau Avro, COPY secara otomatis memetakan elemen data dalam data sumber JSON atau Avro ke kolom di tabel target. Ia melakukannya dengan mencocokkan nama bidang dalam skema Avro dengan nama kolom di tabel target atau daftar kolom.

Dalam beberapa kasus, nama kolom dan nama bidang Anda tidak cocok, atau Anda perlu memetakan ke tingkat yang lebih dalam dalam hierarki data. Dalam kasus ini, Anda dapat menggunakan file JSONPaths untuk secara eksplisit memetakan elemen data JSON atau Avro ke kolom.

Untuk informasi selengkapnya, lihat Berkas JSONPaths.