Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasi SUPER
Anda dapat mengonfigurasi data SUPER Anda untuk skenario tertentu. Bagian berikut memberikan detail tentang memilih dan menerapkan konfigurasi SUPER yang sesuai berdasarkan persyaratan format data Anda.
Topik
Mode longgar dan ketat untuk SUPER
Saat Anda menanyakan data SUPER, ekspresi jalur mungkin tidak cocok dengan struktur data SUPER yang sebenarnya. Jika Anda mencoba mengakses anggota objek atau elemen array yang tidak ada, Amazon Redshift mengembalikan nilai NULL jika kueri dijalankan dalam mode lax default. Jika Anda menjalankan kueri dalam mode ketat, Amazon Redshift mengembalikan kesalahan. Parameter sesi berikut dapat diatur untuk mengatur mode lax on atau off.
Contoh berikut menggunakan parameter sesi untuk mengaktifkan modus longgar.
SET navigate_super_null_on_error=ON; --default lax mode for navigation SET cast_super_null_on_error=ON; --default lax mode for casting SET parse_super_null_on_error=OFF; --default strict mode for ingestion
Mengakses bidang JSON dengan nama atau atribut bidang huruf besar dan huruf campuran
Ketika nama atribut JSON Anda dalam huruf besar atau huruf campuran, Anda harus dapat menavigasi struktur tipe SUPER dengan cara yang peka huruf besar/kecil. Untuk melakukan itu, Anda dapat mengonfigurasi enable_case_sensitive_identifier
ke TRUE dan membungkus nama atribut huruf besar dan huruf campuran dengan tanda kutip ganda.
Contoh berikut mengilustrasikan cara mengatur enable_case_sensitive_identifier
ke data query.
SET enable_case_sensitive_identifier to TRUE; -- Accessing JSON attribute names with uppercase and mixed-case names SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; Name | price ------+------- "TV" | 345 (1 row) RESET enable_case_sensitive_identifier; -- After resetting the above configuration, the following query accessing JSON attribute names with uppercase and mixed-case names should return null (if in lax mode). SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; name | price ------+------- | 345 (1 row)
Opsi penguraian untuk SUPER
Saat Anda menggunakan fungsi JSON_PARSE untuk mengurai string JSON menjadi nilai SUPER, batasan tertentu berlaku:
Nama atribut yang sama tidak dapat muncul di objek yang sama, tetapi dapat muncul di objek bersarang. Opsi
json_parse_dedup_attributes
konfigurasi memungkinkan JSON_PARSE untuk menyimpan hanya kemunculan terakhir dari atribut duplikat alih-alih mengembalikan kesalahan.Nilai string tidak dapat melebihi ukuran varchar maks sistem 65535 byte. Opsi
json_parse_truncate_strings
konfigurasi memungkinkan JSON_PARSE () untuk secara otomatis memotong string yang lebih panjang dari batas ini tanpa mengembalikan kesalahan. Perilaku ini hanya memengaruhi nilai string dan bukan nama atribut.
Untuk informasi selengkapnya tentang fungsi JSON_PARSE, lihat. Fungsi JSON_PARSE
Contoh berikut menunjukkan cara mengatur opsi json_parse_dedup_attributes
konfigurasi ke perilaku default mengembalikan kesalahan untuk atribut duplikat.
SET json_parse_dedup_attributes=OFF; --default behavior of returning error instead of de-duplicating attributes
Contoh berikut menunjukkan cara mengatur opsi json_parse_truncate_strings
konfigurasi untuk perilaku default mengembalikan kesalahan untuk string yang lebih panjang dari batas ini.
SET json_parse_truncate_strings=OFF; --default behavior of returning error instead of truncating strings