All Products
Search
Document Center

Simple Log Service:Distribute data to multiple destination Logstores

Last Updated:Mar 14, 2026

Topik ini menjelaskan berbagai skenario distribusi data ke beberapa Logstore tujuan beserta langkah-langkah yang diperlukan, mencakup distribusi dinamis, distribusi cross-account, distribusi cross-account dinamis, dan distribusi dinamis dalam skenario kompleks.

Informasi latar belakang

Fitur transformasi data Simple Log Service mendukung pendistribusian hasil transformasi ke beberapa Logstore tujuan. Saat menyimpan hasil transformasi, Anda dapat mengatur informasi AccessKey untuk akun berbeda guna mendistribusikan hasil tersebut ke Logstore milik akun-akun tersebut. Anda juga dapat menggunakan fungsi e_output atau e_coutput untuk memperoleh Proyek dan Logstore tujuan secara dinamis serta mendistribusikan hasil ke Logstore yang berbeda.

Catatan
  • Anda dapat mendistribusikan hasil transformasi ke Logstore dari maksimal 20 akun.

  • Jika Anda menggunakan fungsi e_output, log yang dikirim ke LogStore tertentu tidak akan diproses oleh aturan transformasi selanjutnya. Untuk menerapkan aturan transformasi selanjutnya pada log setelah dikirim ke LogStore tertentu, gunakan fungsi e_coutput. Untuk informasi lebih lanjut, lihat e_outputLogStoreut. Topik ini menggunakan fungsi e_output sebagai contoh.

Skenario 1: Distribusi cross-account

Misalnya, semua access log untuk sebuah website disimpan dalam satu Logstore. Anda ingin mendistribusikan dan menyimpan log dengan status berbeda ke Logstore di bawah akun yang berbeda.

Untuk memenuhi kebutuhan ini, Anda dapat menggunakan fitur transformasi data Simple Log Service.

  • Log mentah

    http_host:  example.com
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    http_host:  example.org
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    http_host:  example.net
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    http_host:  aliyundoc.com
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https
  • Persyaratan distribusi

    • Simpan log dengan http_status bernilai 2XX di Logstore0 target penyimpanan target0. Atur topik log menjadi success_event.

    • Distribusikan log dengan http_status bernilai 3XX ke Logstore1 target penyimpanan target1. Atur topik log menjadi redirection_event.

    • Distribusikan log dengan http_status bernilai 4XX ke Logstore2 target penyimpanan target2. Atur topik log menjadi unauthorized_event.

    • Distribusikan log dengan http_status bernilai 5XX ke Logstore3 target penyimpanan target3. Atur topik log menjadi internal_server_error_event.

    target0 berada di bawah Akun A. target1, target2, dan target3 berada di bawah Akun B.

  • Aturan transformasi

    e_switch(e_match("status", r"2\d+"), e_set("__topic__", "success_event"),
             e_match("status", r"3\d+"), e_compose(e_set("__topic__", "redirection_event"), e_output("target1")),
             e_match("status", r"4\d+"), e_compose(e_set("__topic__", "unauthorized_event"), e_output("target2")),
             e_match("status", r"5\d+"), e_compose(e_set("__topic__", "internal_server_error_event`"), e_output("target3"))
        )
  • Target penyimpanan

    Di panel Create Data Transformation Job, Anda dapat mengonfigurasi target penyimpanan. Untuk informasi lebih lanjut, lihat Create a data transformation job.数据分发

    Label

    Storage Target

    Destination Project and Logstore

    AccessKey

    1

    target0

    Project0, LogStore0

    Informasi AccessKey untuk Akun A

    2

    target1

    Project1, Logstore1

    Informasi AccessKey untuk Akun B

    3

    target2

    Project2, Logstore2

    Informasi AccessKey untuk Akun B

    4

    target3

    Project3, Logstore3

    Informasi AccessKey untuk Akun B

  • Hasil transformasi

    ## Log dengan http_status 2XX didistribusikan ke logstore0 Akun A.
    
    __topic__:  success_event
    http_host:  example.com
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    ## Log dengan http_status 3XX didistribusikan ke Logstore1 Akun B.
    
    __topic__:  redirection_event
    http_host:  example.org
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    ## Log dengan http_status 4XX didistribusikan ke Logstore2 Akun B.
    
    __topic__: unauthorized_event
    http_host:  example.net
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    ## Log dengan http_status 5XX didistribusikan ke Logstore3 Akun B.
    
    __topic__: internal_server_error_event
    http_host:  aliyundoc.com
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https

Skenario 2: Distribusi dinamis sederhana

Misalnya, semua access log untuk sebuah website disimpan dalam satu Logstore. Anda ingin mendistribusikan dan menyimpan log tersebut ke Logstore yang berbeda berdasarkan bidang project dan LogStore.

Untuk memenuhi kebutuhan ini, Anda dapat menggunakan fitur transformasi data Simple Log Service.

  • Log mentah

    __tag__:type: dynamic_dispatch
    host:  example.aliyundoc.com
    project: Project1
    logstore: Logstore1
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    __tag__:type: dynamic_dispatch
    host:  demo.aliyundoc.com
    project: Project1
    logstore: Logstore2
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    __tag__:type:  dynamic_dispatch
    host:   learn.aliyundoc.com
    project: Project2
    logstore: Logstore1
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    __tag__:type: dynamic_dispatch
    host:   guide.aliyundoc.com
    project: Project2
    logstore: Logstore2
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https
  • Persyaratan distribusi

    • Distribusikan log secara dinamis berdasarkan nilai bidang project dan LogStore.

    • Tambahkan bidang __tag:__type ke log dengan nilai dynamic_dispatch.

  • Aturan transformasi

    e_output(project=v("project"), logstore=v("logstore"), tags={"type": "dynamic_dispatch"})

    Fungsi e_output mengekstraksi nilai bidang project dan LogStore secara dinamis untuk mendistribusikan log.

  • Target penyimpanan

    Di panel Create Data Transformation Job, Anda dapat mengatur target penyimpanan default. Target ini digunakan untuk menyimpan log lain yang tidak di-drop selama transformasi.

    Catatan

    Dalam skenario ini, Proyek dan Logstore tujuan untuk distribusi dinamis ditentukan oleh konfigurasi dalam fungsi e_output. Hal ini tidak terkait dengan Proyek dan Logstore tujuan yang dikonfigurasi untuk target penyimpanan default (berlabel 1) di panel Create Data Transformation Job.

    动态分发

  • Hasil transformasi

    ## Didistribusikan ke Logstore1 di Project1.
    
    __tag__:type: dynamic_dispatch
    host:  example.aliyundoc.com
    project: Project1
    logstore: Logstore1
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    ## Didistribusikan ke Logstore2 di Project1.
    
    __tag__:type: dynamic_dispatch
    host:  demo.aliyundoc.com
    project: Project1
    logstore: Logstore2
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    ## Didistribusikan ke Logstore1 di Project2.
    
    __tag__:type:  dynamic_dispatch
    host:   learn.aliyundoc.com
    project: Project2
    logstore: Logstore1
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    ## Didistribusikan ke Logstore2 di Project2.
    
    __tag__:type: dynamic_dispatch
    host:   guide.aliyundoc.com
    project: Project2
    logstore: Logstore2
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https

Skenario 3: Distribusi cross-account dinamis

Misalnya, semua access log untuk sebuah website disimpan dalam satu Logstore. Anda ingin mendistribusikan log secara dinamis ke Logstore di bawah akun yang berbeda berdasarkan bidang project dan LogStore.

Untuk memenuhi kebutuhan ini, Anda dapat menggunakan fitur transformasi data Simple Log Service.

  • Log mentah

    host:  example.aliyundoc.com
    project: Project1
    logstore: Logstore1
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    host:  demo.aliyundoc.com
    project: Project1
    logstore: Logstore2
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    host:   learn.aliyundoc.com
    project: Project2
    logstore: Logstore1
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    host:   guide.aliyundoc.com
    project: Project2
    logstore: Logstore2
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https
  • Persyaratan distribusi

    Distribusikan log secara dinamis berdasarkan nilai bidang project dan LogStore. Proyek tujuan berada di bawah akun yang berbeda. Project1, yang berisi dua Logstore (LogStore1 dan LogStore2), berada di bawah Akun A. Project2, yang juga berisi dua Logstore (LogStore1 dan LogStore2), berada di bawah Akun B.

  • Aturan transformasi

    e_switch(e_match(v("project"), "Project1"), e_output(name="target1", project=v("project"), logstore=v("logstore")),
             e_match(v("project"), "Project2"), e_output(name="target2", project=v("project"), logstore=v("logstore")))
  • Target penyimpanan

    Di panel Create Data Transformation Job, Anda dapat mengonfigurasi target penyimpanan. Untuk informasi lebih lanjut, lihat Create a data transformation job.

    Catatan

    Dalam skenario ini, Proyek dan Logstore tujuan ditentukan oleh konfigurasi dalam fungsi e_output. Hal ini tidak terkait dengan Proyek dan Logstore tujuan yang dikonfigurasi untuk target penyimpanan default (berlabel 1) di panel Create Data Transformation Job.

    跨账号动态分发

    Label

    Storage Target

    Destination Project and Logstore

    AccessKey

    1

    target0

    Project0, Logstore0

    Tidak berlaku

    2

    target1

    Pilih apa saja. Tujuan ditentukan oleh fungsi e_output.

    Informasi AccessKey untuk Akun A

    3

    target2

    Pilih apa saja. Tujuan ditentukan oleh fungsi e_output.

    Informasi AccessKey untuk Akun B

  • Hasil transformasi

    ## Didistribusikan ke Logstore1 di Project1 Akun A.
    
    host:  example.aliyundoc.com
    project: Project1
    logstore: Logstore1
    http_status:  200
    request_method:  GET
    request_uri:  /pic/icon.jpg
    scheme:  https
    
    ## Didistribusikan ke Logstore2 di Project1 Akun A.
    host:  demo.aliyundoc.com
    project: Project1
    logstore: Logstore2
    http_status:  301
    request_method:  POST
    request_uri:  /data/data.php
    scheme:  http
    
    ## Didistribusikan ke Logstore1 di Project2 Akun B.
    
    host:   learn.aliyundoc.com
    project: Project2
    logstore: Logstore1
    http_status:  404
    request_method:  GET
    request_uri:  /category/abc/product_id
    scheme:  https
    
    ## Didistribusikan ke Logstore2 di Project2 Akun B.
    
    host:   guide.aliyundoc.com
    project: Project2
    logstore: Logstore2
    http_status:  504
    request_method:  GET
    request_uri:  /data/index.html
    scheme:  https

Skenario 4: Distribusi dinamis dalam skenario kompleks

Misalnya, sebuah perusahaan mengiklankan sebuah game dan menyimpan semua informasi permintaan API untuk game tersebut dalam satu Logstore. Perusahaan tersebut ingin mengurai header permintaan user-agent, mendistribusikan dan menyimpan permintaan dari perangkat berbeda (iOS, Android, dan Windows), serta menganalisis metode untuk memperoleh tingkat konversi iklan.

Untuk memenuhi kebutuhan ini, Anda dapat menggunakan fitur transformasi data dan kueri serta analisis Simple Log Service.

  • Log mentah

    __source__:127.0.0.0
    __tag__:__receive_time__: 1589541467
    ip:10.0.0.0
    request_method: GET
    user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
  • Persyaratan distribusi

    • Distribusikan dan simpan informasi permintaan dari pengguna Windows di Logstore1 target penyimpanan target1.

    • Distribusikan dan simpan informasi permintaan dari pengguna iOS di Logstore2 target penyimpanan target2.

    • Distribusikan dan simpan informasi permintaan dari pengguna Android di Logstore3 target penyimpanan target3.

  • Aturan transformasi

    Dalam contoh ini, Anda dapat menggunakan fungsi ua_parse_os untuk mengurai bidang user_agent. Anda dapat menggunakan fungsi dct_get untuk mengambil informasi sistem operasi dari header permintaan. Kemudian, Anda dapat menggunakan fungsi e_set untuk menambahkan bidang os yang berisi informasi sistem operasi. Terakhir, Anda dapat menggunakan fungsi e_output dan fungsi kondisional untuk distribusi dinamis.

    e_set("os", dct_get(ua_parse_os(v("user_agent")),"family"))
    e_if(e_search("os==Windows"),e_output(name="target1"))
    e_if(e_search("os=iOS"),e_output(name="target2"))
    e_if(e_search("os==Android"),e_output(name="target3"))
  • Target penyimpanan

    Di panel Create Data Transformation Job, Anda dapat mengonfigurasi target penyimpanan. Untuk informasi lebih lanjut, lihat Create a data transformation job.

    默认存储目标

    Label

    Storage Target

    Destination Project and Logstore

    1

    target0

    Project0 dan LogStore0

    2

    target1

    Project1, Logstore1

    3

    target2

    Project2, Logstore2

    4

    target3

    Project3, Logstore3

  • Kueri dan analisis

    Lakukan operasi kueri dan analisis di Logstore tujuan untuk memperoleh tingkat konversi iklan. Hasil kueri berikut menunjukkan bahwa tingkat konversi iklan untuk pengguna Android lebih tinggi. Untuk informasi lebih lanjut, lihat Quick start for query and analysis.

    • Di halaman kueri dan analisis Logstore2, Anda dapat memasukkan pernyataan kueri berikut untuk melihat rasio permintaan GET dan POST dari pengguna iOS.

      * | SELECT Request_method, COUNT(*) as number GROUP BY Request_method

      查询分析

    • Di halaman kueri dan analisis Logstore3, Anda dapat memasukkan pernyataan kueri berikut untuk melihat rasio permintaan GET dan POST dari pengguna Android.

      * | SELECT Request_method, COUNT(*) as number GROUP BY Request_method

      查询分析