全部产品
Search
文档中心

Simple Log Service:Menarik data dari satu logstore untuk memperkaya data log di logstore lain

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan fungsi sumber daya untuk menarik data dari logstore lain guna memperkaya data log dalam sebuah logstore.

Informasi latar belakang

Sebuah hotel menyimpan informasi pribadi tamu di logstore bernama user_logstore dan menyimpan informasi check-in tamu di logstore bernama check-in_logstore. Hotel tersebut ingin mendapatkan beberapa bidang dari logstore check-in_logstore dan menggabungkan bidang-bidang tersebut dengan bidang-bidang di logstore user_logstore. Hotel dapat menggunakan fungsi res_log_logstore_pull untuk menarik data dari logstore check-in_logstore dan menggunakan fungsi e_table_map untuk memetakan data. Untuk informasi lebih lanjut tentang fungsi res_log_logstore_pull, lihat res_log_logstore_pull. Untuk informasi lebih lanjut tentang fungsi e_table_map, lihat e_table_map.

Transformasi data

  • Data Mentah

    • Logstore bernama user_logstore yang digunakan untuk menyimpan informasi pribadi.

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
    • Logstore bernama check-in_logstore yang digunakan untuk menyimpan informasi check-in.

      time:1567038284
      status:check in
      cid:12345
      name:maki
      room_number:1111
      
      time:1567038284
      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      time:1567038500
      status:check in
      cid:12347
      name:mary
      room_number:3333
      
      time:1567038500
      status:leave
      cid:12345
      name:maki
      room_number:1111
  • Aturan Transformasi

    Catatan

    Fungsi res_log_logstore_pull memungkinkan Anda menetapkan rentang waktu atau waktu mulai untuk pengayaan data.

    • Jika Anda menetapkan rentang waktu dalam aturan transformasi, misalnya, from_time=1567038284 and to_time=1567038500, data yang diterima dalam rentang waktu tertentu oleh Simple Log Service akan ditarik untuk pengayaan data.

    • Jika Anda menetapkan waktu mulai dalam aturan transformasi, misalnya, from_time="begin", data yang diterima sejak waktu tertentu oleh Simple Log Service akan ditarik untuk pengayaan data.

    Untuk informasi lebih lanjut tentang bidang fungsi res_log_logstore_pull, lihat res_log_logstore_pull.

    • Fungsi e_table_map

      Fungsi ini memetakan dua entri log menggunakan bidang cid. Jika nilai bidang cid dalam kedua entri log sama, pemetaan data berhasil. Bidang room_number dan nilai bidang dikembalikan dan digabungkan dengan entri log di logstore check-in_logstore.

      e_table_map(res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, 
              fields=["cid","room_number"],
              from_time="begin",
              ), "cid","room_number")
  • Hasil

    • Fungsi e_table_map

      topic:xxx
      city:xxx
      cid:12345
      name:maki
      room_nuber:1111
      
      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      room_number:2222
      
      topic:xxx
      city:xxx
      cid:12347
      name:mary
      room_number:3333

Konfigurasikan aturan daftar putih dan aturan daftar hitam untuk memfilter data

  • Konfigurasikan Aturan Daftar Putih

    • Aturan Transformasi

      Gunakan bidang fetch_include_data untuk mengonfigurasi aturan daftar putih. Dalam contoh ini, ekspresi fetch_include_data="room_number:1111" termasuk dalam fungsi res_log_logstore_pull. Ekspresi ini menunjukkan bahwa hanya entri log yang memiliki nilai bidang room_number adalah 1111 yang ditarik.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_include_data="room_number:1111")
    • Data yang Diambil

      status: check in
      cid:12345
      name:maki
      room_number:1111
      
      status:leave
      cid:12345
      name:maki
      room_number:1111
  • Konfigurasikan Aturan Daftar Hitam

    • Aturan Transformasi

      Gunakan bidang fetch_exclude_data untuk mengonfigurasi aturan daftar hitam. Dalam contoh ini, ekspresi fetch_exclude_data="room_number:1111" termasuk dalam fungsi res_log_logstore_pull. Ekspresi ini menunjukkan bahwa hanya entri log yang memiliki nilai bidang room_number adalah 1111 yang dihapus.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="room_number:1111")
    • Data yang Diambil

      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      
      status:check in
      cid:12347
      name:mary
      room_number:3333
  • Konfigurasikan Aturan Daftar Hitam dan Aturan Daftar Putih

    • Aturan Transformasi

      Jika Anda mengonfigurasi aturan daftar hitam dan aturan daftar putih, aturan daftar hitam diterapkan terlebih dahulu kemudian aturan daftar putih. Dalam contoh ini, ekspresi fetch_exclude_data="time:1567038285",fetch_include_data="status:check in" termasuk dalam fungsi res_log_logstore_pull. Ekspresi ini menunjukkan bahwa entri log yang memiliki nilai bidang time adalah 1567038285 dihapus terlebih dahulu dan kemudian entri log yang memiliki nilai bidang status adalah check in ditarik.

      res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status"],from_time=1567038284,to_time=1567038500,fetch_exclude_data="time:1567038285",fetch_include_data="status:check in")
    • Data yang Diambil

      status:check in
      cid:12345
      name:maki
      room_number:1111
      
      
      status:check in
      cid:12346
      name:vicky
      room_number:2222
      
      
      status:check in
      cid:12347
      name:mary
      room_number:3333

Aktifkan pemeliharaan kunci utama untuk menarik data dari logstore tujuan

Untuk membuang data sebelum mentransformasikannya, Anda dapat mengaktifkan fitur pemeliharaan kunci utama. Misalnya, Anda ingin menarik data check-in pelanggan yang telah check-in tetapi belum check-out dari logstore bernama check-in_logstore. Jika entri log yang ditarik dari pelanggan mencakup bidang status:leave, pelanggan tersebut telah check-out. Anda dapat menyetel parameter primary_keys dari fungsi res_log_logstore_pull dan entri log tidak ditransformasikan.

Catatan
  • Anda dapat menetapkan satu bidang sebagai nilai parameter primary_keys. Bidang tersebut harus ada di bidang fields.

  • Sebelum Anda mengaktifkan fitur pemeliharaan kunci utama, pastikan bahwa logstore tempat Anda ingin menarik data hanya memiliki satu shard.

  • Jika Anda mengaktifkan fitur pemeliharaan kunci utama, Anda tidak dapat menetapkan bidang delete_data ke None.

  • Aturan Transformasi

    res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, ["cid","name","room_number","status","time"],from_time=1567038284,to_time=None,primary_keys="cid",delete_data="status:leave")
  • Mengambil Data

    Bidang status:leave dalam entri log sebelumnya menunjukkan bahwa pelanggan yang memiliki nama name adalah maki telah check-out. Oleh karena itu, entri log ini tidak ditransformasikan.

    time:1567038284
    status:check in
    cid:12346
    name:vicky
    room_number:2222
    
    time:1567038500
    status:check in
    cid:12347
    name:mary
    room_number:3333