全部产品
Search
文档中心

Simple Log Service:Fungsi dan operator array

更新时间:Jun 26, 2025

Topik ini menjelaskan sintaksis fungsi dan operator array, serta memberikan contoh penggunaannya.

Tabel berikut menjelaskan fungsi dan operator array yang didukung oleh Simple Log Service.

Penting Jika Anda ingin menggunakan string dalam pernyataan analitik, apit string dengan tanda kutip tunggal (''). String tanpa tanda kutip atau diapit tanda kutip ganda ("") menunjukkan nama bidang atau kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.

Fungsi atau operator

Sintaksis

Deskripsi

Didukung di SQL

Didukung di SPL

Operator Subskrip

[x]

Mengembalikan elemen dengan indeks x dalam array. Operator ini setara dengan fungsi element_at.

×

Fungsi array_agg

array_agg(x)

Mengembalikan array yang terdiri dari semua nilai dari bidang x.

×

Fungsi array_distinct

array_distinct(x)

Menghapus elemen duplikat dari array.

Fungsi array_except

array_except(x, y)

Menghitung selisih dua array.

Fungsi array_intersect

array_intersect(x, y)

Menghitung irisan dua array.

Fungsi array_join

array_join(x, delimiter)

Menggabungkan elemen-elemen array menjadi string dengan menggunakan pemisah tertentu. Jika array berisi elemen null, elemen null akan diabaikan.

Penting

Fungsi array_join dapat mengembalikan hingga 1 KB data. Jika ukuran data yang dikembalikan melebihi 1 KB, data akan dipotong.

array_join(x, delimiter, null_replacement)

Menggabungkan elemen-elemen array menjadi string dengan menggunakan pemisah tertentu. Jika array berisi elemen null, elemen null diganti dengan nilai parameter null_replacement.

Penting

Fungsi array_join dapat mengembalikan hingga 1 KB data. Jika ukuran data yang dikembalikan melebihi 1 KB, data akan dipotong.

Fungsi array_max

array_max(x)

Mengembalikan nilai maksimum dalam array.

Fungsi array_min

array_min(x)

Mengembalikan nilai minimum dalam array.

Fungsi array_position

array_position(x, element)

Mengembalikan indeks elemen tertentu dalam array. Indeks dimulai dari 1. Jika elemen yang ditentukan tidak ada, fungsi mengembalikan 0.

Fungsi array_remove

array_remove(x, element)

Menghapus elemen tertentu dari array.

Fungsi array_sort

array_sort(x)

Mengurutkan elemen dalam array secara ascending. Jika array berisi elemen null, elemen null ditempatkan di akhir.

Fungsi array_transpose

array_transpose(x)

Menukar matriks dan mengembalikan array dua dimensi baru yang terdiri dari elemen-elemen dalam matriks. Elemen-elemen tersebut ditempatkan dengan menggunakan indeks yang sama.

×

Fungsi array_union

array_union(x, y)

Menghitung gabungan dua array.

×

Fungsi cardinality

cardinality(x)

Menghitung jumlah elemen dalam array.

Fungsi concat

concat(x, y…)

Menggabungkan beberapa array menjadi satu array.

×

Fungsi contains

contains(x, element)

Memeriksa apakah array berisi elemen tertentu. Jika array berisi elemen tersebut, fungsi mengembalikan true.

×

Fungsi element_at

element_at(x, y)

Mengembalikan elemen dengan indeks y dalam array.

×

Fungsi filter

filter(x, lambda_expression)

Menyaring elemen dalam array berdasarkan ekspresi lambda dan mengembalikan elemen yang sesuai dengan ekspresi lambda.

Fungsi flatten

flatten(x)

Mentransformasikan array dua dimensi menjadi array satu dimensi.

×

Fungsi reduce

reduce(x, lambda_expression)

Mengembalikan jumlah elemen dalam array berdasarkan ekspresi lambda.

Fungsi reverse

reverse(x)

Membalikkan elemen dalam array.

Fungsi sequence

sequence(x, y)

Mengembalikan array elemen dalam rentang tertentu. Elemen-elemen tersebut berturutan dan bertambah. Langkah penambahan adalah 1, yang merupakan nilai default.

sequence(x, y, step)

Mengembalikan array elemen dalam rentang tertentu. Elemen-elemen tersebut berturutan dan bertambah. Langkah penambahan adalah nilai kustom.

Fungsi shuffle

shuffle(x)

Mengacak elemen dalam array.

Fungsi slice

slice(x, start, length)

Mengembalikan subset dari array.

Fungsi transform

transform(x, lambda_expression)

Mentransformasi setiap elemen dalam array menggunakan ekspresi lambda.

Fungsi zip

zip(x, y...)

Menggabungkan beberapa array menjadi array dua dimensi. Elemen-elemen dengan indeks yang sama di array input membentuk array baru di array dua dimensi.

Fungsi zip_with

zip_with(x, y, lambda_expression)

Menggabungkan dua array menjadi satu array menggunakan ekspresi lambda.

×

Operator Subskrip

Operator subskrip mengembalikan elemen dengan indeks x dalam array. Operator ini setara dengan fungsi element_at.

Sintaksis

[x]

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah indeks elemen dalam array. Indeks dimulai dari 1. Nilai parameter ini bertipe bigint.

Tipe Nilai Kembali

Tipe data elemen yang ditentukan.

Contoh

Kembalikan elemen pertama dari nilai bidang number.

  • Bidang Contoh

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

    * | SELECT cast(json_parse(number) as array(bigint)) [1]
  • Hasil Kueri dan Analisis下标运算符

Fungsi array_agg

Fungsi array_agg mengembalikan array yang terdiri dari semua nilai dari bidang x.

Sintaksis

array_agg (x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bisa berupa tipe data apa pun.

Tipe Nilai Kembali

Tipe array.

Contoh

Kembalikan array yang terdiri dari semua nilai dari bidang status.

  • Pernyataan Kueri

    * | SELECT array_agg(status) AS array
  • Hasil Kueri dan Analisisarray_agg

Fungsi array_distinct

Fungsi array_distinct menghapus elemen duplikat dari array.

Sintaksis

array_distinct(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Hapus elemen duplikat dari nilai bidang number.

  • Bidang Contoh

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

    *| SELECT array_distinct(cast(json_parse(number) as array(bigint)))
  • Hasil Kueri dan Analisisarray_distinct

Fungsi array_except

Fungsi array_except menghitung selisih dua array.

Sintaksis

array_except(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Hitung 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])
  • Hasil Kueri dan Analisisarray_except

Fungsi array_intersect

Fungsi array_intersect menghitung irisan dua array.

Sintaksis

array_intersect(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

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

  • Pernyataan Kueri

    * | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
  • Hasil Kueri dan Analisisarray_intersect

Fungsi array_join

Fungsi array_join menggabungkan elemen-elemen array menjadi string menggunakan pemisah tertentu.

Sintaksis

  • Jika Anda menggunakan sintaksis berikut, fungsi akan menggabungkan elemen-elemen array menjadi string menggunakan pemisah tertentu. Jika array berisi elemen null, elemen null akan diabaikan.

    array_join(x, delimiter)
  • Jika Anda menggunakan sintaksis berikut, fungsi akan menggabungkan elemen-elemen array menjadi string menggunakan pemisah tertentu. Jika array berisi elemen null, elemen null diganti dengan nilai parameter null_replacement.

    array_join(x, delimiter,null_replacement)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe array sembarang.

delimiter

Nilai parameter ini adalah pemisah yang digunakan untuk menggabungkan elemen. Anda dapat menentukan string untuk parameter ini.

null_replacement

Nilai parameter ini adalah string yang digunakan untuk menggantikan elemen null.

Tipe Nilai Kembali

Tipe varchar.

Contoh

Gabungkan elemen-elemen dari array [null, 'Log','Service'] menjadi string menggunakan spasi dan ganti elemen null dengan Alicloud.

  • Pernyataan Kueri

    * | SELECT array_join(array[null,'Log','Service'],' ','Alicloud')
  • Hasil Kueri dan Analisisarray_join

Fungsi array_max

Fungsi array_max mengembalikan nilai maksimum dalam array.

Sintaksis

array_max(x) 

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Penting

Jika array berisi elemen null, fungsi mengembalikan null.

Tipe Nilai Kembali

Sama dengan tipe data elemen dalam nilai parameter.

Contoh

Kembalikan nilai maksimum dalam array.

  • Bidang 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 dan Analisisarray_max

Fungsi array_min

Fungsi array_min mengembalikan nilai minimum dalam array.

Sintaksis

array_min(x) 

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Penting

Jika array berisi elemen null, fungsi mengembalikan null.

Tipe Nilai Kembali

Sama dengan tipe data elemen dalam nilai parameter.

Contoh

Kembalikan nilai minimum dalam array.

  • Bidang Contoh

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

    *| SELECT array_min(try_cast(json_parse(number) as array(bigint))) AS min_number
  • Hasil Kueri dan Analisisarray_min

Fungsi array_position

Fungsi array_position mengembalikan indeks elemen tertentu dalam array. Indeks dimulai dari 1. Jika elemen tidak ditemukan, fungsi mengembalikan 0.

Sintaksis

array_position(x, element)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

element

Nilai parameter ini adalah elemen dalam array.

Catatan

Jika elemen tersebut adalah null, fungsi mengembalikan null.

Tipe Nilai Kembali

Tipe bigint.

Contoh

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

  • Pernyataan Kueri

    * | SELECT array_position(array[49,45,47],45)
  • Hasil Kueri dan Analisisarray_position

Fungsi array_remove

Fungsi array_remove menghapus elemen tertentu dari array.

Sintaksis

array_remove(x, element)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

element

Nilai parameter ini adalah elemen dalam array.

Catatan

Jika elemen tersebut adalah null, fungsi mengembalikan null.

Tipe Nilai Kembali

Tipe array.

Contoh

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

  • Pernyataan Kueri

    * | SELECT array_remove(array[49,45,47],45)
  • Hasil Kueri dan Analisisarray_remove函数

Fungsi array_sort

Fungsi array_sort mengurutkan elemen dalam array secara ascending. Jika array berisi elemen null, elemen null ditempatkan di akhir.

Sintaksis

array_sort(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Urutkan elemen dalam array ['b', 'd', null, 'c', 'a'] secara ascending.

  • Pernyataan Kueri

    * | SELECT array_sort(array['b','d',null,'c','a'])
  • Hasil Kueri dan Analisisarray_sort

Fungsi array_transpose

Fungsi array_transpose menukar matriks dan mengembalikan array dua dimensi baru yang terdiri dari elemen-elemen dalam matriks. Elemen-elemen tersebut ditempatkan menggunakan indeks yang sama.

Sintaksis

array_transpose(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array(double).

Tipe Nilai Kembali

Tipe array(double).

Contoh

Buat array dua dimensi dari elemen-elemen yang ditempatkan menggunakan indeks yang sama dalam array dua dimensi yang berbeda. Sebagai contoh, dalam array [0,1,2,3], [10,19,18,17], dan [9,8,7], elemen 0, 10, dan 9 ditempatkan menggunakan indeks 1. Dengan cara ini, array baru [0.0,10.0,9.0] dibentuk.

  • Pernyataan Kueri

    * | SELECT array_transpose(array[array[0,1,2,3],array[10,19,18,17],array[9,8,7]])
  • Hasil Kueri dan Analisisarray_transpose

Fungsi array_union

Fungsi array_union menghitung gabungan dua array.

Sintaksis

array_union(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Hitung gabungan antara 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])
  • Hasil Kueri dan Analisisarray_union

Fungsi cardinality

Fungsi cardinality menghitung jumlah elemen dalam array.

Sintaksis

cardinality(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe bigint.

Contoh

Hitung jumlah elemen dalam nilai bidang number.

  • Bidang Contoh

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

    *| SELECT cardinality(cast(json_parse(number) as array(bigint)))
  • Hasil Kueri dan Analisiscardinality

Fungsi concat

Fungsi concat menggabungkan beberapa array menjadi satu array.

Sintaksis

concat(x, y…)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Gabungkan array ['red','blue'] dan ['yellow','green'] menjadi satu array.

  • Pernyataan Kueri

    * | SELECT concat(array['red','blue'],array['yellow','green'])
  • Hasil Kueri dan Analisisconcat-array

Fungsi contains

Fungsi contains memeriksa apakah array berisi elemen tertentu. Jika array berisi elemen tersebut, fungsi mengembalikan true.

Sintaksis

contains(x, element)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

element

Nilai parameter ini adalah elemen dalam array.

Tipe Nilai Kembali

Tipe Boolean.

Contoh

Periksa apakah nilai bidang region berisi cn-beijing.

  • Bidang Contoh

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

    *| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
  • Hasil Kueri dan Analisiscontains

Fungsi element_at

Fungsi element_at mengembalikan elemen dengan indeks y dalam array.

Sintaksis

element_at(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini adalah indeks elemen dalam array. Indeks dimulai dari 1. Nilai parameter ini bertipe bigint.

Tipe Nilai Kembali

Tipe data sembarang.

Contoh

Kembalikan elemen kedua dalam nilai bidang number.

  • Bidang Contoh

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

    * |
    SELECT
      element_at(cast(json_parse(number) AS array(varchar)), 2)
  • Hasil Kueri dan Analisis element_at

Fungsi filter

Fungsi filter menyaring elemen-elemen dalam array berdasarkan ekspresi lambda dan mengembalikan elemen yang sesuai dengan ekspresi lambda.

Sintaksis

filter(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

lambda_expression

Nilai dari parameter ini adalah ekspresi lambda. Untuk informasi lebih lanjut, lihat Ekspresi lambda.

Tipe Nilai Kembali

Tipe array.

Contoh

Kembalikan elemen yang lebih besar dari 0 dalam array [5,-6,null,7] menggunakan ekspresi lambda x -> x > 0.

  • Pernyataan Kueri

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

Fungsi flatten

Fungsi flatten mentransformasikan array dua dimensi menjadi array satu dimensi.

Sintaksis

flatten(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Transformasikan array dua dimensi [array[1,2,3,4],array[5,2,2,4]] menjadi array satu dimensi.

  • Pernyataan Kueri

    * | SELECT flatten(array[array[1,2,3,4],array[5,2,2,4]])
  • Hasil Kueri dan Analisisflatten

Fungsi reduce

Fungsi reduce mengembalikan jumlah elemen dalam array berdasarkan ekspresi lambda.

Sintaksis

reduce(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

lambda_expression

Nilai parameter ini adalah kombinasi dari nilai awal, ekspresi lambda yang ingin digunakan, dan metode pemrosesan hasil ekspresi lambda. Untuk informasi lebih lanjut, lihat Ekspresi lambda.

Tipe Nilai Kembali

Tipe bigint.

Contoh

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

  • Pernyataan Kueri

    * | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
  • Hasil Kueri dan Analisisreduce

Fungsi reverse

Fungsi reverse membalikkan elemen-elemen dalam array.

Sintaksis

reverse(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

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

  • Pernyataan Kueri

    * | SELECT reverse(array[1,2,3,4,5])
  • Hasil Kueri dan Analisisreverse

Fungsi sequence

Fungsi sequence mengembalikan array elemen dalam rentang tertentu. Elemen-elemen tersebut berturutan dan bertambah.

Sintaksis

  • Jika Anda menggunakan sintaksis berikut, langkah penambahan default adalah 1.

    sequence(x, y)
  • Jika Anda menggunakan sintaksis berikut, Anda dapat menentukan langkah penambahan kustom.

    sequence(x, y, step)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe bigint atau timestamp. Ekspresi timestamp UNIX dan tanggal waktu didukung.

y

Nilai parameter ini bertipe bigint atau timestamp. Ekspresi timestamp UNIX dan tanggal waktu didukung.

step

Nilai parameter ini adalah langkah penambahan.

Jika nilai parameter x dan y adalah ekspresi tanggal waktu, nilai parameter step berada dalam salah satu format berikut:

  • interval ' n' year to month: Langkah penambahan adalah n tahun.

  • interval 'n' day to second: Langkah penambahan adalah n hari.

Tipe Nilai Kembali

Tipe array.

Contoh

  • Contoh 1: Kembalikan angka genap dari 0 hingga 10.

    • Pernyataan Kueri

      * | SELECT sequence(0,10,2)
    • Hasil Kueri dan Analisissequence

  • Contoh 2: Kembalikan tanggal dari 23 Oktober 2017 hingga 12 Agustus 2021 dengan langkah penambahan 1 tahun.

    • Pernyataan Kueri

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

  • Contoh 3: Kembalikan timestamp UNIX dari 1628733298 hingga 1628734085 dengan langkah penambahan 60 detik.

    • Pernyataan Kueri

      * | SELECT  sequence(1628733298,1628734085,60)
    • Hasil Kueri dan Analisissequence

Fungsi shuffle

Fungsi shuffle mengacak elemen-elemen dalam array.

Sintaksis

shuffle(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

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

  • Pernyataan Kueri

    *| SELECT shuffle(array[1,2,3,4,5])
  • Hasil Kueri dan Analisisshuffle

Fungsi slice

Fungsi slice mengembalikan subset dari array.

Sintaksis

slice(x, start, length)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

start

Nilai parameter ini adalah indeks di mana Simple Log Service mulai mengekstrak elemen.

  • Jika nilai parameter start adalah bilangan negatif, Simple Log Service mulai mengekstrak elemen dari akhir array.

  • Jika nilai parameter start adalah bilangan positif, Simple Log Service mulai mengekstrak elemen dari awal array.

length

Nilai parameter ini adalah jumlah elemen dalam subset yang ingin diperoleh.

Tipe Nilai Kembali

Tipe array.

Contoh

Kembalikan subset dari array [1,2,4,5,6,7,7] mulai dari elemen ketiga. Subset terdiri dari dua elemen.

  • Pernyataan Kueri

    * | SELECT slice(array[1,2,4,5,6,7,7],3,2)
  • Hasil Kueri dan Analisisslice

Fungsi transform

Fungsi transform mentransformasi setiap elemen dalam array menggunakan ekspresi lambda.

Sintaksis

transform(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

lambda_expression

Nilai parameter ini adalah ekspresi lambda. Untuk informasi lebih lanjut, lihat Ekspresi lambda.

Tipe Nilai Kembali

Tipe array.

Contoh

Tambahkan 1 ke setiap elemen dalam array [5,6] dan kembalikan array baru.

  • Pernyataan Kueri

    * | SELECT transform(array[5,6],x -> x + 1)
  • Hasil Kueri dan Analisistransform

Fungsi zip

Fungsi zip menggabungkan beberapa array menjadi array dua dimensi. Elemen-elemen dengan indeks yang sama di array input membentuk array baru di array dua dimensi.

Sintaksis

zip(x, y...) 

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe array.

Contoh

Gabungkan array [1, 2,3], ['1b', null, '3b'], dan [1, 2,3] menjadi array dua dimensi.

  • Pernyataan Kueri

    * | SELECT zip(array[1,2,3], array['1b',null,'3b'],array[1,2,3])
  • Hasil Kueri dan Analisiszip

Fungsi zip_with

Fungsi zip_with menggabungkan dua array menjadi satu array menggunakan ekspresi lambda.

Sintaksis

zip_with(x, y, lambda_expression)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

lambda_expression

Nilai parameter ini adalah ekspresi lambda. Untuk informasi lebih lanjut, lihat Ekspresi lambda.

Tipe Nilai Kembali

Tipe array.

Contoh

Gunakan ekspresi lambda (x, y) -> x + y untuk menambahkan elemen-elemen dalam array [1, 2] dan [3, 4], lalu kembalikan array baru.

  • Pernyataan Kueri

    SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
  • Hasil Kueri dan Analisiszip_with