View a markdown version of this page

Fungsi JSON - Amazon Redshift

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 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.

Fungsi JSON

catatan

Kami menyarankan Anda menggunakan fungsi-fungsi berikut untuk bekerja dengan JSON:

Dengan JSON_PARSE, Anda hanya perlu mengonversi teks JSON ke nilai tipe SUPER sekali saat konsumsi, setelah itu Anda dapat mengoperasikan nilai SUPER. Amazon Redshift mengurai nilai SUPER lebih efisien daripada VARCHAR, yang merupakan output untuk fungsi JSON berbasis teks. Untuk informasi lebih lanjut tentang bekerja dengan tipe data SUPER, bukaSemi-structured data dalam Amazon Redshift.

Ketika Anda perlu menyimpan satu set pasangan kunci-nilai yang relatif kecil, Anda dapat menghemat ruang dengan menyimpan data dalam format JSON. Karena string JSON dapat disimpan dalam satu kolom, menggunakan JSON mungkin lebih efisien daripada menyimpan data Anda dalam format tabular. Misalnya, misalkan Anda memiliki tabel sparse, di mana Anda perlu memiliki banyak kolom untuk sepenuhnya mewakili semua atribut yang mungkin, tetapi sebagian besar nilai kolom adalah NULL untuk baris tertentu atau kolom tertentu. Dengan menggunakan JSON untuk penyimpanan, Anda mungkin dapat menyimpan data untuk satu baris dalam pasangan key:value dalam satu string JSON dan menghilangkan kolom tabel yang jarang terisi.

Selain itu, Anda dapat dengan mudah memodifikasi string JSON untuk menyimpan pasangan kunci:nilai tambahan saat skema JSON Anda berubah tanpa perlu menambahkan kolom ke tabel.

Sebaiknya gunakan JSON dengan hemat. JSON bukanlah pilihan yang baik untuk menyimpan kumpulan data yang lebih besar karena, dengan menyimpan data yang berbeda dalam satu kolom, JSON tidak menggunakan arsitektur penyimpanan kolom Amazon Redshift. Meskipun Amazon Redshift mendukung fungsi JSON di atas kolom CHAR dan VARCHAR, sebaiknya gunakan SUPER untuk memproses data dalam format serialisasi JSON. SUPER menggunakan representasi tanpa skema pasca-parse yang dapat secara efisien menanyakan data hierarkis. Untuk informasi selengkapnya tentang tipe data SUPER, lihatSemi-structured data dalam Amazon Redshift.

JSON menggunakan string teks yang UTF-8 dikodekan, sehingga string JSON dapat disimpan sebagai tipe data CHAR atau VARCHAR.

String JSON harus diformat JSON dengan benar, sesuai dengan aturan berikut:

  • JSON tingkat root dapat berupa objek JSON atau array JSON. Objek JSON adalah kumpulan pasangan key:value yang dipisahkan koma yang dikelilingi oleh kurung kurung keriting.

    Sebagai contoh, {"one":1, "two":2} .

  • Array JSON adalah kumpulan nilai yang dipisahkan koma yang dikelilingi oleh tanda kurung.

    Contohnya adalah sebagai berikut: ["first", {"one":1}, "second", 3, null]

  • Array JSON menggunakan indeks berbasis nol; elemen pertama dalam array berada di posisi 0. Dalam pasangan kunci: nilai JSON, kuncinya adalah string dalam tanda kutip ganda.

  • Nilai JSON dapat berupa salah satu dari berikut ini:

    • Objek JSON

    • array

    • string

      • Diwakili menggunakan tanda kutip ganda

    • number

      • Termasuk bilangan bulat, desimal, dan float

    • boolean

    • null

  • Objek kosong dan array kosong adalah nilai JSON yang valid.

  • Bidang JSON peka huruf besar/kecil.

  • Ruang putih antara elemen struktural JSON (seperti{ }, [ ]) diabaikan.

Fungsi Amazon Redshift JSON dan perintah Amazon Redshift COPY menggunakan metode yang sama untuk bekerja dengan JSON-formatted data. Untuk informasi selengkapnya tentang bekerja dengan JSON, lihat SALIN dari format JSON