MaxCompute mendukung empat tipe data kompleks: ARRAY, MAP, STRUCT, dan JSON. Topik ini menjelaskan fungsi dan fitur tipe data JSON.
Indeks
Fungsi | Fitur |
Mengembalikan tipe ARRAY, MAP, atau STRUCT dari string JSON berdasarkan format output yang ditentukan. | |
Mengekstrak string dari string JSON menggunakan jalur yang ditentukan. | |
Mengubah objek JSON, yang dapat kosong, menjadi array JSON yang berisi objek tersebut. | |
Memeriksa apakah dokumen JSON berisi elemen JSON tertentu. | |
Memeriksa apakah JSONPath yang ditentukan ada dalam dokumen JSON. | |
Memperluas setiap elemen dalam array JSON atau objek JSON menjadi beberapa baris. | |
Mengekstrak data dari string JSON atau tipe data JSON berdasarkan JSONPath yang ditentukan. | |
Mengonversi tipe data JSON menjadi string. Output tidak diformat secara default. | |
Menyisipkan nilai JSON pada posisi tertentu dalam dokumen JSON. | |
Mengembalikan panjang data JSON pada path yang ditentukan. | |
Menghasilkan objek JSON dari pasangan kunci-nilai. | |
Mengonversi string menjadi tipe data JSON. Kesalahan akan dikembalikan jika string tidak dalam format JSON yang valid. | |
Memformat string JSON agar mudah dibaca dengan menambahkan jeda baris dan spasi. | |
Mengganti nilai yang ada atau menambahkan nilai baru pada jalur tertentu dalam dokumen JSON. | |
Menghapus semua bidang atau elemen dengan nilai | |
Mengekstrak string dari string JSON standar untuk sekelompok kunci yang ditentukan. | |
Mengembalikan nama tipe dari nilai JSON. | |
Menghapus tanda kutip dari string JSON. | |
Memeriksa apakah string adalah JSON yang valid. | |
Mengonversi tipe data kompleks yang ditentukan menjadi string JSON. |
Penerapan
Persyaratan versi SDK
Hanya mendukung Java SDK V0.44.0 dan versi yang lebih baru.
Hanya mendukung PyODPS V0.11.4.1 dan versi yang lebih baru.
Batasan operasi tabel
Kolom bertipe JSON tidak dapat ditambahkan ke tabel.
Tabel terklaster (clustered tables) tidak didukung.
Tabel bertipe Delta Table tidak didukung.
Batasan operasi SQL
Operasi perbandingan pada tipe JSON tidak didukung.
Klausa
ORDER BYatauGROUP BYtidak dapat digunakan pada tipe JSON, dan kolom bertipe JSON tidak dapat digunakan sebagai kunciJOIN.
Presisi data
Bagian integer dari NUMBER JSON disimpan sebagai tipe BIGINT. Nilai integer di luar rentang BIGINT akan menyebabkan overflow.
Bagian desimal dari NUMBER JSON disimpan sebagai tipe DOUBLE. Konversi ke tipe DOUBLE dapat menyebabkan kehilangan presisi.
Batasan karakter: Karakter Unicode
\u0000tidak didukung dalam string yang digunakan untuk menghasilkan data JSON.Kompatibilitas engine: Tipe data JSON tidak dapat dibaca jika Anda menggunakan engine lain, seperti Hologres, untuk mengakses data dari tabel.
UDF Java dan UDF Python tidak mendukung tipe JSON.
Tipe data JSON dapat bersarang hingga kedalaman 20 level.
Alat pengembangan
Alat pengembangan yang didukung meliputi klien MaxCompute (odpscmd), MaxCompute Studio, dan DataWorks. Ekosistem eksternal seperti Dataphin tidak didukung. Jika Anda ingin menggunakan tipe data JSON dengan sistem eksternal, pastikan terlebih dahulu kompatibilitasnya. Saat menggunakan klien odpscmd, perhatikan hal berikut:
Anda harus memperbarui klien ke versi V0.46.5 atau lebih baru. Jika tidak, perintah
DESC json_tabletidak dapat dijalankan dan data JSON tidak dapat diunduh melalui Tunnel.Pada file
conf\odps_config.inidi path instalasi klien, atur parameteruse_instance_tunnelkefalse. Jika tidak, kueri akan gagal.
Referensi
Untuk informasi selengkapnya tentang tipe data JSON, lihat Tipe data JSON.