このトピックでは、データ変換構文に関連するデータ構造について説明します。
基本的なデータ構造
次の表に、さまざまなタイプの基本データ構造を示します。
種類 | 説明 |
---|---|
Integer | フィールド値として整数を使用できます。 整数をパラメーターの値として関数に渡すこともできます。 たとえば、 |
浮く | フィールド値としてfloat値を使用できます。 float値をパラメーターの値として関数に渡すこともできます。 例えば、 |
String | 文字列は複数の形式で指定できます。 例:
説明 フィールド値は二重引用符 ("") で囲む必要があります。 一重引用符 ('') を使用して文字列を囲み、二重引用符 (" ") を使用してフィールド値を囲むことができます。 たとえば、 e_search("domain: '/url/test.jsp'") は無効であり、e_search('domain: "/url/test.jsp"') は有効です。 |
Byte | 例: b'abc' 。 バイトは、文字列の形式とは異なる形式を使用してメモリ内でエンコードされます。 Bytes受信されたと特別な機能によって返さ。 |
なし | None とヌル ヌル値を記入。 Some名前パラメータの機能使用None 特定デフォルト示すためにデフォルト値として行動。 説明 Noneまたはnullは異なるから空の文字列。 |
List | Anアレイ。 Example: [1,2、3,4] 。
|
Tuple | タプルとリストは同じように機能します。 例: (1,2,3,4) |
辞書 | ディクショナリは、{"key": "value" 、"k2": "v2" 、...} 形式のキーと値のペアのコレクションです。 キーはほとんどの場合文字列であり、繰り返すことはできません。 キーの値は、前述のデータ型にすることができます。 キーと値のペアは、順序付けされていない方法でハッシュテーブルに格納されます。
|
Boolean | 例: True 、False 、true 、および false 。 |
テーブル | 各テーブルは複数の列で構成されています。 外部リソースから複数行のCSV形式のデータを読み込むことで、テーブルを作成できます。 ApsaraDB RDSインスタンスとLogstoreから複数の列のデータをロードしてテーブルを構築することもできます。 テーブルは、データマッピングやエンリッチメントなどの高度な操作に適しています。 |
Datetime object | datetimeオブジェクトは、日付および時刻情報を示すメモリオブジェクトである。 UNIX タイムスタンプまたはフォーマットされた時間文字列に変換できます。 datetimeオブジェクトは、さらに変換するためにdt_like 関数に渡すことができます。 |
イベントタイプ
次のリストは、イベントタイプを示しています。
- 基本タイプ
ログデータは、データ変換プロセス中に辞書構造に処理されます。 例:
{"__topic__": "access_log", "content": "....."}
辞書のキーと値は、ログのフィールドと値に対応します。
説明 イベントのキーと値は文字列であり、キーは一意である必要があります。 - メタフィールド 次のメタフィールドがサポートされています。
__time__
: ログデータの書き込み時に指定されたログ時間。 値は整数を表す文字列で、UNIXの時間形式に従います。 1970年1月1日木曜日00:00:00から経過した秒数です。__topic__
: ログのトピック。 トピックは、Logstoreでログをグループ化するために使用されます。 ログがLogstoreに書き込まれるときに、ログのトピックを指定できます。 ログを照会するときにトピックを指定できます。__source__
: ログのソース。 例えば、このフィールドの値は、ログが生成されるサーバのIPアドレスとすることができる。
- __time__フィールドの変更 __time__ フィールドの値を変更すると、ログのイベント時間を変更できます。 日付と時刻の関数を使用して、__time__ フィールドでより多くの操作を実行できます。説明 __time__フィールドが削除された場合、ログが処理されたシステム時刻が、ログが宛先ログストアに書き込まれるイベント時刻として使用されます。
- タグ タグは、ログのフィールドを区別するために使用されます。 タグは
__tag __: Name
形式です。- ソースLogstoreがパブリックIPアドレスを記録するように設定されている場合、ログには
tag: __tag __:__ receive_time__
が含まれます。 - コンテナログには、コンテナ関連のタグが多数含まれています。 例:
__tag __:__ container_name__
- タグは追加および変更できます。 たとえば、type:
e_set("__tag __: type", "access_log")
という名前のタグを追加できます。
- ソースLogstoreがパブリックIPアドレスを記録するように設定されている場合、ログには
- 値の割り当て中の自動変換 イベントのキーと値は文字列です。 キーに値を割り当てる場合、またはイベント内のキーに新しい値を指定する場合、キーとキーの値は自動的に文字列に変換されます。 例:
e_set("v1" 、12.3) e_set("v2" 、True)
v1
を12.3文字列に設定し、v2
をtrue文字列に設定します。次の表に、さまざまなデータ型を文字列に変換する例を示します。オリジナルタイプ 例: 新しいタイプ 例: Integer 1
String "1"
浮く 1.2
String 「1.2」
Boolean 真
String 「真」
Byte 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]
String - 例 1:
"[1, 2, 3]"
- 例 2:
"[\"a\", 1]"
辞書 {"1":2, "3":4}
String "{\" 1\": 2, \" 3\": 4}"
日付と時刻 datetime(2018, 10, 10, 10, 10, 10)
ISO 形式で時間を表す文字列 2018-10-10 10:10
- 例 1:
固定識別子
データ変換機能は、固定識別子を提供する。 識別子を使用してコードを単純化できます。
識別子 | 種類 | 説明 |
---|---|---|
true | Boolean | True に相当します。 |
false | Boolean | False に相当します。 |
null | なし | なし に相当します。 |
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_プロジェクト | 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。 例: 73b96061b8c1c2101d558139bf641ea 9 たとえば、e_set("job_id", C_JOB_ID) は、データ変換ジョブの実行IDをjob_idフィールドに割り当てます。 |
JSON オブジェクト
JSONオブジェクトは、JSON式関数
json_select
またはjson_parse
を使用してデータを解析した後に取得するオブジェクトです。 JSONオブジェクトは、基本的なデータ構造のデータで構成されます。 次の表に、文字列のJSONオブジェクトへの変換例を示します。String | JSON object | データ型 |
---|---|---|
1 | 1 | Integer |
1。2 | 1.2 | 浮く |
true | 真 | Boolean |
false | 偽 | Boolean |
"abc" | "abc" | String |
null | なし | なし |
["v1", "v2", "v3"] | ["v1", "v2", "v3"] | List |
["v1", 3, 4.0] | ["v1", 3, 4.0] | List |
{"v1": 100, "v2": "good"} | {"v1": 100, "v2": "good"} | 辞書 |
{"v1": {"v11": 100, "v2": 200}, "v3": "good"} | {"v1": {"v11": 100, "v2": 200}, "v3": "good"} | 辞書 |