All Products
Search
Document Center

Simple Log Service:Distribusikan data ke beberapa Logstore

Last Updated:Jun 21, 2026

Topik ini menjelaskan berbagai skenario distribusi data ke beberapa Logstore—seperti distribusi dinamis, distribusi lintas akun, distribusi lintas akun dinamis, dan distribusi dinamis kompleks—serta langkah-langkah untuk masing-masing skenario.

Informasi latar belakang

Fitur transformasi data Log Service memungkinkan Anda mendistribusikan hasil ke beberapa Logstore. Anda dapat menggunakan Pasangan Kunci Akses (AccessKey pairs) untuk mengirim hasil ke Logstore di akun berbeda atau menggunakan fungsi e_output dan e_coutput untuk mengarahkan hasil secara dinamis ke Proyek dan Logstore tertentu.

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

  • Fungsi e_output mengirim log ke Logstore yang ditentukan dan menghentikan penerapan aturan transformasi berikutnya. Untuk melanjutkan penerapan aturan setelah mengirim log, gunakan fungsi e_coutput. Untuk informasi selengkapnya, lihat fungsi e_output dan e_coutput. Topik ini menggunakan fungsi e_output sebagai contoh.

Skenario 1: Distribusi cross-account

Sebagai contoh, semua log akses untuk sebuah situs web disimpan dalam satu Logstore. Anda ingin mengarahkan log dengan status HTTP berbeda ke Logstore di akun yang berbeda.

Anda dapat mencapai hal ini dengan menggunakan fitur transformasi data 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

    • Log dengan http_status 2XX disimpan di Logstore0 pada target penyimpanan target0, dan topik-nya diatur ke success_event.

    • Log dengan http_status 3XX didistribusikan ke Logstore1 pada target penyimpanan target1, dan topiknya diatur ke redirection_event.

    • Log dengan http_status 4XX didistribusikan ke Logstore2 pada target penyimpanan target2, dan topiknya diatur ke unauthorized_event.

    • Log dengan http_status 5XX didistribusikan ke Logstore3 pada target penyimpanan target3, dengan topik diatur ke internal_server_error_event.

    target0 berada di akun A, sedangkan target1, target2, dan target3 berada di 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

    Pada panel Create Data Transformation Job, konfigurasikan target penyimpanan. Untuk informasi selengkapnya, lihat Buat pekerjaan transformasi data. Wilayah target untuk Target 2 (target1) adalah China (Beijing), dan titik akhirnya adalah https://cn-beijing.log.aliyuncs.com. Wilayah target untuk Target 3 (target2) adalah China (Hangzhou) - Current Region, dan titik akhirnya adalah cn-hangzhou-intranet.log.aliyuncs.com.

    Label

    Storage target

    Destination Project and Logstore

    AccessKey

    1

    target0

    Project0, Logstore0

    Pasangan AccessKey untuk Akun A

    2

    target1

    Project1, Logstore1

    Pasangan AccessKey untuk Akun B

    3

    target2

    Project2, Logstore2

    Pasangan AccessKey untuk Akun B

    4

    target3

    Project3, Logstore3

    Pasangan AccessKey untuk Akun B

  • Hasil transformasi

    ## Log dengan http_status 2xx didistribusikan ke Logstore0 milik 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 milik 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 milik 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 milik 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

Sebagai contoh, semua log akses untuk sebuah situs web disimpan dalam satu Logstore. Anda ingin mendistribusikan log tersebut ke Logstore berbeda berdasarkan bidang project dan LogStore.

Anda dapat mencapai hal ini dengan menggunakan fitur transformasi data 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

    • Log didistribusikan secara dinamis berdasarkan nilai bidang project dan Logstore.

    • Tambahkan bidang tag:type dengan nilai dynamic_dispatch ke log.

  • Aturan transformasi

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

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

  • Target penyimpanan

    Pada halaman Create Data Transformation Job, Anda hanya perlu mengonfigurasi target penyimpanan default. Target ini digunakan untuk menyimpan log yang tidak di-drop selama proses transformasi.

    Catatan

    Pada skenario ini, Proyek dan Logstore tujuan untuk distribusi dinamis ditentukan oleh konfigurasi dalam fungsi e_output. Tujuan ini tidak bergantung pada yang dikonfigurasi untuk target penyimpanan default (Label 1) pada halaman Create Data Transformation Job.

    Contoh konfigurasi target penyimpanan default (Label 1): Atur Target Name ke target0, Destination Region ke China (Zhangjiakou), Destination Project ke Project0, dan Destination Logstore ke Logstore0. Untuk Authorization Method, pilih Default Role.

  • 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

Sebagai contoh, semua log akses untuk sebuah situs web disimpan dalam satu Logstore. Anda ingin mengarahkan log secara dinamis ke Logstore di akun berbeda berdasarkan bidang project dan logstore dalam log.

Anda dapat mencapai hal ini dengan menggunakan fitur transformasi data 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

    Data didistribusikan secara dinamis ke Proyek di akun berbeda berdasarkan nilai bidang project dan LogStore dalam log. Misalnya, Project1 (berisi Logstore1 dan Logstore2) dimiliki oleh Akun A, sedangkan Project2 (berisi Logstore1 dan Logstore2) dimiliki oleh 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

    Pada halaman Create Data Transformation Job, konfigurasikan target penyimpanan. Untuk informasi selengkapnya, lihat Buat pekerjaan transformasi data.

    Catatan

    Pada skenario ini, Proyek dan Logstore tujuan ditentukan oleh konfigurasi dalam fungsi e_output. Tujuan ini tidak bergantung pada yang dikonfigurasi untuk target penyimpanan default (Label 1) pada halaman Create Data Transformation Job.

    Untuk Authorization Method setiap target penyimpanan, pilih AccessKey Pair, lalu masukkan AccessKey ID dan AccessKey Secret dari akun yang sesuai.

    Label

    Storage target

    Destination Project and Logstore

    AccessKey

    1

    target0

    Project0, Logstore0

    Tidak berlaku

    2

    target1

    Bisa berupa nilai apa pun. Tujuan ditentukan oleh fungsi e_output.

    Pasangan AccessKey untuk Akun A

    3

    target2

    Bisa berupa nilai apa pun. Tujuan ditentukan oleh fungsi e_output.

    Pasangan AccessKey untuk Akun B

  • Hasil transformasi

    ## Didistribusikan ke Logstore1 di Project1 milik 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 milik 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 milik 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 milik 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 kompleks

Sebagai contoh, sebuah perusahaan menjalankan iklan untuk sebuah game dan menyimpan semua log permintaan API game tersebut dalam satu Logstore. Perusahaan ingin mengurai header permintaan user_agent untuk mengarahkan permintaan dari perangkat berbeda (iOS, Android, dan Windows) ke Logstore terpisah, serta menganalisis bidang request_method untuk menghitung tingkat konversi iklan.

Anda dapat memenuhi persyaratan ini dengan menggunakan fitur transformasi data dan kueri analisis 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 log permintaan dari pengguna Windows ke Logstore1 pada target penyimpanan target1.

    • Distribusikan log permintaan dari pengguna iOS ke Logstore2 pada target penyimpanan target2.

    • Distribusikan log permintaan dari pengguna Android ke Logstore3 pada target penyimpanan target3.

  • Aturan transformasi

    Pada contoh ini, Anda dapat menggunakan fungsi ua_parse_os untuk mengurai bidang user_agent, fungsi dct_get untuk mengambil informasi sistem operasi dari header permintaan, dan fungsi e_set untuk menambahkan bidang baru bernama os dan mengatur nilainya ke informasi sistem operasi. Anda kemudian dapat menggunakan fungsi e_output dan fungsi kondisional untuk melakukan 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

    Pada halaman Create Data Transformation Job, konfigurasikan target penyimpanan. Untuk informasi selengkapnya, lihat Buat pekerjaan transformasi data.

    Untuk setiap target penyimpanan, konfigurasikan Target Name, Destination Project, dan Destination Logstore-nya. Anda juga harus memilih Destination Region (misalnya, China (Hangzhou)) dan Authorization Method (Default Role atau Custom Role). Jika Anda memilih Custom Role, Anda harus memberikan Role ARN.

    Label

    Storage target

    Destination Project and Logstore

    1

    target0

    Project0, Logstore0

    2

    target1

    Project1, Logstore1

    3

    target2

    Project2, Logstore2

    4

    target3

    Project3, Logstore3

  • Kueri dan analisis

    Jalankan kueri di Logstore tujuan untuk menentukan tingkat konversi iklan. Hasil berikut menunjukkan bahwa pengguna Android memiliki tingkat konversi lebih tinggi. Untuk informasi selengkapnya, lihat Panduan cepat kueri dan analisis.

    • Pada halaman Search & Analysis untuk Logstore2, jalankan kueri berikut untuk menghitung jumlah permintaan GET dan POST dari pengguna iOS.

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

      查询分析

    • Pada halaman Search & Analysis untuk Logstore3, jalankan kueri berikut untuk menghitung jumlah permintaan GET dan POST dari pengguna Android.

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

      查询分析