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

Simple Log Service:データエンリッチメント用に辞書とテーブルを作成する

最終更新日:Dec 30, 2024

辞書とテーブルは、データエンリッチメントに使用される 2 つの主要なタイプのデータ構造です。 このトピックでは、辞書とテーブルを作成するための一般的な方法を説明し、さまざまな構築方法の長所と短所を比較します。

辞書の作成

  • 辞書を直接作成

    e_dict_map({"400": "error", "200": "ok", "*": "other"}, "status", "message")
  • データ設定項目から辞書を作成

    e_dict_map(res_local("http_code_map"), "status", "message")

    ここで、http_code_mapは高度なタスク設定項目です。 値は以下のように設定します。

    {"400": "error", "200": "ok", "*": "other"}
  • テーブルから辞書を作成

    tab_to_dict関数を使用して、テーブルから辞書を作成します。 テーブルの作成方法の詳細については、本ページの後半で説明します。

    e_dict_map(tab_to_dict(tab_parse_csv("status_code,status_info\n400,error\n200,ok\n*,other"), "status_code", "status_info"), "status", "message")
  • dct_make 関数を使用して辞書を作成

    e_dict_map(dct_make("400", "error", "200", "ok", "*", "other"), "status", "message")
  • 別の式を使用して辞書を作成

    e_dict_map(json_parse(v("http_code_map")), "status", "message")

    ここで、データマッピングはソースログのhttp_code_mapフィールドから取得されます。

下表に、これらの辞書作成方法を比較します。

移動方法

メリット

デメリット

辞書を直接作成

直感的でシンプルな、使いやすい方法です。

関係する内容が多すぎる場合、ルールが長くなります。 さらに、作成される辞書は静的で柔軟性がありません。

データ設定項目から辞書を作成

辞書に大量のデータが含まれ、頻繁に変更される場合は、この方法を使用することを推奨します。 この方法はメンテナンスが容易です。

この方法で作成された辞書は、タスク間でスケールせず、また再利用できません。 また、自動更新には対応していません。

テーブルから辞書を作成

柔軟なメンテナンスが特徴であるこの方法は、高度なシナリオで使用されます。

辞書を構築するためのテーブルを作成して維持する必要があるため、設定プロセスが複雑になります。

dct_make 関数を使用して辞書を作成

特定のシナリオで動的ロジックに基づいて辞書を作成できます。

この方法は比較的高度であり、保守が困難です。

別の式を使用して辞書を作成

この方法は、ログイベントのフィールドからデータマッピングを動的に抽出します。 特定のシナリオに適用されます。

この方法は比較的高度であり、保守が困難です。

テーブルの作成

  • テキストファイルからテーブルを作成

    e_table_map(tab_parse_csv("city,name,age\nshanghai,aliyun,10\ncity:nanjing,Maki,18"), "name",["city", "age"])
  • ApsaraDB RDSデータベースからテーブルを構築する

    e_table_map(tab_parse_csv(res_rds_mysql(...database="db", table="city")), "name",["city", "age"])

    RDSデータベースのcityテーブルには、次の情報が含まれています。

    content,name,age
    shanghai,aliyun,10
    nanjing,Maki,18
  • 別のログストアからテーブルを作成する

    e_table_map(res_log_logstore_pull(..., project="project_name", logstore="logstore_name", fields=["city","name","age"]),, "name",["city", "age"])

    指定されたログストアには、次のログイベントが含まれます。

    "Log 1"
    {
      "city": "shanghai",
      "name": "aliyun",
      "age": "10"
    }
    "Log 2"
    {
      "city": "city:nanjing and data > 100",
      "name": "Maki",
      "age": "18"
    }

下表で、これらのテーブルの作成方法を比較しています。

移動方法

メリット

デメリット

テキストファイルからテーブルを作成

直感的でシンプルな、使いやすい方法です。

関係する内容が多すぎる場合、ルールが長くなります。 この方法で作成されたテーブルは、保守、スケールアップ、または再利用が困難です。

ApsaraDB RDSデータベースからテーブルを構築する

  • テーブルに大量のデータが含まれ、頻繁に変更される場合は、この方法を使用することを推奨します。 この方法はメンテナンスが容易です。

  • 自動更新をサポートしています。

  • この方法で作成されたテーブルは、タスク間で再利用できます。

テーブルを構築するには、外部のApsaraDB RDSデータベースに接続する必要があるため、設定プロセスが複雑になります。

別のログストアからテーブルを作成する

この方法では、リアルタイムでデータが読み取られます。 柔軟なメンテナンスが特徴であるこの方法は、高度なシナリオで使用されます。

テーブルを作成するには別のログストアに接続する必要があるため、設定プロセスが複雑になります。