

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Catatan penggunaan
<a name="r_CREATE_EXTERNAL_TABLE_usage"></a>

Topik ini berisi catatan penggunaan untuk[CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md). Anda tidak dapat melihat detail untuk tabel Amazon Redshift Spectrum menggunakan sumber daya yang sama dengan yang Anda gunakan untuk tabel Amazon Redshift standar, [PG\_TABLE\_DEF](r_PG_TABLE_DEF.md) [STV\_TBL\_PERM](r_STV_TBL_PERM.md) seperti,, PG\_CLASS, atau information\_schema. Jika alat intelijen bisnis atau analitik Anda tidak mengenali tabel eksternal Redshift Spectrum, konfigurasikan aplikasi Anda ke kueri [SVV\_EXTERNAL\_TABLES](r_SVV_EXTERNAL_TABLES.md) dan. [SVV\_EXTERNAL\_COLUMNS](r_SVV_EXTERNAL_COLUMNS.md)

## BUAT TABEL EKSTERNAL SEBAGAI
<a name="r_CETAS"></a>

Dalam beberapa kasus, Anda mungkin menjalankan perintah CREATE EXTERNAL TABLE AS pada Katalog AWS Glue Data, katalog AWS Lake Formation eksternal, atau metastore Apache Hive. Dalam kasus seperti itu, Anda menggunakan peran AWS Identity and Access Management (IAM) untuk membuat skema eksternal. Peran IAM ini harus memiliki izin baca dan tulis di Amazon S3. 

Jika Anda menggunakan katalog Lake Formation, peran IAM harus memiliki izin untuk membuat tabel di katalog. Dalam hal ini, ia juga harus memiliki izin lokasi danau data pada jalur Amazon S3 target. Peran IAM ini menjadi pemilik AWS Lake Formation tabel baru.

Untuk memastikan bahwa nama file unik, Amazon Redshift menggunakan format berikut untuk nama setiap file yang diunggah ke Amazon S3 secara default.

`{{<date>}}_{{<time>}}_{{<microseconds>}}_{{<query_id>}}_{{<slice-number>}}_part_{{<part-number>}}.{{<format>}}`.

 Contohnya adalah `20200303_004509_810669_1007_0001_part_00.parquet`.

Pertimbangkan hal berikut saat menjalankan perintah CREATE EXTERNAL TABLE AS:
+ Lokasi Amazon S3 harus kosong.
+ Amazon Redshift hanya mendukung format PARQUET dan TEXTFILE saat menggunakan klausa STORADED AS.
+ Anda tidak perlu mendefinisikan daftar definisi kolom. Nama kolom dan tipe data kolom dari tabel eksternal baru diturunkan langsung dari kueri SELECT.
+ Anda tidak perlu menentukan tipe data kolom partisi di klausa PARTITIONED BY. Jika Anda menentukan kunci partisi, nama kolom ini harus ada dalam hasil kueri SELECT. Saat memiliki beberapa kolom partisi, urutannya dalam kueri SELECT tidak masalah. Amazon Redshift menggunakan urutannya yang ditentukan dalam klausa PARTITIONED BY untuk membuat tabel eksternal.
+ Amazon Redshift secara otomatis mempartisi file output ke dalam folder partisi berdasarkan nilai kunci partisi. Secara default, Amazon Redshift menghapus kolom partisi dari file output.
+ Klausa LINES TERMINATED BY 'delimiter' tidak didukung.
+ Klausa ROW FORMAT SERDE 'serde\_name' tidak didukung.
+ Penggunaan file manifes tidak didukung. Dengan demikian, Anda tidak dapat menentukan klausa LOCATION ke file manifes di Amazon S3.
+ Amazon Redshift secara otomatis memperbarui properti tabel 'NumRows' di akhir perintah.
+ Properti tabel 'compression\_type' hanya menerima 'none' atau 'snappy' untuk format file PARQUET.
+ Amazon Redshift tidak mengizinkan klausa LIMIT di kueri SELECT luar. Sebagai gantinya, Anda dapat menggunakan klausa LIMIT bersarang.
+ Anda dapat menggunakan STL\_UNLOAD\_LOG untuk melacak file yang ditulis ke Amazon S3 oleh setiap operasi CREATE EXTERNAL TABLE AS.

## Izin untuk membuat dan menanyakan tabel eksternal
<a name="r_CREATE_EXTERNAL_TABLE_usage-permissions"></a>

Untuk membuat tabel eksternal, pastikan bahwa Anda adalah pemilik skema eksternal atau superuser. Untuk mentransfer kepemilikan skema eksternal, gunakan[ALTER SCHEMA](r_ALTER_SCHEMA.md). Contoh berikut mengubah pemilik `spectrum_schema` skema menjadi`newowner`.

```
alter schema spectrum_schema owner to newowner;
```

Untuk menjalankan kueri Redshift Spectrum, Anda memerlukan izin berikut:
+ Izin penggunaan pada skema 
+ Izin untuk membuat tabel sementara dalam database saat ini 

Contoh berikut memberikan izin penggunaan pada skema `spectrum_schema` ke grup `spectrumusers` pengguna.

```
grant usage on schema spectrum_schema to group spectrumusers;
```

Contoh berikut memberikan izin sementara pada database `spectrumdb` ke grup `spectrumusers` pengguna. 

```
grant temp on database spectrumdb to group spectrumusers;
```

## Pseudokolom
<a name="r_CREATE_EXTERNAL_TABLE_usage-pseudocolumns"></a>

**Secara default, Amazon Redshift membuat tabel eksternal dengan pseudocolumns $path dan $size.** Pilih kolom ini untuk melihat jalur ke file data di Amazon S3 dan ukuran file data untuk setiap baris yang dikembalikan oleh kueri. Nama kolom *$path* dan *$size* harus dibatasi dengan tanda kutip ganda. Klausa *SELECT \** tidak mengembalikan pseudocolumns. Anda harus secara eksplisit menyertakan nama kolom *$path* dan *$size* dalam kueri Anda, seperti yang ditunjukkan contoh berikut.

```
select "$path", "$size"
from spectrum.sales_part
where saledate = '2008-12-01';
```

*Anda dapat menonaktifkan pembuatan pseudocolumns untuk sesi dengan menyetel parameter konfigurasi *spectrum\_enable\_pseudo\_columns* ke false.* 

**penting**  
Memilih *$size* atau *$path menimbulkan* biaya karena Redshift Spectrum memindai file data di Amazon S3 untuk menentukan ukuran kumpulan hasil. Untuk informasi selengkapnya, lihat [Harga Amazon Redshift](https://aws.amazon.com/redshift/pricing/).

## Mengatur opsi penanganan data
<a name="r_CREATE_EXTERNAL_TABLE_usage-data-handling"></a>

Anda dapat mengatur parameter tabel untuk menentukan penanganan masukan untuk data yang ditanyakan di tabel eksternal, termasuk: 
+ Karakter surplus dalam kolom yang berisi data VARCHAR, CHAR, dan string. Untuk informasi selengkapnya, lihat properti tabel eksternal`surplus_char_handling`.
+ Karakter tidak valid dalam kolom yang berisi data VARCHAR, CHAR, dan string. Untuk informasi selengkapnya, lihat properti tabel eksternal`invalid_char_handling`.
+ Karakter pengganti yang akan digunakan saat Anda menentukan REPLACE untuk properti tabel eksternal`invalid_char_handling`.
+ Cast penanganan overflow dalam kolom yang berisi data integer dan desimal. Untuk informasi selengkapnya, lihat properti tabel eksternal`numeric_overflow_handling`.
+ Surplus\_bytes\_handling untuk menentukan penanganan masukan untuk kelebihan byte dalam kolom yang berisi data varbyte. Untuk informasi selengkapnya, lihat properti tabel eksternal`surplus_bytes_handling`.