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

Simple Log Service:データ構造

最終更新日:Nov 09, 2025

このトピックでは、データ変換構文のデータ構造について説明します。

基本的なデータ構造

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

説明

Integer

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

たとえば、e_set("f1", 100) は、f1 フィールドの値を 100 に設定します。

Float

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

たとえば、e_set("f1", 1.5) は、f1 フィールドの値を 1.5 に設定します。

String

文字列には次の点が適用されます。

  • "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"') です。

Bytes

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

Null

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

説明

空の文字列は、None や null とは異なるデータの型です。

List

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

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

  • 一部の関数はリストを返します。たとえば、json_select 関数は、配列を選択するとリストを返します。

Tuple

タプルはリストと同じ関数を持ちます。たとえば、(1,2,3,4) です。

Dictionary (Dict)

{"key": "value", "k2": "v2", ...} のフォーマットのキーと値のペアのコレクションです。キーは通常、一意の文字列です。値には、上記で説明したいずれかの型を使用できます。辞書はハッシュを使用して保存され、ルックアップのために順序付けされていません。

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

  • 一部の関数は、特定のフォーマットの辞書を受け入れます。たとえば、{"key": [1,2,3], "key2": {"k3": "v3"}} です。

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

Boolean (Bool)

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

Table

複数列のテーブル構造です。外部リソースから複数行の CSV コンテンツを読み込むか、RDS または Logstore から複数列のデータを取得することで、テーブルを構築できます。テーブルは主に、データエンリッチメントマッピングやその他の詳細設定シナリオで使用されます。

Datetime object

日付と時刻を表すメモリオブジェクトです。UNIX タイムスタンプ文字列またはフォーマットされた時間文字列に変換できます。また、他の dt_ クラス関数に渡して、さらに変換することもできます。

イベントの型

イベントにはいくつかのコンポーネントと特性があり、以下で説明します。

  • プリミティブ型

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

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

    説明

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

  • メタフィールド

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

    • 時間フィールド __time__: このフィールドは、ログデータが書き込まれた時間を示します。その値は、標準の Unix 時間フォーマットの整数文字列で、1970 年 1 月 1 日 00:00:00 UTC から経過した秒数を表します。

    • Topic __topic__: Logstore 内のログは Topic 別に整理できます。ログを書き込むときに Topic を指定し、クエリするときにも Topic を指定できます。

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

  • 時間フィールドの変更

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

    説明

    時間フィールドが削除された場合、データが処理されたときのシステム時間が、ログが宛先に送信されるときの新しいイベント時間として使用されます。

  • タグ

    タグは、分類に使用されるログ上のラベルです。タグは __tag__:name のフォーマットを使用します。

    • ソース Logstore でパブリック IP アドレスを記録する機能が有効になっている場合、タグ __tag__:__receive_time__ が存在します。

    • Container Service からのログには、__tag__:__container_name__ など、複数のコンテナー関連のタグが含まれています。

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

  • 割り当て時の自動変換

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

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

    これにより、v1 フィールドの値が文字列 "12.3" に、v2 フィールドの値が文字列 "true" に設定されます。

    次の表に、さまざまなデータの型が文字列に変換される方法の例を示します。

    変換後の型

    変換後の例

    Integer

    1

    文字列

    "1"

    Float

    1.2

    文字列

    "1.2"

    Boolean

    True

    文字列

    "true"

    Bytes

    b"123"

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

    "123"

    Tuple

    • 例 1: (1, 2, 3)

    • 例 2: ("a", 1)

    リストの文字列

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

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

    List

    • 例 1: [1,2,3]

    • 例 2: ["a", 1]

    文字列

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

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

    Dictionary

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

    文字列

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

    Datetime

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

    ISO フォーマット文字列

    2018-10-10 10:10:10

固定識別子

データ変換は、コードを簡素化し、読みやすさを向上させるために、いくつかの固定識別子を提供します。

識別子

説明

true

Boolean

True。 True と同等です。

false

Boolean

False。 False と同等です。

null

None

Null。 None と同等です。

F_TAGS

String

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

F_META

String

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

F_TIME

String

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

F_PACK_META

String

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

F_RECEIVE_TIME

String

サーバーがログを受信したときの時間の tag フィールドです。"__tag__:__receive_time__" と同等です。

C_JOB_REGION

String

データ変換タスクが配置されているリージョン ID です (例: cn-hangzhou)。たとえば、e_set("job_region", C_JOB_REGION) は、データ変換タスクのリージョン ID を job_region フィールドに割り当てます。

C_JOB_PROJECT

String

データ変換タスクが配置されているプロジェクトの名前です (例: my-sls-project)。たとえば、e_set("job_project", C_JOB_PROJECT) は、データ変換タスクのプロジェクト名を job_project フィールドに割り当てます。

C_JOB_NAME

String

データ変換ジョブ構成の名前です (例: etl-1649227848-642277)。たとえば、e_set("job_name", C_JOB_NAME) は、データ変換ジョブ構成の名前を job_name フィールドに割り当てます。

C_JOB_ID

String

データ変換タスクの実行 ID です (例: 73b96061b8c1c2101d558139bf641ea9)。たとえば、e_set("job_id", C_JOB_ID) は、データ変換タスクの実行 ID を job_id フィールドに割り当てます。

JSON オブジェクト

JSON オブジェクトは、json_select または json_parse 関数を使用して文字列から解析および抽出されるオブジェクトです。JSON オブジェクトは、基本的なデータ構造で構成されています。次の表に、さまざまな入力文字列が対応する 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"}

辞書