Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:Lambda ifadeleri

Son Güncelleme:Sep 30, 2026

Log Service, SQL ve Simple Log Service Processing Language (SPL) deyimlerinde lambda ifadeleri tanımlamanıza ve bunları belirli işlevlere geçirerek yeteneklerini genişletmenize olanak tanır. Bu konuda lambda ifadelerinin söz dizimi açıklanmakta ve kullanım örnekleri sunulmaktadır.

Söz dizimi

Lambda ifadesi, filter işlevi, reduce işlevi, transform işlevi, zip_with işlevi veya map_filter işlevi gibi bir üst düzey işlevle birlikte kullanılmalıdır. Lambda ifadesinin söz dizimi aşağıdaki gibidir:

parameter -> expression

Parametre

Açıklama

parameter

Giriş parametreleri için bir tanımlayıcı.

expression

Değerlendirilecek ifade. Çoğu MySQL ifadesi lambda ifadesinde geçerlidir. Örnekler:

x -> x + 1
(x, y) -> x + y
x -> regexp_like(x, 'a+')
x -> x[1] / x[2]
x -> if(x > 0, x, -x)
x -> coalesce(x, 0)
x -> cast(x AS JSON)
x -> x + try(1 / 0)

Örnekler

Example 1: Filter null elements

[5, null, 7, null] dizisinden null olmayan öğeleri döndürür.

  • Sorgu ve analiz deyimi

    * | SELECT filter(array[5, null, 7, null], x -> x is not null)
  • Sonuç [5,7] şeklindedir.

Example 2: Sum array elements

[5, 20, 50] dizisindeki tüm öğelerin toplamını döndürür.

  • Sorgu ve analiz deyimi

    * | SELECT reduce(array[5, 20, 50], 0, (s, x) -> s + x, s -> s)
  • Sonuç 75 değeridir (5+20+50'nin kümülatif toplamı).

Example 3: Filter a map by value

İki diziden bir harita oluşturur ve yalnızca değeri 10'dan büyük olan anahtar-değer çiftlerini korur.

  • Sorgu ve analiz deyimi

    * | SELECT map_filter(map(array['class01', 'class02', 'class03'], array[11, 10, 9]), (k,v) -> v > 10)
  • Sonuç {"class01":11} şeklindedir. İşlev, yalnızca değeri 10'dan büyük olan anahtar-değer çiftlerini korur.

Example 4: Swap paired elements

Bu örnekte, aynı dizindeki iki diziden öğeler eşleştirilir. Ardından, her çiftteki öğelerin yerini değiştirmek için bir lambda ifadesi uygulanarak yeni bir iç içe geçmiş dizi oluşturulur.

  • Sorgu ve analiz deyimi

    * | SELECT zip_with(array[1, 3, 5], array['a', 'b', 'c'], (x, y) -> (y, x))
  • Sonuç [["a",1],["b",3],["c",5]] şeklindedir. Lambda ifadesi, her bir öğe çiftinin sırasını değiştirir ve bunları iç içe geçmiş bir dizi halinde birleştirir.

Example 5: Transform elements with null handling

[5, NULL, 6] dizisindeki her öğeye 1 ekler. Bir öğe null ise önce 0'a dönüştürülür.

  • Sorgu ve analiz deyimi

    * | SELECT transform(array[5, NULL, 6], x -> coalesce(x, 0) + 1)
  • Sonuç [6,1,7] şeklindedir.

Other examples

* | SELECT filter(array[], x -> true)
* | SELECT map_filter(map(array[],array[]), (k, v) -> true)
* | SELECT reduce(array[5, 6, 10, 20], -- calculates arithmetic average: 10.25
              cast(row(0.0, 0) AS row(sum double, count integer)),
              (s, x) -> cast(row(x + s.sum, s.count + 1) AS row(sum double, count integer)),
              s -> if(s.count = 0, null, s.sum / s.count))
* | SELECT reduce(array[2147483647, 1], cast(0 AS bigint), (s, x) -> s + x, s -> s)
* | SELECT reduce(array[5, 20, null, 50], 0, (s, x) -> s + x, s -> s)
* | SELECT transform(array[array[1, null, 2], array[3, null]], a -> filter(a, x -> x is not null))
* | SELECT zip_with(array['a', 'b', 'c'], array['d', 'e', 'f'], (x, y) -> concat(x, y))