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 path 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 tertentu ada dalam dokumen JSON. |
|
|
Melebarkan 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 ke string. Output tidak diformat secara cantik (prettified) 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 ke tipe data JSON. Error dikembalikan jika string tidak dalam format JSON yang valid. |
|
|
Memformat string JSON agar lebih mudah dibaca dengan menambahkan jeda baris dan spasi. |
|
|
Mengganti nilai yang sudah ada atau menambahkan nilai baru pada path tertentu dalam dokumen JSON. |
|
|
Menghapus semua bidang atau elemen yang nilainya |
|
|
Mengekstrak string dari string JSON standar untuk sekelompok kunci tertentu. |
|
|
Mengembalikan nama tipe dari nilai JSON. |
|
|
Menghapus tanda kutip dari string JSON. |
|
|
Memeriksa apakah string merupakan JSON yang valid. |
|
|
Mengonversi tipe data kompleks tertentu ke string JSON. |
Catatan penggunaan
Catatan penggunaan
-
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 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. Kolom bertipe JSON juga tidak dapat digunakan sebagai kunciJOIN.
-
-
Presisi data
-
Bagian integer dari NUMBER JSON disimpan sebagai tipe BIGINT. Overflow terjadi jika nilai integer berada di luar rentang BIGINT.
-
Bagian desimal dari NUMBER JSON disimpan sebagai tipe DOUBLE. Kehilangan presisi dapat terjadi saat bagian desimal dikonversi ke tipe DOUBLE.
-
-
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 membaca 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 kompatibilitasnya terlebih dahulu. Saat menggunakan klien odpscmd, perhatikan hal berikut:
-
Upgrade klien ke V0.46.5 atau versi yang lebih baru. Jika tidak, perintah
DESC json_tabletidak dapat dijalankan dan data JSON tidak dapat diunduh menggunakan Tunnel. -
Dalam 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.