Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SUPERkonfigurasi
Anda dapat mengonfigurasi SUPER data Anda untuk skenario tertentu. Bagian berikut memberikan rincian tentang memilih dan menerapkan SUPER konfigurasi yang sesuai berdasarkan persyaratan format data Anda.
Topik
Mode longgar dan ketat untuk SUPER
Saat Anda menanyakan SUPER data, ekspresi jalur mungkin tidak cocok dengan struktur SUPER data yang sebenarnya. Jika Anda mencoba mengakses anggota objek atau elemen array yang tidak ada, Amazon Redshift mengembalikan NULL nilai 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 JSON bidang dengan nama atau atribut bidang huruf besar dan huruf campuran
Ketika nama JSON atribut Anda dalam huruf besar atau huruf campuran, Anda harus dapat menavigasi struktur SUPER tipe 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. Anda juga dapat mengonfigurasi enable_case_sensitive_super_attribute
keTRUE. Dalam hal ini, Anda dapat menggunakan nama atribut huruf besar dan huruf campuran dalam kueri Anda tanpa membungkusnya dengan tanda kutip ganda.
Contoh berikut menggambarkan 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 menggambarkan 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 PARSE fungsi JSON _ untuk mengurai JSON string menjadi SUPER nilai, pembatasan 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 PARSE fungsi JSON _, lihatFungsi 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