全部产品
Search
文档中心

Realtime Compute for Apache Flink:JSON_TUPLE

更新时间:Feb 06, 2026

Topik ini menjelaskan cara menggunakan fungsi JSON_TUPLE untuk mengekstrak nilai dari sebuah string JSON dengan menentukan path.

Batasan

Fungsi JSON_TUPLE hanya didukung di Ververica Runtime (VVR) 3.0.0 dan versi yang lebih baru.

Sintaksis

JSON_TUPLE(str, path1, path2 ..., pathN)     

Parameter input

Parameter

Tipe data

Deskripsi

str

VARCHAR

Sebuah string JSON.

path1 hingga pathN

VARCHAR

Sebuah string yang merepresentasikan path. Jangan sertakan $ di awal.

Contoh

  • Data uji

    Tabel 1. T1

    d(VARCHAR)

    s(VARCHAR)

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    qwe3

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    qwe2

  • Pernyataan uji

    SELECT d, v 
    FROM T1, lateral table(JSON_TUPLE(d, 'qwe', s))
    AS T(v);   
  • Hasil uji

    d(VARCHAR)

    v(VARCHAR)

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    asd

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    asd3

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    asd4

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    asd5

Perubahan perilaku penanganan nilai NULL

Perbandingan perilaku

Asumsikan Anda memanggil fungsi tersebut dalam kueri json_tuple(CAST(NULL AS STRING), 'a', 'b'), di mana parameter input `str` bernilai NULL.

SELECT * FROM (VALUES (1), (2)) AS v(x)
, LATERAL TABLE(
  json_tuple(CAST(NULL AS STRING), 'a', 'b')
) AS T;
-- Setiap baris input menghasilkan dua baris dengan NULL. Total: 4 baris — (1,null), (1,null), (2,null), (2,null)
  • Sebelum VVR 11.0 (perilaku lama)

    • Hasil: Empat baris.

    • Konten: Setiap baris berisi satu kolom NULL.

  • VVR 11.0 dan versi yang lebih baru (perilaku baru)

    • Hasil: Nol baris (himpunan kosong).

    • Konten: Tidak ada.