全部产品
Search
文档中心

Simple Log Service:Fungsi pemetaan dan pengayaan

更新时间:Jul 02, 2025

Topik ini menjelaskan sintaksis dan parameter fungsi pemetaan serta pengayaan, serta memberikan contoh penggunaannya.

Fungsi

Kategori

Fungsi

Deskripsi

Pemetaan berbasis kolom

e_dict_map

Memetakan nilai dari kolom input ke nilai dalam kamus data yang ditentukan dan mengembalikan kolom baru.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Gunakan fungsi e_dict_map untuk memperkaya data log.

e_table_map

Memetakan nilai dari kolom input ke baris dalam tabel yang ditentukan dan mengembalikan kolom baru.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Gunakan fungsi e_table_map untuk memperkaya kode status respons HTTP.

e_tablestore_map

Memperkaya log mentah dengan menggunakan tabel data di Tablestore sebagai tabel dimensi.

e_redis_map

Memperkaya log mentah dengan menggunakan tabel data di ApsaraDB for Redis sebagai tabel dimensi.

e_dict_map

Fungsi e_dict_map memetakan nilai dari kolom input ke nilai dalam kamus data yang ditentukan dan mengembalikan kolom baru.

  • Sintaksis

    e_dict_map(data, field, output_field, case_insensitive=True, missing=None, mode="overwrite")
  • Parameter

    Parameter

    Tipe

    Diperlukan

    Deskripsi

    data

    Dict

    Ya

    Kamus data yang digunakan untuk pemetaan. Nilai parameter ini harus dalam format standar {key01:value01,key01:value02,...}. Kunci harus berupa string. Contoh: {"1": "TCP", "2": "UDP", "3": "HTTP", "*": "Unknown"}.

    field

    String atau daftar string

    Ya

    Satu atau lebih nama kolom. Jika nilai parameter ini berisi beberapa nama kolom, sistem melakukan operasi berikut:

    • Sistem melakukan pemetaan pada nama kolom secara berurutan.

    • Jika sistem menemukan beberapa nilai untuk kolom-kolom tersebut dan parameter mode disetel ke overwrite, sistem akan mengembalikan nilai yang terakhir cocok.

    • Jika sistem tidak menemukan nilai untuk kolom-kolom tersebut, sistem akan mengembalikan nilai parameter missing.

    output_field

    String

    Ya

    Nama kolom yang ingin Anda kembalikan oleh fungsi.

    case_insensitive

    Boolean

    Tidak

    Menentukan apakah akan menonaktifkan sensitivitas huruf besar/kecil selama pemetaan.

    • True: menonaktifkan sensitivitas huruf besar/kecil. Ini adalah nilai default.

    • False: mengaktifkan sensitivitas huruf besar/kecil.

    Catatan

    Jika kamus data berisi beberapa kunci yang hanya berbeda dalam huruf besar/kecil dan parameter case_insensitive disetel ke True, sistem pertama-tama memetakan nilai kolom input ke kunci yang menggunakan huruf besar/kecil yang sama dengan nilai tersebut. Jika kunci dengan huruf besar/kecil yang sama tidak ada, sistem secara acak memetakan nilai ke salah satu dari beberapa kunci tersebut.

    missing

    String

    Tidak

    Nilai yang diberikan ke kolom yang ditentukan oleh output_field ketika tidak ditemukan kecocokan untuk kolom input. Nilai default: None, yang menunjukkan bahwa tidak ada penugasan yang dilakukan.

    Catatan

    Jika kamus data berisi kunci asterisk (*), parameter missing menjadi tidak valid. Hal ini karena asterisk (*) memiliki prioritas lebih tinggi daripada parameter missing.

    mode

    String

    Tidak

    Mode penimpaan kolom. Nilai default: overwrite. Untuk informasi lebih lanjut, lihat Mode pemeriksaan ekstraksi kolom dan penimpaan.

  • Respons

    Log yang berisi kolom baru dikembalikan.

  • Contoh

    • Contoh 1: Memetakan nilai dari kolom pro dalam log mentah ke nilai dalam kamus data dan menghasilkan kolom baru bernama protocol.

      • Log Mentah

        data:  123
        pro:  1
      • Aturan Transformasi

        e_dict_map(
            {"1": "TCP", "2": "UDP", "3": "HTTP", "6": "HTTPS", "*": "Unknown"},
            "pro",
            "protocol",
        )
      • Hasil

        data:  123
        pro:  1
        protocol:  TCP
    • Contoh 2: Memetakan nilai dari kolom status dalam log mentah ke nilai dalam kamus data dan menghasilkan kolom baru bernama message.

      • Log Mentah

        status:  500
        status:  400
        status:  200
      • Aturan Transformasi

        e_dict_map({"400": "Error", "200": "Success", "*": "Other"}, "status", "message")
      • Hasil

        status:  500
        message: Other
        status:  400
        message: Error
        status:  200
        message: Success
  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Gunakan fungsi e_dict_map untuk memperkaya data log.

e_table_map

Fungsi e_table_map memetakan nilai dari kolom input ke baris dalam tabel yang ditentukan dan mengembalikan kolom baru.

  • Sintaksis

    e_table_map(data, field, output_fields, missing=None, mode="fill-auto")
  • Parameter

    Parameter

    Tipe

    Diperlukan

    Deskripsi

    data

    Tabel

    Ya

    Tabel yang digunakan untuk pemetaan.

    Catatan

    Jika Anda menggunakan fungsi sumber daya res_rds_mysql dan res_log_logstore_pull sebagai sumber data, Anda harus menyetel parameter primary_keys. Gagal melakukannya akan sangat memengaruhi kinerja dan dapat menyebabkan penundaan tugas. Untuk informasi lebih lanjut tentang cara menyetel parameter primary_keys, lihat Fungsi sumber daya.

    field

    String, daftar string, atau daftar tuple

    Ya

    Kolom input. Jika log tidak berisi kolom tersebut, tidak ada operasi yang dilakukan pada log.

    output_fields

    String, daftar string, atau daftar tuple

    Ya

    Kolom keluaran. Contoh: ["province", "pop"].

    missing

    String

    Tidak

    Nilai yang diberikan ke kolom yang ditentukan oleh output_fields ketika tidak ditemukan kecocokan untuk kolom input. Nilai default: None, yang menunjukkan bahwa tidak ada penugasan yang dilakukan. Jika Anda ingin memetakan kolom input ke beberapa kolom, Anda dapat menyetel parameter missing ke daftar nilai default yang sesuai dengan kolom input. Jumlah nilai default harus sama dengan jumlah kolom.

    Catatan

    Jika tabel berisi kolom asterisk (*), parameter missing menjadi tidak valid. Hal ini karena asterisk (*) memiliki prioritas lebih tinggi daripada parameter missing.

    mode

    String

    Tidak

    Mode penimpaan kolom. Nilai default: fill-auto. Untuk informasi lebih lanjut, lihat Mode pemeriksaan ekstraksi kolom dan penimpaan.

  • Respons

    Log yang berisi kolom baru dikembalikan.

  • Contoh

    • Contoh 1: Memetakan nilai dari kolom city ke baris dalam tabel dan mengembalikan nilai kolom province untuk baris tersebut.

      • Log Mentah

        data: 123
        city: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", "province"
        )
      • Hasil

        data: 123
        city: nj
        province: js
    • Contoh 2: Memetakan nilai dari kolom city ke baris dalam tabel dan mengembalikan nilai kolom province dan pop untuk baris tersebut.

      • Log Mentah

        data: 123
        city: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            "city",
            ["province", "pop"],
        )
      • Hasil

        data: 123
        city: nj
        province: js
        pop: 800
    • Contoh 3: Gunakan fungsi tab_parse_csv untuk membangun tabel, memetakan nilai dari kolom city ke baris dalam tabel, dan mengembalikan nilai kolom province dan pop untuk baris tersebut.

      • Log Mentah

        data: 123
        city: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city#pop#province\nnj#800#js\nsh#2000#sh", sep="#"),
            "city",
            ["province", "pop"],
        )
      • Hasil

        data: 123
        city: nj
        province: js
        pop: 800
    • Contoh 4: Gunakan fungsi tab_parse_csv untuk membangun tabel, memetakan nilai dari kolom city ke baris dalam tabel, dan mengembalikan nilai kolom province dan pop untuk baris tersebut.

      • Log Mentah

        data: 123
        city: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv(
                "city,pop,province\n|nj|,|800|,|js|\n|shang hai|,2000,|SHANG,HAI|", quote="|"
            ),
            "city",
            ["province", "pop"],
        )
      • Hasil

        data: 123
        city: nj
        province: js
        pop: 800
    • Contoh 5: Kolom input berbeda dari kolom yang sesuai dalam tabel yang digunakan untuk pemetaan. Temukan baris dalam tabel berdasarkan kolom cty dan city, lalu kembalikan nilai kolom province untuk baris tersebut.

      • Log Mentah

        data: 123
        cty: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city")],
            "province",
        )
      • Hasil

        data: 123
        cty: nj
        province: js
    • Contoh 6: Kolom input berbeda dari kolom yang sesuai dalam tabel yang digunakan untuk pemetaan. Petakan data dan ubah nama kolom keluaran.

      • Log Mentah

        data: 123
        cty: nj
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city")],
            [("province", "pro")],
        )
      • Hasil

        data: 123
        cty: nj
        pro: js
    • Contoh 7: Petakan nilai dari beberapa kolom ke baris dalam tabel.

      • Log Mentah

        data: 123
        city: nj
        pop: 800
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            ["city", "pop"],
            "province",
        )
      • Hasil

        data: 123
        city: nj
        pop: 800
        province: js
    • Contoh 8: Petakan nilai dari beberapa kolom ke baris dalam tabel. Kolom input berbeda dari kolom yang sesuai dalam tabel yang digunakan untuk pemetaan.

      • Log Mentah

        data: 123
        cty: nj
        pp: 800
      • Aturan Transformasi

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city"), ("pp", "pop")],
            "province",
        )
      • Hasil

        data: 123
        cty: nj
        pp: 800
        province: js
  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Gunakan fungsi e_table_map untuk memperkaya kode status respons HTTP.

e_tablestore_map

Fungsi e_tablestore_map memperkaya log mentah menggunakan tabel data di Tablestore sebagai tabel dimensi.

  • Sintaksis

    e_tablestore_map(
        fields,
        endpoint,
        ak_id,
        ak_secret,
        instance_name,
        table_names,
        output_fields=None,
        output_table_name=None,
        encoding="utf8",
        mode="fill-auto",
    )
  • Parameter

    Parameter

    Tipe

    Diperlukan

    Deskripsi

    fields

    String, angka, daftar, atau daftar tuple

    Ya

    Kolom log mentah yang digunakan untuk memetakan data antara log mentah dan tabel data. Fungsi ini memetakan beberapa kolom log mentah ke kunci utama dalam tabel data satu per satu. Contoh:

    • Jika tabel data berisi kunci utama a dan log mentah berisi kolom a, Anda dapat menggunakan fields="a".

    • Jika tabel data berisi kunci utama a, b, dan c dan log mentah berisi kolom a, b, dan c, Anda dapat menggunakan fields=["a", "b", "c"].

    • Jika tabel data berisi kunci utama a, b, dan c dan log mentah berisi kolom a1, b1, dan c1, Anda dapat menggunakan fields=[("a1", "a"), ("b1", "b"), ("c1", "c")].

    endpoint

    String

    Ya

    Titik akhir dari instansi Tablestore di mana tabel data dibuat. Untuk informasi lebih lanjut, lihat Titik akhir.

    Catatan

    Anda dapat menggunakan titik akhir virtual private cloud (VPC) atau titik akhir publik dari instansi Tablestore. Titik akhir VPC digunakan untuk akses dalam wilayah yang sama, dan titik akhir publik digunakan untuk akses melalui Internet tanpa memandang wilayah.

    ak_id

    String

    Ya

    ID AccessKey dari akun yang memiliki izin untuk mengakses instansi Tablestore. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.

    Jika Anda menggunakan pengguna RAM, pastikan bahwa pengguna RAM diberikan izin akses, seperti AliyunOTSReadOnlyAccess. Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM.

    ak_secret

    String

    Ya

    Rahasia AccessKey dari akun yang memiliki izin untuk mengakses instansi Tablestore. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.

    instance_name

    String

    Ya

    Nama instansi Tablestore.

    table_names

    String, daftar string, atau daftar tuple

    Ya

    Nama tabel data. Jika tabel data menggunakan indeks sekunder, atur parameter ini ke nama indeks tersebut. Untuk informasi lebih lanjut tentang fitur indeks sekunder, lihat Buat indeks sekunder.

    Sebagai contoh, jika indeks sekunder index1 dibuat untuk tabel data, atur parameter ini ke "index1".

    output_fields

    Daftar

    Tidak

    Kolom keluaran. Anda dapat menentukan nama kolom kunci utama atau kolom atribut. Contoh: ["province", "pop"]. Jika Anda tidak mengonfigurasi parameter ini, semua kolom dari baris yang cocok berdasarkan kolom input akan dikembalikan.

    Catatan

    Jika beberapa tabel data dibuat dalam instansi Tablestore, fungsi hanya akan mengembalikan data dalam tabel data yang pertama kali digunakan untuk pencocokan.

    output_table_name

    String

    Tidak

    Nama tabel data tempat data yang dikembalikan disimpan. Nilai default: None, yang menunjukkan bahwa kolom keluaran tidak berisi nama tabel. Jika Anda menyetel parameter ini ke string, kolom keluaran mencakup nama tabel.

    Sebagai contoh, tabel data bernama test digunakan, dan aturan transformasi mencakup output_fields=["province", "pop"],output_table_name="table_name". Jika kolom data ["province", "pop"] dalam tabel data test cocok, kolom keluaran adalah province: xxx, pop:xxx,table_name:test.

    encoding

    String

    Tidak

    Metode penyandian parameter permintaan HTTPS. Nilai default: utf-8.

    mode

    String

    Tidak

    Mode penimpaan kolom. Nilai default: fill-auto. Untuk informasi lebih lanjut, lihat Mode pemeriksaan ekstraksi kolom dan penimpaan.

  • Respons

    Log yang berisi kolom baru dikembalikan.

  • Contoh

    Contoh-contoh berikut didasarkan pada tabel data table_name_test berikut.

    city (kunci utama)

    pop (kunci utama)

    cid

    province

    region

    bj

    300

    1

    bj

    huabei

    nj

    800

    2

    js

    huadong

    sh

    200

    3

    sh

    huadong

    • Contoh 1: Temukan baris dalam tabel data berdasarkan kolom city dan pop, lalu kembalikan nilai kolom province dan cid untuk baris tersebut.

      • Log Mentah

        city:sh
        name:maki
        pop:200
      • Aturan Transformasi

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test",
            output_fields=["province","cid"])
                                            
      • Hasil

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
    • Contoh 2: Petakan kolom city1 dan pop1 dalam log mentah ke kunci utama city dan pop dalam tabel data, temukan baris dalam tabel data berdasarkan kolom tersebut, dan kembalikan nilai semua kolom untuk baris tersebut.

      • Log Mentah

        city1:sh
        name:maki
        pop1:200
      • Aturan Transformasi

        e_tablestore_map(
            [("city1","city"), ("pop1", "pop")],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test")
                                            
      • Hasil

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
    • Contoh 3: Temukan baris dalam tabel data berdasarkan kolom city dan pop, lalu kembalikan nilai semua kolom untuk baris tersebut. Atur output_table_name ke "table_name". Dalam hasil yang dikembalikan, Anda dapat melihat nama tabel data tempat data yang dikembalikan disimpan.

      • Log Mentah

        city:sh
        name:maki
        pop:200
      • Aturan Transformasi

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test",
            output_table_name="table_name"
        )
                                            
      • Hasil

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
        table_name:table_name_test
    • Contoh 4: Temukan baris dalam tabel data table_name_test, table_name_test1, dan table_name_test2 berdasarkan kolom city dan pop, lalu kembalikan nilai semua kolom untuk baris tersebut. Dalam hasil yang dikembalikan, Anda hanya dapat melihat data dalam tabel data table_name_test yang pertama kali digunakan untuk pencocokan.

      • Log Mentah

        city:sh
        name:maki
        pop:200
      • Aturan Transformasi

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            ["table_name_test","table_name_test1","table_name_test2"],
            output_table_name="table_name"
        )
      • Hasil

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
        table_name:table_name_test
    • Contoh 5: Temukan baris dalam tabel_data_test, tabel_data_test1, dan tabel_data_test2 berdasarkan kolom pk1 dan pk2 untuk indeks sekunder index1, lalu kembalikan nilai kolom definedcol2 yang telah ditentukan sebelumnya untuk baris tersebut. Kolom yang telah ditentukan sebelumnya ditentukan untuk indeks sekunder index1.

      • Tabel Data (index1)

        pk1 (kunci utama)

        pk2 (kunci utama)

        definedcol2 (kolom yang telah ditentukan sebelumnya)

        definedcol3 (kolom yang telah ditentukan sebelumnya)

        pk1_1

        pk2_1

        definedcol2_1

        definedcol3_1

        pk1_2

        pk2_2

        definedcol2_2

        definedcol3_2

      • Log Mentah

        pk1:pk1_1
        pk2:pk2_1
      • Aturan Transformasi

        e_tablestore_map(
            ["pk1","pk2"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "index1",
            output_fields= ["definedcol2"],
            output_table_name="table_name",
        )
                                            
      • Hasil

        pk1:pk1_1
        pk2:pk2_1
        definedcol2:definedcol2_1
        table_name:index1

e_redis_map

Fungsi e_redis_map memperkaya log mentah menggunakan tabel data di ApsaraDB for Redis sebagai tabel dimensi.

  • Sintaksis

    e_redis_map(field, output_field, host, port=6379, db=0, username=None,
                password=None, encoding="utf-8", max_retries=5, mode="fill-auto")
  • Parameter

    Parameter

    Tipe

    Diperlukan

    Deskripsi

    field

    String

    Ya

    Kolom log mentah yang digunakan untuk memetakan data antara log mentah dan tabel data. Jika log mentah tidak berisi kolom tersebut, tidak ada operasi yang dilakukan pada log.

    output_field

    String

    Ya

    Kolom keluaran.

    host

    String

    Ya

    Titik akhir dari database ApsaraDB for Redis.

    username

    String

    Tidak

    Nama pengguna dari akun yang ingin Anda gunakan untuk terhubung ke database ApsaraDB for Redis. Parameter ini kosong secara default, yang menunjukkan bahwa autentikasi tidak dilakukan.

    password

    String

    Tidak

    Kata sandi dari akun yang ingin Anda gunakan untuk terhubung ke database ApsaraDB for Redis. Parameter ini kosong secara default, yang menunjukkan bahwa autentikasi tidak dilakukan.

    port

    Integer

    Tidak

    Port dari database ApsaraDB for Redis. Nilai default: 6379.

    db

    Integer

    Tidak

    Nama database ApsaraDB for Redis. Nilai default: 0.

    encoding

    String

    Tidak

    Metode penyandian data dalam database ApsaraDB for Redis. Nilai default: utf-8.

    max_retries

    Integer

    Tidak

    Jumlah maksimum percobaan ulang yang diizinkan ketika permintaan untuk terhubung ke database ApsaraDB for Redis gagal. Nilai default: 5.

    Jika permintaan koneksi gagal setelah jumlah maksimum percobaan ulang, fungsi akan melewati log saat ini dalam proses transformasi. Transformasi selanjutnya tidak terpengaruh.

    Setiap interval antara percobaan ulang menjadi dua kali lipat dari interval sebelumnya. Interval berkisar dari 1 detik hingga 120 detik.

    mode

    String

    Tidak

    Mode penimpaan kolom. Nilai default: fill-auto. Untuk informasi lebih lanjut, lihat Mode pemeriksaan ekstraksi kolom dan penimpaan.

  • Respons

    Log yang berisi kolom baru dikembalikan.

  • Contoh

    Contoh-contoh berikut didasarkan pada tabel data berikut dalam ApsaraDB for Redis.

    Penting

    Hanya nilai tipe string yang didukung.

    Kunci

    Nilai

    i1001

    { "name": "Orange", "price": 10 }

    i1002

    { "name": "Apple", "price": 12 }

    i1003

    { "name": "Mango", "price": 16 }

    • Contoh 1: Temukan nilai dalam tabel data berdasarkan kolom item dan kembalikan nilai tersebut. Nama pengguna dan kata sandi dari akun yang digunakan untuk terhubung ke database ApsaraDB for Redis tidak ditentukan dalam aturan transformasi.

      • Log Mentah

        item: i1002
        count: 7
      • Aturan Transformasi

        e_redis_map("item", "detail", host="r-bp1olrdor8353v4s.redis.rds.aliyuncs.com")
      • Hasil

        item: i1002
        count: 7
        detail: {
           "name": "Apple",
           "price": 12
          }
    • Contoh 2: Temukan nilai dalam tabel data berdasarkan kolom item dan kembalikan nilai tersebut. Nama pengguna dan kata sandi dari akun yang digunakan untuk terhubung ke database ApsaraDB for Redis ditentukan dalam aturan transformasi.

      • Log Mentah

        item: i1003
        count: 7
      • Aturan Transformasi

        e_redis_map("item", "detail", host="r-bp1olrdor8353v4s****.redis.rds.aliyuncs.com", username="r-bp****", password="***")
      • Hasil

        item: i1003
        count: 7
        detail:{
           "name": "Mango",
           "price": 16
          }