全部产品
Search
文档中心

Simple Log Service:Fungsi dan operator peta

更新时间:Jun 26, 2025

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

Tabel berikut menjelaskan fungsi dan operator peta 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

Sintaksis

Deskripsi

Didukung di SQL

Didukung di SPL

Operator Subskrip

[x]

Mengembalikan nilai dari sebuah kunci dalam peta.

×

fungsi cardinality

cardinality(x)

Mengembalikan ukuran peta.

×

fungsi element_at

element_at(x, kunci)

Mengembalikan nilai dari sebuah kunci dalam peta.

fungsi histogram

histogram(x)

Mengelompokkan hasil kueri dan analisis serta mengembalikan data dalam format JSON.

×

fungsi histogram_u

histogram_u(x)

Mengelompokkan hasil kueri dan analisis serta mengembalikan data dalam beberapa baris dan beberapa kolom.

×

fungsi map

map()

Mengembalikan peta kosong.

map(x, y)

Mengembalikan peta yang dibuat menggunakan dua array.

fungsi map_agg

map_agg(x, y)

Mengembalikan peta yang dibuat menggunakan x dan y. x adalah kunci dalam peta. y adalah nilai dari kunci dalam peta. Jika y memiliki beberapa nilai, nilai acak akan diekstraksi sebagai nilai dari kunci.

×

fungsi map_concat

map_concat(x, y...)

Mengembalikan gabungan dari beberapa peta.

fungsi map_filter

map_filter(x, lambda_expression)

Menyaring elemen dalam peta berdasarkan ekspresi lambda.

fungsi map_keys

map_keys(x)

Mengembalikan array yang terdiri dari semua kunci dalam peta.

fungsi map_values

map_values(x)

Mengembalikan array yang terdiri dari semua nilai dalam peta.

fungsi multimap_agg

multimap_agg(x, y)

Mengembalikan multimap yang dibuat menggunakan x dan y. x adalah kunci dalam multimap. y adalah nilai dari kunci dalam multimap. Nilai tersebut bertipe array. Jika y memiliki beberapa nilai, semua nilai akan diekstraksi sebagai nilai dari kunci.

×

Operator Subskrip

Operator subskrip mengembalikan nilai dari sebuah kunci dalam peta.

Sintaksis

[x]

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe varchar.

Tipe Nilai Kembali

Tipe data sembarang.

Contoh

Dalam log yang ditransformasi oleh pekerjaan transformasi data, nilai bidang etl_context bertipe peta. Gunakan operator subskrip untuk mendapatkan nilai kunci project dari nilai bidang etl_context.

  • Bidang Sampel

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Pernyataan Kueri

    * | SELECT try_cast(json_parse(etl_context) AS map(varchar, varchar))['project']
  • Hasil Kueri dan Analisis下标运算符

fungsi cardinality

Fungsi cardinality mengembalikan ukuran peta.

Sintaksis

cardinality(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

Tipe Nilai Kembali

Tipe bigint.

Contoh

Gunakan fungsi histogram untuk mendapatkan jumlah permintaan untuk setiap metode permintaan. Kemudian, gunakan fungsi cardinality untuk mendapatkan jumlah metode permintaan.

  • Pernyataan Kueri

    * |
    SELECT
      histogram(request_method) AS request_method,
      cardinality(histogram(request_method)) AS "kinds"
  • Hasil Kueri dan Analisiscardinality

fungsi element_at

Fungsi element_at mengembalikan nilai dari sebuah kunci dalam peta.

Sintaksis

element_at(x, key)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

key

Nilai parameter ini adalah kunci dalam peta.

Tipe Nilai Kembali

Tipe data sembarang.

Contoh

Gunakan fungsi histogram untuk mendapatkan jumlah permintaan untuk setiap metode permintaan. Kemudian, gunakan fungsi element_at untuk mendapatkan nilai bidang DELETE.

  • Pernyataan Kueri

    * |
    SELECT
      histogram(request_method) AS request_method,
      element_at(histogram(request_method),'DELETE') AS "count"
  • Hasil Kueri dan Analisiselement_at

fungsi histogram

Fungsi histogram mengelompokkan hasil kueri dan analisis serta mengembalikan data dalam format JSON. Fungsi ini setara dengan * | SELECT count(*) GROUP BY x.

Sintaksis

histogram(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe data sembarang.

Tipe Nilai Kembali

Tipe peta.

Contoh

Gunakan fungsi histogram untuk mendapatkan jumlah permintaan untuk setiap metode permintaan.

  • Pernyataan Kueri

    * | SELECT histogram(request_method) AS request_method
  • Hasil Kueri dan Analisishistogram

fungsi histogram_u

Fungsi histogram_u mengelompokkan hasil kueri dan analisis serta mengembalikan data dalam beberapa baris dan kolom.

Sintaksis

histogram_u(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe data sembarang.

Tipe Nilai Kembali

Tipe bigint.

Contoh

Gunakan fungsi histogram_u untuk mendapatkan jumlah permintaan untuk setiap metode permintaan, lalu tampilkan jumlahnya pada grafik kolom.

  • Pernyataan Kueri

    *|SELECT  histogram_u(request_method) as request_method
  • Hasil Kueri dan Analisishistogram_u

fungsi map

Fungsi map mengembalikan peta kosong atau peta yang dibuat menggunakan dua array.

Sintaksis

  • Sintaksis berikut dari fungsi map mengembalikan peta kosong:

    map()
  • Sintaksis berikut dari fungsi map mengembalikan peta yang dibuat menggunakan dua array:

    map(x,y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe array.

y

Nilai parameter ini bertipe array.

Tipe Nilai Kembali

Tipe peta.

Contoh

  • Contoh 1: Bidang class menentukan kelas. Bidang number menentukan jumlah siswa dalam kelas. Nilai kedua bidang tersebut bertipe array. Gunakan fungsi map untuk membuat peta berdasarkan nilai kedua bidang tersebut. Dalam hasil yang dikembalikan, setiap kelas dipetakan ke jumlah siswa dalam kelas tersebut.

    • Bidang Sampel

      class:["class01","class02","class03","class04","class05"]
      number:[49,50,45,47,50]
    • Pernyataan Kueri

      * | SELECT map(try_cast(json_parse(class) AS array(varchar)) ,try_cast(json_parse(number) AS array(bigint)))
    • Hasil Kueri dan Analisismap

  • Contoh 2: Mengembalikan peta kosong.

    • Pernyataan Kueri

      *| SELECT map()
    • Hasil Kueri dan Analisismap

fungsi map_agg

Fungsi map_agg mengembalikan peta yang dibuat menggunakan x dan y. x adalah kunci dalam peta. y adalah nilai dari kunci dalam peta. Jika y memiliki beberapa nilai, nilai acak akan diekstraksi sebagai nilai dari kunci.

Sintaksis

map_agg(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe data sembarang.

y

Nilai parameter ini bertipe data sembarang.

Tipe Nilai Kembali

Tipe peta.

Contoh

Ekstrak nilai dari bidang request_method dan request_time, lalu gunakan nilai yang diekstraksi untuk membuat peta. Nilai dari bidang request_method adalah kunci dalam peta. Nilai dari bidang request_time adalah nilai dari kunci dalam peta.

  • Bidang Sampel

    request_method:POST
    request_time:80
  • Pernyataan Kueri

    * | SELECT map_agg(request_method,request_time)
  • Hasil Kueri dan Analisismap_agg

fungsi map_concat

Fungsi map_concat mengembalikan gabungan dari beberapa peta.

Sintaksis

map_concat(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

y

Parameter ini dapat bertipe data peta.

Tipe Nilai Kembali

Tipe peta.

Contoh

Dalam log yang ditransformasi oleh pekerjaan transformasi data, nilai bidang etl_context dan progress bertipe peta. Gunakan fungsi map_concat untuk mendapatkan gabungan dari nilai-nilai bidang tersebut.

  • Bidang Sampel

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
    progress: {
     accept:3
     dropped:0
     delivered:3
     failed:0 }
  • Pernyataan Kueri

    * |
    SELECT
      map_concat(
        cast (
          json_parse(etl_context) AS map(varchar, varchar)
        ),
        cast (json_parse(progress) AS map(varchar, varchar))
      )
  • Hasil Kueri dan Analisismap_concat

fungsi map_filter

Fungsi map_filter menyaring elemen dalam peta berdasarkan ekspresi lambda.

Sintaksis

map_filter(x, lambda_expression)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

lambda_expression_expression

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

Tipe Nilai Kembali

Tipe peta.

Contoh

Buat peta yang tidak mengandung nilai null dari dua array menggunakan ekspresi lambda (k, v) -> v is not null.

  • Pernyataan Kueri

    * | SELECT map_filter(map(array[10, 20, 30], array['a', NULL, 'c']), (k, v) -> v is not null)
  • Hasil Kueri dan Analisismap_filter

fungsi map_keys

Fungsi map_keys mengembalikan array yang terdiri dari semua kunci dalam peta.

Sintaksis

map_keys(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

Tipe Nilai Kembali

Tipe array.

Contoh

Dalam log yang ditransformasi oleh pekerjaan transformasi data, nilai bidang etl_context bertipe peta. Gunakan fungsi map_keys untuk mendapatkan semua kunci dari nilai bidang etl_context.

  • Bidang Sampel

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Pernyataan Kueri

    * | SELECT map_keys(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • Hasil Kueri dan Analisismap_keys

fungsi map_values

Fungsi map_values mengembalikan array yang terdiri dari semua nilai dalam peta.

Sintaksis

map_values(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe peta.

Tipe Nilai Kembali

Tipe array.

Contoh

Dalam log yang ditransformasi oleh pekerjaan transformasi data, nilai bidang etl_context bertipe peta. Gunakan fungsi map_values untuk mendapatkan nilai dari semua kunci dari nilai bidang etl_context.

  • Bidang Sampel

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Pernyataan Kueri

    * | SELECT map_values(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • Hasil Kueri dan Analisismap_values

fungsi multimap_agg

Fungsi multimap_agg mengembalikan multimap yang dibuat menggunakan x dan y. x adalah kunci dalam multimap. y adalah nilai dari kunci dalam multimap. Nilai tersebut bertipe array. Jika y memiliki beberapa nilai, semua nilai akan diekstraksi sebagai nilai dari kunci.

Sintaksis

multimap_agg(x, y)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe data sembarang.

y

Nilai parameter ini bertipe data sembarang.

Tipe Nilai Kembali

Tipe peta.

Contoh

Ekstrak semua nilai dari bidang request_method dan request_time, lalu gunakan nilai yang diekstraksi untuk membuat multimap. Nilai dari bidang request_method adalah kunci dalam multimap. Nilai dari bidang request_time adalah nilai dari kunci dalam multimap. Nilai dari kunci tersebut bertipe array.

  • Bidang Sampel

    request_method:POST
    request_time:80
  • Pernyataan Kueri

    * | SELECT multimap_agg(request_method,request_time)
  • Hasil Kueri dan Analisismultimap_agg