すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ある Logstore からデータを取得して別の Logstore のログデータをエンリッチする

最終更新日:Sep 12, 2026

このトピックでは、リソース関数を使用して別の Logstore からデータを取得し、データエンリッチメントを行う方法を説明します。

背景情報

あるホテルでは、ゲストの個人情報を user_logstore という Logstore に保存し、チェックイン情報を check-in_logstore という Logstore に保存しています。このホテルは、check-in_logstore から一部のフィールドを取得し、user_logstore のデータと結合したいと考えています。この目的を達成するため、Simple Log Service では、check-in_logstore からデータを取得するためのres_log_logstore_pull 関数と、データエンリッチメントを行うためのe_table_map 関数が提供されています。

異なる Logstore からのログの結合

  • 生データ

    • 個人情報用 Logstore (user_logstore)

      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 (check-in_logstore)

      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
  • 変換ルール

    説明

    res_log_logstore_pull 関数では、時間範囲を設定できます。時間間隔を指定することも、開始時刻のみを指定することもできます。

    • 変換ルールでfrom_time=1567038284,to_time=1567038500 を設定すると、この時間範囲内の Logstore データのみが取得されます。

    • 変換ルールでfrom_time="begin" を設定すると、Logstore データが継続的に取得されます。

    res_log_logstore_pull 関数のパラメータの詳細については、「res_log_logstore_pull」をご参照ください。

    • e_table_map 関数

      この関数は、両方の Logstore に共通するcid フィールドに基づいてログを照合します。cid フィールドの値が同一である場合にのみ、照合は成功します。照合が成功すると、check-in_logstore からroom_number フィールドとその値が返され、user_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")
  • 変換結果

    • e_table_map 関数

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

ブラックリストとホワイトリストを使用したデータフィルタリング

ホワイトリストの設定

  • 変換ルール

    fetch_include_data パラメータを使用してホワイトリストを設定します。たとえば、fetch_include_data="room_number:1111" を指定すると、room_number フィールドの値が1111 であるデータのみが取得されます。

    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")
  • 取得されたデータ

    status: check in
    cid:12345
    name:maki
    room_number:1111
    
    status:leave
    cid:12345
    name:maki
    room_number:1111

ブラックリストの設定

  • 変換ルール

    fetch_exclude_data パラメータを使用してブラックリストを設定します。たとえば、fetch_exclude_data="room_number:1111" を指定すると、room_number フィールドの値が1111 であるデータが破棄されます。

    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")
  • 取得されたデータ

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

ブラックリストとホワイトリストの設定

  • 変換ルール

    ブラックリストとホワイトリストの両方を設定する場合、最初にブラックリストが適用され、次にホワイトリストが適用されます。たとえば、fetch_exclude_data="cid:12345",fetch_include_data="status:check in" を指定すると、まずcid の値が12345 であるデータが破棄されます。次に、status の値が 'check in' であるデータが取得されます。

    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="cid:12345",fetch_include_data="status:check in")
  • 取得されたデータ

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

プライマリキーのメンテナンスを有効にした取得元 Logstore からのデータ取得

取得したデータを変換する前に削除したい場合は、プライマリキーのメンテナンス機能を有効にすることができます。たとえば、check-in_logstore からチェックインしたがチェックアウトしていないゲストのチェックイン情報を取得したい場合があります。取得したデータにstatus:leave が含まれている場合、そのゲストはチェックアウトしたことを示します。res_log_logstore_pull 関数のprimary_keys パラメータでプライマリキーを指定することで、このデータが変換されないようにできます。

説明
  • primary_keys パラメータは単一の文字列のみをサポートし、その文字列はfields パラメータでも指定する必要があります。

  • プライマリキーのメンテナンスを有効にする場合、データ取得元の Logstore のシャードは 1 つである必要があります。

  • プライマリキーのメンテナンスを有効にする場合、delete_data パラメータをNone に設定することはできません。

  • 変換ルール

    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")
  • 取得されたデータ

    name が maki であるゲストの最終ステータスは status:leave です。これは、ゲストがチェックアウトしたことを示します。したがって、このゲストに関連するデータは変換されません。

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