Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:JSON_TUPLE

Son Güncelleme:Oct 04, 2026

JSON_TUPLE , bir JSON dizesinden tek geçişte birden fazla değeri ayıklayan tablo döndüren bir işlevdir. Çağrı başına tek değer döndüren GET_JSON_OBJECT veya JSON_VALUE gibi skaler işlevlerin aksine, JSON_TUPLE bir veya daha fazla yol bağımsız değişkeni kabul eder ve her yol bağımsız değişkeni için bir çıktı satırı üretir; bu satırları sonuç kümenize genişletmek amacıyla bir LATERAL TABLE birleşimi ile kullanın.

Sürüm gereksinimi

Ververica Runtime (VVR) 3.0.0+

Söz dizimi

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

Parametreler


Parametre


Tür


Gerekli


Açıklama


str


VARCHAR


Evet


Değerlerin ayıklanacağı JSON dizesi.


path1, path2, ..., pathN


VARCHAR


Evet


str içindeki ayıklanacak değerleri tanımlayan bir veya daha fazla anahtar yolu. Standart JSONPath gösteriminde gereken baştaki $ karakterini dahil etmeyin. Yol bağımsız değişkenleri dize değişmezleri veya sütun başvuruları olabilir.

Kullanım notları

  • Yol söz dizimi standart JSONPath gösterimini takip etmez; standart JSONPath'in gerektirdiği baştaki $ karakterini atlayın.

  • Yol bağımsız değişkenleri dize değişmezleri ('myKey') veya çalışma zamanında VARCHAR olarak çözümlenen sütun başvuruları olabilir.

  • Bir yol giriş JSON'unda bulunamazsa ilgili çıktı sütunu NULL olur.

  • str NULL ise davranış VVR sürümüne bağlıdır. Bkz. NULL değeri işleme davranışı değişikliği.

Örnekler

  • Örnek veriler

    Tablo T1. T1


    d (VARCHAR)


    s (VARCHAR)


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


    qwe3


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


    qwe2

  • Örnek

    Aşağıdaki sorgu, d sütunundan satır başına iki değer ayıklar: değişmez anahtar 'qwe' değerini ve sütun başvurusu olan s sütunu tarafından adlandırılan anahtarın değerini. İki yol bağımsız değişkeni bulunduğundan, JSON_TUPLE her giriş satırı için iki çıktı satırı üretir.

    SELECT d, v
    FROM T1, lateral table(JSON_TUPLE(d, 'qwe', s))
    AS T(v);
  • Çıktı


    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

NULL değeri işleme: Davranış değişikliği

str NULL olduğunda JSON_TUPLE işlevinin davranışı VVR sürümleri arasında değişmiştir. İşiniz VVR 11.0 öncesinde geliştirildiyse ve eski davranışa dayanıyorsa aşağıdaki davranış karşılaştırmasını inceleyin.

Davranış karşılaştırması

str bağımsız değişkeninin NULL olduğu aşağıdaki sorguyu varsayalım:

SELECT * FROM (VALUES (1), (2)) AS v(x)
, LATERAL TABLE(
  json_tuple(CAST(NULL AS STRING), 'a', 'b')
) AS T;
-- Each input row returns two rows with NULL. Total: 4 rows — (1,null), (1,null), (2,null), (2,null)


VVR sürümü


Sonuç


İçerik


VVR 11.0 öncesi (eski davranış)


Toplam dört satır (giriş satırı başına iki, yol bağımsız değişkeni başına bir)


Her satır bir NULL sütun içerir


VVR 11.0+ (yeni davranış)


Sıfır satır (boş küme)


Yok