

 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 ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/) 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.

# Pemecahan masalah kueri di Amazon Redshift Spectrum
<a name="c-spectrum-troubleshooting"></a>



Topik ini adalah referensi untuk masalah umum yang mungkin Anda temui dengan kueri Amazon Redshift Spectrum. 

Untuk melihat kesalahan yang dihasilkan oleh kueri Redshift Spectrum, kueri tabel [SVL\_S3LOG](r_SVL_S3LOG.md) sistem.

**Topics**
+ [Percobaan ulang terlampaui](#spectrum-troubleshooting-retries-exceeded)
+ [Akses dibatasi](#spectrum-troubleshooting-access-throttled)
+ [Batas sumber daya terlampaui](#spectrum-troubleshooting-resource-limit-exceeded)
+ [Tidak ada baris yang dikembalikan untuk tabel yang dipartisi](#spectrum-troubleshooting-no-rows-partitioned-table)
+ [Tidak ada kesalahan resmi](#spectrum-troubleshooting-not-authorized-error)
+ [Format data yang tidak kompatibel](#spectrum-troubleshooting-incompatible-data-format)
+ [Kesalahan sintaks saat menggunakan Hive DDL di Amazon Redshift](#spectrum-troubleshooting-syntax-error-using-hive-ddl)
+ [Izin untuk membuat tabel sementara](#spectrum-troubleshooting-permission-to-create-temp-tables)
+ [Rentang tidak valid](#spectrum-troubleshooting-invalid-range)
+ [Nomor versi Parket tidak valid](#spectrum-troubleshooting-invalid-parquet-version)
+ [Bidang wajib hilang dari informasi partisi eksternal](#spectrum-troubleshooting-required-field-missing)

## Percobaan ulang terlampaui
<a name="spectrum-troubleshooting-retries-exceeded"></a>

Jika permintaan Amazon Redshift Spectrum habis, permintaan tersebut dibatalkan dan dikirim kembali. Setelah lima percobaan ulang gagal, kueri gagal dengan kesalahan berikut.

```
error:  Spectrum Scan Error: Retries exceeded
```

Kemungkinan penyebabnya meliputi: 
+ Ukuran file besar (lebih besar dari 1 GB). Periksa ukuran file Anda di Amazon S3 dan cari file besar dan ukuran file miring. Pisahkan file besar menjadi file yang lebih kecil, antara 100 MB dan 1 GB. Cobalah untuk membuat file dengan ukuran yang sama. 
+ Throughput jaringan lambat. Coba kueri Anda nanti. 

## Akses dibatasi
<a name="spectrum-troubleshooting-access-throttled"></a>

Amazon Redshift Spectrum tunduk pada kuota AWS layanan lain. Di bawah penggunaan tinggi, permintaan Redshift Spectrum mungkin diperlukan untuk melambat, mengakibatkan kesalahan berikut.

```
error:  Spectrum Scan Error: Access throttled
```

Dua jenis pelambatan dapat terjadi:
+ Akses dibatasi oleh Amazon S3.
+ Akses dibatasi oleh AWS KMS.

Konteks kesalahan memberikan detail lebih lanjut tentang jenis pelambatan. Berikut ini, Anda dapat menemukan penyebab dan kemungkinan resolusi untuk pelambatan ini.

### Akses dibatasi oleh Amazon S3
<a name="spectrum-troubleshooting-access-throttled-s3"></a>

Amazon S3 mungkin membatasi permintaan Redshift Spectrum jika tingkat permintaan baca pada [ awalan ](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#keyprefix) terlalu tinggi. Untuk informasi tentang tingkat GET/HEAD permintaan yang dapat Anda capai di Amazon S3, lihat Meng [ optimalkan Kinerja Amazon S3 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html) di Panduan Pengguna Layanan Penyimpanan Sederhana * Amazon. * Tingkat GET/HEAD permintaan Amazon S3 memperhitungkan semua GET/HEAD permintaan pada awalan sehingga aplikasi berbeda yang mengakses awalan yang sama berbagi tingkat permintaan total.

Jika permintaan Redshift Spectrum Anda sering dibatasi oleh Amazon S3, kurangi jumlah GET/HEAD permintaan Amazon S3 yang dibuat Redshift Spectrum ke Amazon S3. Untuk melakukan ini, coba gabungkan file kecil menjadi file yang lebih besar. Sebaiknya gunakan ukuran file 64 MB atau lebih besar.

Juga pertimbangkan untuk mempartisi tabel Redshift Spectrum Anda untuk mendapatkan manfaat dari pemfilteran awal dan untuk mengurangi jumlah file yang diakses di Amazon S3. Untuk informasi selengkapnya, lihat [Partisi tabel eksternal Redshift Spectrum](c-spectrum-external-tables.md#c-spectrum-external-tables-partitioning). 

### Akses dibatasi oleh AWS KMS
<a name="spectrum-troubleshooting-access-throttled-kms"></a>

Jika Anda menyimpan data di Amazon S3 menggunakan enkripsi sisi server (SSE-S3 atau SSE-KMS), Amazon S3 memanggil operasi API AWS KMS untuk setiap file yang diakses Redshift Spectrum. Permintaan ini diperhitungkan dalam kuota operasi kriptografi Anda; untuk informasi selengkapnya, lihat Kuota [AWS KMS Permintaan. ](https://docs.aws.amazon.com/kms/latest/developerguide/requests-per-second.html) Untuk informasi selengkapnya tentang SSE-S3 dan SSE-KMS, lihat Mel [ indungi Data Menggunakan Server-Side Enkripsi ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) dan Mel [ indungi Data Menggunakan Server-Side Enkripsi dengan kunci KMS yang Disimpan AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) di Panduan Pengguna Layanan Penyimpanan Sederhana * Amazon. *

Langkah pertama untuk mengurangi jumlah permintaan yang dibuat oleh Redshift Spectrum AWS KMS adalah mengurangi jumlah file yang diakses. Untuk melakukan ini, coba gabungkan file kecil menjadi file yang lebih besar. Sebaiknya gunakan ukuran file 64 MB atau lebih besar.

Jika permintaan Redshift Spectrum Anda sering dibatasi AWS KMS, pertimbangkan untuk meminta kenaikan kuota untuk tingkat AWS KMS permintaan Anda untuk operasi kriptografi. Untuk meminta kenaikan kuota, lihat [AWS Batas Layanan ](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) di *Referensi Umum Amazon Web Services*. 

## Batas sumber daya terlampaui
<a name="spectrum-troubleshooting-resource-limit-exceeded"></a>

Redshift Spectrum memberlakukan batas atas pada jumlah memori yang dapat digunakan permintaan. Permintaan Redshift Spectrum yang membutuhkan lebih banyak memori gagal, mengakibatkan kesalahan berikut.

```
error:  Spectrum Scan Error: Resource limit exceeded
```

Ada dua alasan umum yang dapat menyebabkan permintaan Redshift Spectrum melebihi tunjangan memorinya:
+ Redshift Spectrum memproses sejumlah besar data yang tidak dapat dibagi menjadi potongan yang lebih kecil.
+ Langkah agregasi besar diproses oleh Redshift Spectrum.

Sebaiknya gunakan format file yang mendukung pembacaan paralel dengan ukuran split 128 MB atau kurang. Lihat [File data untuk kueri di Amazon Redshift Spectrum](c-spectrum-data-files.md) format file yang didukung dan pedoman umum untuk pembuatan file data. Saat menggunakan format file atau algoritma kompresi yang tidak mendukung pembacaan paralel, sebaiknya jaga ukuran file antara 64 MB dan 128 MB.

## Tidak ada baris yang dikembalikan untuk tabel yang dipartisi
<a name="spectrum-troubleshooting-no-rows-partitioned-table"></a>

Jika kueri Anda mengembalikan nol baris dari tabel eksternal yang dipartisi, periksa apakah partisi telah ditambahkan untuk tabel eksternal ini. Redshift Spectrum hanya memindai file di lokasi Amazon S3 yang telah ditambahkan secara eksplisit menggunakan`ALTER TABLE … ADD PARTITION`. Kueri [SVV\_EXTERNAL\_PARTITIONS](r_SVV_EXTERNAL_PARTITIONS.md) tampilan untuk menemukan partisi yang ada. Jalan `ALTER TABLE … ADD PARTITION` kan untuk setiap partisi yang hilang. 

## Tidak ada kesalahan resmi
<a name="spectrum-troubleshooting-not-authorized-error"></a>

Verifikasi bahwa peran IAM untuk cluster memungkinkan akses ke objek file Amazon S3. Jika database eksternal Anda ada di Amazon Athena, verifikasi bahwa peran IAM memungkinkan akses ke sumber daya Athena. Untuk informasi selengkapnya, lihat [Kebijakan IAM untuk Amazon Redshift Spectrum](c-spectrum-iam-policies.md).

## Format data yang tidak kompatibel
<a name="spectrum-troubleshooting-incompatible-data-format"></a>

Untuk format file kolumnar, seperti Apache Parquet, tipe kolom disematkan dengan data. Jenis kolom dalam definisi CREATE EXTERNAL TABLE harus sesuai dengan jenis kolom file data. Jika ada ketidakcocokan, Anda menerima kesalahan yang mirip dengan berikut ini:

```
File 'https://s3bucket/location/file has an incompatible Parquet schema
for column ‘s3://s3bucket/location.col1'. Column type: VARCHAR, Par
```

Pesan kesalahan mungkin terpotong karena batas panjang pesan. Untuk mengambil pesan kesalahan lengkap, termasuk nama kolom dan jenis kolom, kueri [SVL\_S3LOG](r_SVL_S3LOG.md) tampilan sistem.

Contoh berikut menanyakan SVL\_S3LOG untuk kueri terakhir yang diselesaikan.

```
select message 
from svl_s3log 
where query = pg_last_query_id() 
order by query,segment,slice;
```

Berikut ini adalah contoh hasil yang menunjukkan pesan kesalahan lengkap.

```
                            message
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Spectrum Scan Error. File 'https://s3bucket/location/file has an incompatible
Parquet schema for column ' s3bucket/location.col1'. 
Column type: VARCHAR, Parquet schema:\noptional int64 l_orderkey [i:0 d:1 r:0]\n
```

Untuk memperbaiki kesalahan, ubah tabel eksternal agar sesuai dengan jenis kolom file Parquet. 

## Kesalahan sintaks saat menggunakan Hive DDL di Amazon Redshift
<a name="spectrum-troubleshooting-syntax-error-using-hive-ddl"></a>

Amazon Redshift mendukung bahasa definisi data (DDL) untuk CREATE EXTERNAL TABLE yang mirip dengan Hive DDL. Namun, kedua jenis DDL tidak selalu persis sama. Jika Anda menyalin Hive DDL untuk membuat atau mengubah tabel eksternal Amazon Redshift, Anda mungkin mengalami kesalahan sintaks. Berikut ini adalah contoh perbedaan antara Amazon Redshift dan Hive DDL: 
+ Amazon Redshift memerlukan tanda kutip tunggal (') di mana Hive DDL mendukung tanda kutip ganda (“).
+ Amazon Redshift tidak mendukung tipe data STRING. Gunakan VARCHAR sebagai gantinya.

## Izin untuk membuat tabel sementara
<a name="spectrum-troubleshooting-permission-to-create-temp-tables"></a>

Untuk menjalankan kueri Redshift Spectrum, pengguna database harus memiliki izin untuk membuat tabel sementara di database. Contoh berikut memberikan izin sementara pada database `spectrumdb` ke grup `spectrumusers` pengguna. 

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

Untuk informasi selengkapnya, lihat [HIBAH](r_GRANT.md).

## Rentang tidak valid
<a name="spectrum-troubleshooting-invalid-range"></a>

Redshift Spectrum mengharapkan bahwa file di Amazon S3 yang termasuk dalam tabel eksternal tidak diganti selama kueri. Jika ini terjadi, itu dapat mengakibatkan kesalahan berikut.

```
Error: HTTP response error code: 416 Message: InvalidRange The requested range is not satisfiable
```

Untuk menghindari kesalahan, pastikan file Amazon S3 tidak diganti saat ditanya dengan Redshift Spectrum.

## Nomor versi Parket tidak valid
<a name="spectrum-troubleshooting-invalid-parquet-version"></a>

Redshift Spectrum memeriksa metadata dari setiap file Apache Parquet yang diaksesnya. Jika pemeriksaan gagal, itu dapat mengakibatkan kesalahan yang mirip dengan berikut ini:

```
File 'https://s3.{{region}}.amazonaws.com/s3bucket/location/file has an invalid version number
```

Ada dua alasan umum yang dapat menyebabkan pemeriksaan gagal:
+ File Parquet telah diganti selama kueri (lihat[Rentang tidak valid](#spectrum-troubleshooting-invalid-range)).
+ File Parquet rusak.

## Bidang wajib hilang dari informasi partisi eksternal
<a name="spectrum-troubleshooting-required-field-missing"></a>

Saat Anda mencoba menambahkan partisi ke tabel eksternal di katalog eksternal, Anda mungkin mendapatkan kesalahan berikut:

```
Error: The required field (<field_name>) is missing from the external partition information. Add missing field in partition and retry. Partition location: <partition_path>
```

Kesalahan ini berarti bahwa salah satu partisi di tabel eksternal yang digunakan dalam kueri Anda memiliki informasi metadata partisi yang hilang. Ini dapat terjadi dalam kasus-kasus berikut:
+  Anda menambahkan partisi ke tabel eksternal di katalog eksternal, seperti AWS Glue Data Catalog, dengan informasi paruh. 
+  Anda menanyakan tabel yang dipartisi di Amazon Redshift saat menambahkan atau memperbarui partisi untuk tabel yang sesuai di katalog eksternal, seperti. AWS Glue Data Catalog

Berikut ini adalah bidang yang harus diisi saat mengambil partisi dari: AWS Glue Data Catalog
+  StorageDescriptor 
  +  InputFormat 
  +  OutputFormat 
  +  SerDeInfo 
+  Nilai 

Anda dapat menanyakan [SVV\_EXTERNAL\_PARTITIONS](r_SVV_EXTERNAL_PARTITIONS.md) untuk menemukan partisi yang ada dan melihat detail di bidangnya.

Untuk daftar lengkap bidang AWS Glue Data Catalog partisi, lihat [ Partisi ](https://docs.aws.amazon.com/glue/latest/webapi/API_Partition.html) di Refer *AWS Glue ensi API Web*.