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

Simple Log Service:データ構造

最終更新日:Jun 11, 2026

データ変換では、ログデータを処理するために、基本データ型、イベント型、固定識別子、JSON オブジェクトなど、いくつかのデータ構造を使用します。

基本的なデータ構造

次の表に、基本的なデータ構造の型を示します。

説明

整数

フィールド値を設定したり、関数にパラメーターを渡したりします。

例:e_set("f1", 100) は、フィールド f1100 に設定します。

浮動小数点数

フィールド値を設定したり、関数にパラメーターを渡したりします。

例:e_set("f1", 1.5) は、フィールド f11.5 に設定します。

文字列

文字列は、次の規則をサポートしています。

  • "abc"'abc' と同じです。文字列に二重引用符 (") が含まれる場合は、'abc"xyz' のように、単一引用符で文字列を囲むことができます。また、"abc\"xyz" のように、バックスラッシュ (\) を使用して二重引用符をエスケープすることもできます。

    バックスラッシュ (\) はエスケープ文字です。たとえば、"\\abc\\xyz" は文字列 \abc\xyz を表します。

  • r"\\10.64.1.1\share\folder""\\\\10.64.1.1\\share\\folder" と同じです。どちらも文字列 \\10.64.1.1\share\folder を表します。

  • マルチバイト文字列は Unicode で表現されます。例えば、文字列 Chinese の長さは 2 です。

  • 正規表現は文字列として表現されます。

説明

検索値はダブルクォーテーションマーク ("") で囲む必要があります。外側の文字列をシングルクォーテーションマーク ('') で囲み、内側の検索値をダブルクォーテーションマーク ("") で囲むことができます。たとえば、e_search("domain: '/url/test.jsp'") は誤りです。正しいフォーマットは e_search('domain: "/url/test.jsp"') です。

バイト

文字列のメモリエンコーディングとは異なります。 b'abc' は、一部の特殊な関数のパラメーターまたは戻り値の型として使用されます。

空値

None または null は値が存在しないことを示します。一部の関数の名前付きパラメーターはデフォルトで None になり、これは特定のデフォルトの動作を示します。

説明

空の文字列は、None や null とはデータ型が異なります。

リスト

[1,2,3,4] のような配列です。

  • 一部の関数は、パラメーターとしてリストを受け入れます。例:e_dict_map("dict data", ["f1", "f2", "f3"], ...)

  • 一部の関数はリストを返します。例:json_select は、配列を選択するときにリストを返します。

タプル

リストと同様に機能します。 例:(1,2,3,4)

辞書 (Dict)

{"key": "value", "k2": "v2", ...} という形式の Key-Value ペアのコレクションです。キーは通常、一意の文字列です。値には、上記のいずれの型も使用できます。辞書はハッシュを使用しており、順序は保証されません。

  • イベントは特殊な辞書型です。

  • 一部の関数は、特定の形式の辞書を受け入れます。例:{"key": [1,2,3], "key2": {"k3": "v3"}}

  • 辞書は、辞書マッピングの入力データとしても使用されます。

ブール値 (Bool)

たとえば、TrueFalsetrue、または false です。

テーブル

複数列のテーブル構造です。テーブルは、外部リソースから複数行の CSV コンテンツを読み込んだり、ApsaraDB RDS または Logstore から複数列のデータを取得したりして構築します。テーブルは、主にデータエンリッチメントのマッピングやその他の高度な設定シナリオで使用されます。

datetime オブジェクト

メモリ内の日付と時刻を表します。UNIX タイムスタンプ文字列またはフォーマットされた時刻文字列に変換したり、さらなる変換のために dt_ 関数に渡したりすることができます。

イベント型

データ変換は、次のイベント型をサポートしています。

  • プリミティブ型

    データ変換は、{"__topic__": "access_log", "content": "....."} のように、ログデータを辞書として処理します。

    辞書のキーと値は、ログのフィールドと値に対応します。

    説明

    イベントのキーと値はどちらも文字列であり、キーは一意である必要があります。

  • メタフィールド

    メタフィールドには次のものが含まれます。

    • 時刻フィールド __time__:ログが書き込まれたときの UNIX タイムスタンプ (1970年1月1日 00:00:00 UTC からの秒数) です。整数の文字列として保存されています。

    • トピック __topic__:Logstore 内のログをトピック別に整理します。ログの書き込みまたはクエリ時にトピックを指定できます。

    • ソース __source__:ログを生成したマシンの IP アドレスなど、ログのソースです。

  • 時刻フィールドの変更

    時刻フィールドの値を変更して、イベント時刻を変更します。このフィールドに対する他の操作には、datetime 関数を使用することもできます。

    説明

    時刻フィールドが削除された場合、システムはログを宛先に送信する際に処理時刻をイベント時刻として使用します。

  • タグ

    タグは分類に使用されるログのラベルで、__tag__:name の形式です。

    • ソース Logstore でパブリック IP アドレスの記録が有効になっている場合、ログには tag:__tag__:__receive_time__ タグが含まれます。

    • コンテナサービスのログには、__tag__:__container_name__ のような、コンテナ関連の複数のタグが含まれています。

    • タグを追加または変更できます。type というタグを追加するには、e_set("__tag__:type", "access_log") を使用します。

  • 代入時の自動変換

    イベントのキーと値は文字列です。値を割り当てるか、新しいフィールドを設定すると、キーと値は自動的に文字列に変換されます。例:

    e_set("v1", 12.3)
    e_set("v2", True)

    これにより、v1 は文字列 "12.3" に、v2 は文字列 "true" に設定されます。

    次の表は、さまざまなデータ型がどのように文字列に変換されるかを示しています。

    変換後の型

    変換後の例

    整数

    1

    文字列

    "1"

    浮動小数点数

    1.2

    文字列

    "1.2"

    ブール値

    True

    文字列

    "true"

    バイト

    b"123"

    UTF-8 を使用して文字列にデコード

    "123"

    タプル

    • 例 1: (1, 2, 3)

    • 例 2: ("a", 1)

    リストの文字列

    • 例 1: "[1, 2, 3]"

    • 例 2: "[\"a\", 1]"

    リスト

    • 例 1: [1,2,3]

    • 例 2: ["a", 1]

    文字列

    • 例 1: "[1, 2, 3]"

    • 例 2: "[\"a\", 1]"

    辞書

    {"1":2, "3":4}

    文字列

    "{\"1\": 2, \"3\": 4}"

    Datetime

    datetime(2018, 10, 10, 10, 10, 10)

    ISO 形式の文字列

    2018-10-10 10:10:10

固定識別子

データ変換は、コードを簡素化し、可読性を向上させるための固定識別子を提供します。

識別子

説明

true

ブール値

True と同等です。

false

ブール値

False と同等です。

null

None

None と同等です。

F_TAGS

文字列

TAG フィールドの正規表現です。 "__tag__:.+" と同等です。

F_META

文字列

TAG__topic__、および __source__ フィールドの正規表現です。 __tag__:.+|__topic__|__source__ と同等です。

F_TIME

文字列

__time__ フィールド名です。 __time__ と同等です。

F_PACK_META

文字列

pack meta フィールドの正規表現です。 "__pack_meta__|__tag__:__pack_id__" と同等です。

F_RECEIVE_TIME

文字列

サーバーログ受信時刻の tag フィールドです。 "__tag__:__receive_time__" と同等です。

C_JOB_REGION

文字列

データ変換タスクのリージョン ID です (例:cn-hangzhou)。 例:e_set("job_region", C_JOB_REGION)

C_JOB_PROJECT

文字列

データ変換タスクのプロジェクト名です (例:my-sls-project)。 例:e_set("job_project", C_JOB_PROJECT)

C_JOB_NAME

文字列

データ変換ジョブ設定名です (例:etl-1649227848-642277)。 例:e_set("job_name", C_JOB_NAME)

C_JOB_ID

文字列

データ変換タスクの実行 ID です (例:73b96061b8c1c2101d558139bf641ea9)。 例:e_set("job_id", C_JOB_ID)

JSON オブジェクト

JSON オブジェクトは、json_select または json_parse を使用して文字列から解析されます。これは基本的なデータ構造で構成されています。次の表は、入力文字列がどのように JSON オブジェクトに変換されるかを示しています。

文字列

JSON オブジェクト

実際の型

1

1

整数

1.2

1.2

浮動小数点数

true

True

ブール値

false

False

ブール値

"abc"

"abc"

文字列

null

None

None

["v1", "v2", "v3"]

["v1", "v2", "v3"]

リスト

["v1", 3, 4.0]

["v1", 3, 4.0]

リスト

{"v1": 100, "v2": "good"}

{"v1": 100, "v2": "good"}

辞書

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

辞書