All Products
Search
Document Center

Simple Log Service:Fungsi dan operator array

Last Updated:Jun 22, 2026

Topik ini menjelaskan sintaks dasar dan contoh fungsi serta operator array.

Log Service mendukung fungsi dan operator array berikut.

Penting Jika Anda ingin menggunakan string dalam pernyataan analitik, Anda harus membungkus string tersebut dengan tanda kutip tunggal (''). String yang tidak dibungkus atau dibungkus dengan tanda kutip ganda ("") menunjukkan nama field atau nama kolom. Misalnya, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan field log status.

Nama fungsi

Sintaks

Deskripsi

SQL

SPL

operator subscript

[x]

Mengembalikan elemen pada indeks x dalam sebuah array. Ini setara dengan fungsi element_at.

×

fungsi array_agg

array_agg(x)

Mengembalikan array dari semua nilai dalam x.

×

fungsi array_distinct

array_distinct(x)

Menghapus elemen duplikat dari sebuah array.

fungsi array_except

array_except(x, y)

Mengembalikan selisih antara dua array.

fungsi array_intersect

array_intersect(x, y)

Mengembalikan irisan dua array.

fungsi array_join

array_join(x, delimiter)

Menggabungkan elemen-elemen array menjadi sebuah string, menggunakan delimiter yang ditentukan. Elemen null diabaikan.

Penting

Fungsi array_join mengembalikan hasil hingga 1 KB. Data yang melebihi batas tersebut akan dipotong.

array_join(x, delimiter, null_replacement)

Menggabungkan elemen-elemen array menjadi sebuah string, menggunakan delimiter yang ditentukan. Elemen null diganti dengan nilai null_replacement.

Penting

Fungsi array_join mengembalikan hasil hingga 1 KB. Data yang melebihi batas tersebut akan dipotong.

fungsi array_max

array_max(x)

Mengembalikan nilai maksimum dalam sebuah array.

fungsi array_min

array_min(x)

Mengembalikan nilai minimum dalam sebuah array.

fungsi array_position

array_position(x, element)

Mengembalikan indeks berbasis 1 dari elemen yang ditentukan. Mengembalikan 0 jika elemen tidak ada.

fungsi array_remove

array_remove(x, element)

Menghapus elemen yang ditentukan dari sebuah array.

fungsi array_sort

array_sort(x)

Mengurutkan elemen-elemen array secara ascending. Elemen null ditempatkan di akhir.

fungsi array_transpose

array_transpose(x)

Memutar balik array dua dimensi (array dari array) dengan menukar baris dan kolomnya.

×

fungsi array_union

array_union(x, y)

Mengembalikan gabungan dua array.

×

fungsi cardinality

cardinality(x)

Mengembalikan jumlah elemen dalam sebuah array.

fungsi concat

concat(x, y…)

Menggabungkan beberapa array menjadi satu array.

×

fungsi contains

contains(x, element)

Mengembalikan true jika array berisi elemen yang ditentukan, dan false jika tidak.

×

fungsi element_at

element_at(x, y)

Mengembalikan elemen pada indeks y dalam sebuah array.

×

fungsi filter

filter(x, lambda_expression)

Menyaring array menggunakan ekspresi lambda, hanya mengembalikan elemen yang memenuhi ekspresi tersebut.

fungsi flatten

flatten(x)

Mengonversi array dua dimensi menjadi array satu dimensi.

×

fungsi reduce

reduce(x, lambda_expression)

Mereduksi array menjadi satu nilai dengan menerapkan ekspresi lambda pada elemen-elemennya.

fungsi reverse

reverse(x)

Membalik urutan elemen dalam sebuah array.

fungsi sequence

sequence(x, y)

Mengembalikan array nilai berurutan yang meningkat dalam rentang tertentu. Langkah default adalah 1.

sequence(x, y, step)

Mengembalikan array nilai berurutan yang meningkat dalam rentang tertentu, dengan langkah khusus.

fungsi shuffle

shuffle(x)

Mengacak elemen-elemen dalam sebuah array.

fungsi slice

slice(x, start, length)

Mengembalikan subset dari sebuah array.

fungsi transform

transform(x, lambda_expression)

Mentransformasi setiap elemen dalam array menggunakan ekspresi lambda.

fungsi zip

zip(x, y...)

Menggabungkan beberapa array menjadi satu array dua dimensi. Elemen pada indeks yang sama dari array input membentuk subarray baru.

fungsi zip_with

zip_with(x, y, lambda_expression)

Menggabungkan dua array menjadi satu array dengan menerapkan ekspresi lambda pada setiap pasangan elemen yang bersesuaian.

×

Operator subscript

Operator subscript mengembalikan elemen pada indeks x dalam sebuah array. Operator ini setara dengan fungsi element_at.

Sintaks

[x]

Parameter

Parameter

Deskripsi

x

Indeks berbasis 1 dari elemen yang akan diambil dari array. Nilainya harus bertipe bigint.

Tipe nilai kembali

Nilai kembali memiliki tipe data yang sama dengan elemen array.

Contoh

Contoh ini mengembalikan elemen pertama dari field number.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri

    * | SELECT cast(json_parse(number) as array(bigint)) [1]
  • Kueri mengembalikan 49.

Fungsi array_agg

Fungsi array_agg mengembalikan array dari semua nilai dalam x.

Sintaks

array_agg (x)

Parameter

Parameter

Deskripsi

x

Parameter dapat berupa tipe data apa pun.

Tipe nilai kembali

array

Contoh

Mengembalikan nilai field status sebagai array.

  • Pernyataan kueri

    * | SELECT array_agg(status) AS array
  • Hasil kueri: Field array berisi array kode status HTTP (seperti 200, 202, 204, 303, 304, 401, 402, dan 501).

Fungsi array_distinct

Menghapus elemen duplikat dari sebuah array.

Sintaks

array_distinct(x)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

Tipe nilai kembali

array

Contoh

Menghapus elemen duplikat dari field number.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri

    *| SELECT array_distinct(cast(json_parse(number) as array(bigint)))
  • Hasil kueri adalah [49,50,45,47]. Elemen duplikat 50 dihapus dari array asli.

Fungsi array_except

Fungsi array_except mengembalikan selisih antara dua array.

Sintaks

array_except(x, y)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

y

Harus berupa array.

Tipe nilai kembali

array

Contoh

Menghitung selisih antara array [1,2,3,4,5] dan [1,3,5,7].

  • Pernyataan kueri

    * | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
  • Kueri mengembalikan [2,4].

Fungsi array_intersect

Menghitung irisan dua array.

Sintaks

array_intersect(x, y)

Parameter

Parameter

Deskripsi

x

Array.

y

Array.

Tipe nilai kembali

array

Contoh

Menghitung irisan array [1,2,3,4,5] dan [1,3,5,7].

  • Pernyataan kueri dan analisis

    * | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
  • Hasil kueri dan analisis adalah [1,3,5].

Fungsi array_join

Menggabungkan elemen-elemen array menjadi sebuah string menggunakan delimiter yang ditentukan.

Sintaks

  • Menggabungkan elemen-elemen array menjadi sebuah string menggunakan delimiter. Elemen null diabaikan.

    array_join(x, delimiter)
  • Menggabungkan elemen-elemen array menjadi sebuah string menggunakan delimiter. Mengganti elemen null dengan null_replacement.

    array_join(x, delimiter,null_replacement)

Parameter

Parameter

Deskripsi

x

Array input.

delimiter

String yang digunakan untuk memisahkan elemen-elemen array.

null_replacement

String yang digunakan untuk mengganti elemen null.

Tipe nilai kembali

varchar.

Contoh

Contoh ini menggabungkan elemen-elemen array [null, 'Log', 'Service'] menjadi sebuah string menggunakan spasi sebagai delimiter. Elemen null diganti dengan 'Alicloud'.

  • Kueri

    * | SELECT array_join(array[null,'Log','Service'],' ','Alicloud')
  • Hasil: Nilai kolom _col0 adalah Alicloud Log Service.

Fungsi array_max

Mengembalikan nilai maksimum dalam sebuah array.

Sintaks

array_max(x) 

Parameter

Parameter

Deskripsi

x

Input harus berupa array.

Penting

Jika array berisi elemen null, fungsi mengembalikan null.

Tipe nilai kembali

Nilai yang dikembalikan memiliki tipe data yang sama dengan elemen array.

Contoh

Contoh ini mencari nilai maksimum dalam array angka.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri

    *| SELECT array_max(try_cast(json_parse(number) as array(bigint))) AS max_number
  • Hasil kueri: Nilai max_number adalah 50.

Fungsi array_min

Mengembalikan nilai minimum dalam sebuah array.

Sintaks

array_min(x) 

Parameter

Parameter

Deskripsi

x

Array input.

Penting

Jika array berisi elemen null, fungsi mengembalikan null.

Tipe nilai kembali

Nilai kembali memiliki tipe data yang sama dengan elemen array.

Contoh

Mencari nilai minimum dalam array angka.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri

    *| SELECT array_min(try_cast(json_parse(number) as array(bigint))) AS min_number
  • Kueri mengembalikan 45.

Fungsi array_position

Fungsi array_position mengembalikan indeks berbasis 1 dari elemen dalam array. Fungsi ini mengembalikan 0 jika elemen tidak ditemukan.

Sintaks

array_position(x, element)

Parameter

Parameter

Deskripsi

x

Array yang akan dicari.

element

Elemen yang akan dicari dalam array.

Catatan

Jika elemen yang dicari adalah null, fungsi mengembalikan null.

Tipe nilai kembali

Mengembalikan nilai bigint.

Contoh

Mencari indeks 45 dalam array [49,45,47].

  • Pernyataan kueri dan analisis

    * | SELECT array_position(array[49,45,47],45)
  • Hasilnya adalah 2, yang menunjukkan bahwa elemen 45 berada pada indeks 2 dalam array.

Fungsi array_remove

Fungsi array_remove menghapus semua kemunculan elemen yang ditentukan dari sebuah array.

Sintaks

array_remove(x, element)

Parameter

Parameter

Deskripsi

x

Array input.

element

Elemen yang akan dihapus dari array.

Catatan

Jika element adalah null, fungsi mengembalikan null.

Tipe nilai kembali

Mengembalikan array.

Contoh

Menghapus 45 dari array [49,45,47].

  • Pernyataan kueri dan analisis

    * | SELECT array_remove(array[49,45,47],45)
  • Hasilnya adalah [49,47].

Fungsi array_sort

Fungsi array_sort mengurutkan elemen-elemen array secara ascending, menempatkan elemen null di akhir.

Sintaks

array_sort(x)

Parameter

Parameter

Deskripsi

x

Array yang akan diurutkan.

Tipe nilai kembali

Mengembalikan array.

Contoh

Mengurutkan array ['b', 'd', null, 'c', 'a'] secara ascending.

  • Pernyataan kueri

    * | SELECT array_sort(array['b','d',null,'c','a'])
  • Hasilnya adalah ["a","b","c","d",null]. Elemen-elemen diurutkan secara ascending berdasarkan abjad, dan nilai null ditempatkan di akhir.

Fungsi array_transpose

Fungsi array_transpose memutar balik array dua dimensi (matriks). Fungsi ini membuat array dua dimensi baru dengan mengelompokkan elemen yang memiliki indeks yang sama di seluruh array dalam.

Sintaks

array_transpose(x)

Parameter

Parameter

Deskripsi

x

Input berupa array dua dimensi bertipe array(double).

Tipe nilai kembali

array(double)

Contoh

Fungsi ini mengelompokkan elemen pada indeks yang sama di setiap array dalam untuk membentuk array dalam baru. Misalnya, dari array [0,1,2,3], [10,19,18,17], dan [9,8,7], fungsi mengambil elemen pertama (0, 10, dan 9) dan mengelompokkannya menjadi array dalam baru [0.0,10.0,9.0].

  • Pernyataan kueri dan analisis

    * | SELECT array_transpose(array[array[0,1,2,3],array[10,19,18,17],array[9,8,7]])
  • Hasil kueri dan analisis: Nilai dalam kolom _col0 adalah [[0.0,10.0,9.0],[1.0,19.0,8.0],[2.0,18.0,7.0],[3.0,17.0]].

Fungsi array_union

Mengembalikan array elemen dalam gabungan dua array, tanpa duplikat.

Sintaks

array_union(x, y)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

y

Harus berupa array.

Tipe nilai kembali

array

Contoh

Contoh ini menghitung gabungan array [1,2,3,4,5] dan [1,3,5,7].

  • Pernyataan kueri

    * | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
  • Kueri mengembalikan [1,2,3,4,5,7].

Fungsi cardinality

Mengembalikan jumlah elemen dalam sebuah array.

Sintaks

cardinality(x)

Parameter

Parameter

Deskripsi

x

Array input.

Tipe nilai kembali

Mengembalikan nilai bigint.

Contoh

Contoh ini menghitung jumlah elemen dalam field number.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri

    *| SELECT cardinality(cast(json_parse(number) as array(bigint)))
  • Kueri mengembalikan 5, karena array berisi 5 elemen.

Fungsi concat

Menggabungkan beberapa array menjadi satu array.

Sintaks

concat(x, y…)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

y

Harus berupa array.

Tipe nilai kembali

array

Contoh

Menggabungkan array ['red','blue'] dan ['yellow','green'].

  • Pernyataan kueri

    * | SELECT concat(array['red','blue'],array['yellow','green'])
  • Kueri mengembalikan ["red","blue","yellow","green"].

fungsi contains

Memeriksa apakah array berisi elemen tertentu. Mengembalikan true jika ditemukan.

Sintaks

contains(x, element)

Parameter

Parameter

Deskripsi

x

Array yang akan diperiksa.

element

Elemen yang akan dicari dalam array.

Tipe nilai kembali

boolean

Contoh

Memeriksa apakah field region berisi 'cn-beijing'.

  • Field contoh

    region:["cn-hangzhou","cn-shanghai","cn-beijing"]
  • Pernyataan kueri

    *| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
  • Kueri mengembalikan kolom bernama _col0 dengan nilai true, yang menunjukkan bahwa array region berisi cn-beijing.

Fungsi element_at

Mengembalikan elemen pada indeks y dalam sebuah array.

Sintaks

element_at(x, y)

Parameter

Parameter

Deskripsi

x

Array dari mana elemen akan diambil.

y

Indeks bigint berbasis 1 dari elemen yang akan diambil dari array.

Tipe nilai kembali

Nilai kembali memiliki tipe data yang sama dengan elemen dalam array.

Contoh

Contoh ini mengambil elemen kedua dari array yang disimpan sebagai string JSON dalam field number.

  • Field contoh

    number:[49,50,45,47,50]
  • Pernyataan kueri dan analisis

    * |
    SELECT
      element_at(cast(json_parse(number) AS array(varchar)), 2)
  • Kueri mengembalikan kolom bernama _col0 dengan nilai 50.

Fungsi filter

Fungsi filter menyaring array berdasarkan ekspresi lambda, mengembalikan array baru yang hanya berisi elemen yang membuat ekspresi tersebut bernilai true.

Sintaks

filter(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Array input.

lambda_expression

Ekspresi lambda. Untuk informasi lebih lanjut, lihat ekspresi lambda.

Tipe nilai kembali

Mengembalikan array.

Contoh

Mengembalikan elemen yang lebih besar dari 0 dari array [5,-6,null,7]. Ekspresi lambdanya adalah x -> x > 0.

  • Pernyataan kueri

    * | SELECT filter(array[5,-6,null,7],x -> x > 0)
  • Kueri mengembalikan [5,7].

Fungsi flatten

Meratakan array dua dimensi menjadi array satu dimensi.

Sintaks

flatten(x)

Parameter

Parameter

Deskripsi

x

Array dua dimensi yang akan diratakan. Nilainya harus berupa array.

Tipe nilai kembali

Mengembalikan array satu dimensi.

Contoh

Contoh ini meratakan array dua dimensi menjadi array satu dimensi.

  • Pernyataan kueri

    * | SELECT flatten(array[array[1,2,3,4],array[5,2,2,4]])
  • Hasil kueri dan analisis: Kolom _col0 berisi [1,2,3,4,5,2,2,4].

Fungsi reduce

Fungsi reduce menerapkan ekspresi lambda pada array, mengagregasi elemen-elemennya menjadi satu nilai.

Sintaks

reduce(array, initialState, inputFunction, outputFunction)

Parameter

Parameter

Deskripsi

array

Array input elemen bigint.

initialState, inputFunction, outputFunction

Menentukan logika reduksi, yang mencakup keadaan awal, fungsi input yang memproses setiap elemen, dan fungsi output yang menyelesaikan hasil. Untuk informasi lebih lanjut, lihat ekspresi lambda.

Tipe nilai kembali

bigint

Contoh

Menghitung jumlah elemen dalam array [5, 20, 50].

  • Pernyataan kueri

    * | SELECT reduce(array[5, 20, 50], 0, (s, x) -> s + x, s -> s)
  • Hasil kueri: 75

Fungsi reverse

Membalik urutan elemen dalam sebuah array.

Sintaks

reverse(x)

Parameter

Parameter

Deskripsi

x

Array yang akan dibalik.

Tipe nilai kembali

Array dengan elemen-elemennya dalam urutan terbalik.

Contoh

Membalik elemen-elemen dalam array [1,2,3,4,5].

  • Pernyataan kueri

    * | SELECT reverse(array[1,2,3,4,5])
  • Hasil kueri: [5,4,3,2,1].

Fungsi sequence

Fungsi sequence mengembalikan array nilai berurutan yang meningkat dalam rentang tertentu.

Sintaks

  • Menggunakan langkah default 1.

    sequence(x, y)
  • Menggunakan langkah khusus.

    sequence(x, y, step)

Parameter

Parameter

Deskripsi

x

Nilai awal urutan. Tipe data yang didukung adalah bigint dan timestamp. Untuk tipe timestamp, Anda dapat menggunakan Stempel waktu UNIX atau ekspresi tanggal dan waktu.

y

Nilai akhir urutan. Tipe data yang didukung adalah bigint dan timestamp. Untuk tipe timestamp, Anda dapat menggunakan Stempel waktu UNIX atau ekspresi tanggal dan waktu.

step

Nilai langkah.

Ketika x dan y adalah ekspresi tanggal dan waktu, parameter step harus dalam salah satu format berikut:

  • interval ' n' year to month: Interval adalah n tahun.

  • interval 'n' day to second: Interval adalah n hari.

Tipe nilai kembali

array

Contoh

  • Mengembalikan angka genap dari 0 hingga 10.

    • Pernyataan kueri

      * | SELECT sequence(0,10,2)
    • Kueri mengembalikan [0,2,4,6,8,10].

  • Mengembalikan tanggal dari 23 Oktober 2017 hingga 12 Agustus 2021, dengan interval satu tahun.

    • Pernyataan kueri

      ww* | SELECT  sequence(from_unixtime(1508737026),from_unixtime(1628734085),interval '1' year to month )
    • Hasil kueri

      ["2017-10-23 13:37:06.000","2018-10-23 13:37:06.000","2019-10-23 13:37:06.000","2020-10-23 13:37:06.000"]
  • Mengembalikan Stempel waktu UNIX antara 1628733298 dan 1628734085 dengan interval 60 detik.

    • Pernyataan kueri

      * | SELECT  sequence(1628733298,1628734085,60)
    • Dalam hasilnya, field _col0 berisi array stempel waktu [1628733298,1628733358,1628733418,1628733478,1628733538,1628733598,1628733658,1628733718,1628733778,1628733838,1628733898,1628733958,1628734018,1628734078].

Fungsi shuffle

Mengacak elemen-elemen dalam sebuah array secara acak.

Sintaks

shuffle(x)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

Tipe nilai kembali

Mengembalikan array.

Contoh

Contoh ini mengembalikan permutasi acak dari array [1,2,3,4,5].

  • Pernyataan kueri dan analisis

    *| SELECT shuffle(array[1,2,3,4,5])
  • Hasil kueri dan analisis: Kueri mengembalikan satu kolom, _col0, yang berisi array yang diurutkan ulang secara acak. Contoh nilai termasuk [3,1,2,4,5], [5,1,2,4,3], dan [2,5,3,1,4].

Fungsi slice

Mengembalikan subset dari sebuah array.

Sintaks

slice(x, start, length)

Parameter

Parameter

Deskripsi

x

Array input.

start

Indeks awal berbasis 1 dari irisan.

  • Jika start negatif, indeks dihitung dari akhir array.

  • Jika start positif, indeks dihitung dari awal array.

length

Jumlah elemen yang akan disertakan dalam subset.

Tipe nilai kembali

array

Contoh

Contoh ini mengembalikan subset dua elemen dari array [1,2,4,5,6,7,7], dimulai dari elemen ketiga.

  • Pernyataan kueri dan analisis

    * | SELECT slice(array[1,2,4,5,6,7,7],3,2)
  • Hasil kueri dan analisis: Kolom _col0 berisi [4,5].

Fungsi transform

Fungsi transform menerapkan ekspresi lambda pada setiap elemen array.

Sintaks

transform(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Harus berupa array.

lambda_expression

Ekspresi lambda yang akan diterapkan. Untuk informasi lebih lanjut, lihat ekspresi lambda.

Tipe nilai kembali

Array.

Contoh

Contoh ini menambahkan 1 ke setiap elemen dalam array [5,6].

  • Pernyataan kueri dan analisis

    * | SELECT transform(array[5,6],x -> x + 1)
  • Kueri mengembalikan [6,7].

Fungsi zip

Fungsi zip menggabungkan beberapa array menjadi array dua dimensi. Fungsi ini mengelompokkan elemen dengan indeks yang sama dari array input untuk membentuk array bersarang.

Sintaks

zip(x, y...) 

Parameter

Parameter

Deskripsi

x

Harus berupa array.

y

Harus berupa array.

Tipe nilai kembali

Mengembalikan array dua dimensi.

Contoh

Contoh ini menggabungkan array [1,2,3], ['1b',null,'3b'], dan [1,2,3] menjadi array dua dimensi.

  • Pernyataan kueri dan analisis

    * | SELECT zip(array[1,2,3], array['1b',null,'3b'],array[1,2,3])
  • Kolom _col0 dalam hasil kueri dan analisis mengembalikan [[1,"1b",1],[2,null,2],[3,"3b",3]]. Fungsi ini mengelompokkan elemen dari array input berdasarkan indeks yang sama.

Fungsi zip_with

Fungsi zip_with menggabungkan dua array dengan menerapkan ekspresi lambda pada elemen-elemen yang bersesuaian.

Sintaks

zip_with(x, y, lambda_expression)

Parameter

Parameter

Deskripsi

x

Array input pertama.

y

Array input kedua.

lambda_expression

Ekspresi lambda yang menentukan cara menggabungkan elemen-elemen. Untuk informasi lebih lanjut, lihat ekspresi lambda.

Tipe nilai kembali

array

Contoh

Contoh ini menggunakan ekspresi lambda (x, y) -> x + y untuk menjumlahkan elemen-elemen yang bersesuaian dari array [1,2] dan [3,4]. Fungsi ini mengembalikan hasilnya dalam array baru.

  • Pernyataan kueri dan analisis

    SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
  • Hasil kueri dan analisis: Nilai dalam kolom _col0 adalah [4,6].