Konfigurasi SUPER - Amazon Redshift

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

Konfigurasi SUPER

Perhatikan pertimbangan konfigurasi SUPER berikut saat Anda menggunakan tipe data Amazon Redshift SUPER dan PartiQL.

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 mengkonfigurasi enable_case_sensitive_identifier ke TRUE dan membungkus nama atribut huruf besar dan mixedcase dengan tanda kutip ganda. Anda juga dapat mengkonfigurasi enable_case_sensitive_super_attribute ke TRUE. Dalam hal ini, Anda dapat menggunakan nama atribut huruf besar dan huruf campuran dalam kueri Anda tanpa membungkusnya 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 mixedcase 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 mixedcase 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)

Contoh berikut mengilustrasikan cara mengatur enable_case_sensitive_super_attribute ke data query.

SET enable_case_sensitive_super_attribute to TRUE; -- Accessing JSON attribute names with uppercase and mixedcase 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_super_attribute; -- After resetting enable_case_sensitive_super_attribute, the query now returns NULL for ITEMS.Name (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