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

Simple Log Service:フィールド抽出モード

最終更新日:Oct 31, 2024

このトピックでは、さまざまな関数のmodeパラメーターの値について説明します。 modeパラメータは、フィールド抽出モードを指定する。

関連機能

次の表に、modeパラメーターを使用する関数と、各関数のmodeパラメーターに使用されるデフォルト値を示します。

カテゴリ

関数

モードのデフォルト値

値の割り当て関数

e_set

overwrite

値抽出関数

e_regex

fill-auto

e_json

fill-auto

e_kv

fill-auto

e_csv、e_psv、およびe_tsv

fill-auto

e_kv_delimit

fill-auto

e_anchor

overwrite

e_syslogrfc

overwrite

マッピングおよび強化関数

e_dict_マップ

fill-auto

e_table_マップ

fill-auto

フィールド抽出チェックと上書きモード

次の表に、modeパラメーターの値を示します。

説明

fill

フィールドが存在しない場合、またはフィールドがすでに存在するが、フィールドの値が空の文字列である場合は、新しいフィールドを設定します。

fill-auto

新しい値が空の文字列ではなく、次のいずれかの条件が満たされている場合は、新しいフィールドを設定します。 フィールドはすでに存在しますが、フィールドの値は空の文字列です。

add

フィールドが存在しない場合は、新しいフィールドを設定します。

add-auto

新しい値が空の文字列ではなく、フィールドが存在しない場合は、新しいフィールドを設定します。

overwrite

常に新しいフィールドを設定します。

overwrite-auto

新しい値が空の文字列でない場合は、新しいフィールドを設定します。

次の表に、さまざまなモードでの関数の動作例を示します。

  • 生ログ

    a:         # An empty string
    b: 100
  • 変換の例

    モード

    変換ルール

    結果

    add

    e_set("c" 、"123" 、mode='add')

    a:# An empty string
    b: 100
    c: 123

    e_set("c" 、"" 、mode='add')

    a:# An empty string
    b: 100
    c:

    e_set("a" 、"123" 、mode='add')

    a:# An empty string
    b: 100

    add-auto

    e_set("c" 、"" 、mode='add-auto')

    cフィールドは追加されず、生ログは変更されません。

    fill

    e_set("c" 、"123" 、mode='fill')

    a:# An empty string
    b: 100
    c: 123

    e_set("c" 、"" 、mode='fill')

    a:# An empty string
    b: 100
    c:

    e_set("a" 、"123" 、mode='fill')

    a: 123
    b: 100

    e_set("b" 、"123" 、mode='fill')

    bフィールドはb: 100のままです。

    fill-auto

    e_set("c" 、"" 、mode='fill-auto')

    cフィールドは追加されず、生ログは変更されません。

    overwrite

    e_set("c" 、"123" 、mode='overwrite')

    a:# An empty string
    b: 100
    c: 123

    e_set("c" 、"" 、mode='overwrite')

    a:# An empty string
    b: 100
    c: 

    e_set("b" 、"200" 、mode='overwrite')

    a:# An empty string
    b: 200

    e_set("b", "", mode='overwrite')

    a:# An empty string
    b: 

    overwrite-auto

    e_set("b", "", mode='overwrite-auto')

    bフィールドはb: 100のままです。

抽出のフィールド名の制限

e_json、e_kv、e_kv_delimit、e_regexなどの関数がサポートされています。

名前が制限に従うフィールドのみを抽出できます。 名前が制限に従わないフィールドは破棄されます。 正規表現u'_*[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\u4e00-\u9fa5\u0800-\u4e00\\w\\.\\-]* 'はサポートされていません。 たとえば、名前が123=abc__1 __: 1001k=200、または {"123": "456"} と一致するフィールドは破棄されます。

次の例は、フィールド名に対して関数の既定の制限を使用する方法を示しています。

  • 生ログ

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
  • 変換ルール

    e_json(
        "data",
        fmt="parent",
        sep="@",
        prefix="__",
        suffix="__",
        include_node=r"[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\w\-\.]*",
        mode="fill-auto",
    )
  • 結果

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
    data@__k1__:100
    k2@__k3__:200
    k4@__k5__:300