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

Simple Log Service:ログデータを抽出し、他のログストアのログデータを充実

最終更新日:Aug 28, 2024

このトピックでは、リソース関数を使用して別のLogstoreからデータをプルし、Logstoreのログデータを強化する方法について説明します。

このタスクについて

ホテルは、user_logstoreという名前のLogstoreにゲストの個人情報を保存し、チェックイン_Logstoreという名前のlogstoreにゲストのチェックイン情報を保存します。 The hotel wants to obtain some fields from the check-in_logstore Logstore and concatenate the fields with the fields in the user_logstore Logstore. ホテルはres_log_logstore_pull関数を使用してチェックイン_logstore Logstoreからデータをプルし、e_table_mapまたはe_search_dict_map関数を使用してデータをマップできます。 res_log_logstore_pull関数の詳細については、「res_log_logstore_pull」をご参照ください。 For more information about the e_table_map function, see e_table_map. For more information about the e_search_dict_map function, see e_search_table_map.

データ変換

  • 生データ

    • 個人情報の保存に使用されるuser_logstoreという名前の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という名前の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
  • 変換ルール

    説明

    The res_log_logstore_pull function allows you to set a time range or a start time for data enrichment.

    • If you set a time range in the transformation rule, for example, from_time=1567038284 and to_time=1567038500, data that is received in the specified time range by Log Service is pulled for data enrichment.

    • 変換ルールで開始時間を設定した場合 (例: from_time="begin") 、Log Serviceによって指定された時間から受信されたデータは、データエンリッチメントのためにプルされます。

    res_log_logstore_pull関数のフィールドの詳細については、「res_log_logstore_pull」をご参照ください。

    • e_table_map function

      この関数は、cidフィールドを使用して2つのログエントリをマッピングします。 If the value of the cid field in the two log entries equals each other, data mapping succeeds. The room_number field and field value are returned and concatenated with the log entry in the check-in_logstore 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_search_table_map function

      この関数は、値がチェックイン_logstore Logstoreで12346されているcidフィールドを検索し、room_numberフィールドとその値を返し、そのフィールドをuser_logstore Logstoreのログエントリのこれらのフィールドと連結します。

      e_search_table_map(res_log_logstore_pull(endpoint, ak_id, ak_secret, project, logstore, 
              fields=["cid","room_number"],
              from_time="begin",
              ), "cid=12346","room_number")
  • 結果

    • 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
    • e_search_table_map関数

      topic:xxx
      city:xxx
      cid:12346
      name:vicky
      room_number:2222

ホワイトリストルールとブラックリストルールを設定してデータをフィルタリングする

  • Configure a whitelist rule

    • 変換ルール

      fetch_include_dataフィールドを使用して、ホワイトリストルールを設定します。 この例では、fetch_include_data="room_number:1111" 式がres_log_logstore_pull関数に含まれています。 この式は、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
  • Configure a blacklist rule

    • 変換ルール

      ブラックリストルールを設定するには、fetch_exclude_dataフィールドを使用します。 この例では、fetch_exclude_data="room_number:1111" 式がres_log_logstore_pull関数に含まれています。 この式は、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
  • Configure a blacklist rule and a whitelist rule

    • 変換ルール

      ブラックリストルールとホワイトリストルールを設定する場合、最初にブラックリストルールが適用され、次にホワイトリストルールが適用されます。 In this example, the fetch_exclude_data="time:1567038285",fetch_include_data="status:check in" expression is included in the res_log_logstore_pull function. This expression indicates that the log entries whose time field value is 1567038285 dropped first and then the log entries whose status field value is check in are pulled.

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

      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

プライマリキーメンテナンスを有効にして宛先Logstoreからデータをプルする

他のデータを変換する前に、プルされたデータを削除できます。 これを行うには、主キーメンテナンス機能を有効にします。 たとえば、チェックインしたがチェックアウトしていない顧客のチェックインデータを、check-in_Logstoreという名前のlogstoreから取得したいとします。 顧客のプルされたログエントリにstatus:leaveフィールドが含まれている場合、顧客はチェックアウト済みです。 主キーメンテナンス機能を有効にすると、ログエントリは変換されません。

説明
  • 1つのフィールドを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")
  • データの取得

    上記のログエントリのstatus:leaveフィールドは、namemakiである顧客がチェックアウトしたことを示します。 したがって、このログエントリは変換されません。

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