この Topic では、e_dict_map マッピング関数を使用してデータをエンリッチする方法について説明します。
ビデオチュートリアル
背景情報
標準マッピング関数は、完全なテキスト一致を使用してデータをマッピングします。正規表現、完全一致、あいまい一致などのより高度な一致メソッドには、検索マッピング関数を使用できます。標準マッピング関数には、e_dict_map 関数と e_table_map 関数が含まれます。e_dict_map 関数は dict フォーマットのデータを受け入れ、e_table_map 関数は リソース関数 から取得したテーブルデータを受け入れます。
たとえば、e_dict_map 関数を使用して、NGINX ログ内の特定の状態コードをテキストに変換できます。
状態コード | テキスト |
200 | 成功 |
300 | リダイレクト |
400 | リクエストエラー |
500 | サーバーエラー |
e_dict_map 関数を使用したデータエンリッチメント
この例では、e_dict_map 関数を使用してデータをエンリッチする方法を示します。
生ログ
http_host: example.com http_status: 300 request_method: GET http_host: example.org http_status: 200 request_method: POST http_host: example.net http_status: 400 request_method: GET http_host: aliyundoc.com http_status: 500 request_method: GET変換要件
http_status フィールドのリクエスト状態コードをテキストに変換し、status_desc という名前の新しいフィールドに追加します。
変換ルール
e_dict_map({"400": "Request error", "500": "Server error", "300": "Redirect", "200": "Success"}, "http_status", "status_desc")説明実際には、この例で示されている 4 つよりも多くの HTTP ステータスコードが存在します。完全なリストについては、「HTTP ステータスコード」をご参照ください。http_status フィールドに 401 や 404 などの他の値が含まれる可能性がある場合は、それらを含むように辞書を更新する必要があります。そうしないと、一致が見つかりません。
結果
http_host: example.com http_status: 300 request_method: GET status_desc: Redirect http_host: example.org http_status: 200 request_method: POST status_desc: Success http_host: example.net http_status: 400 request_method: GET status_desc: Request error http_host: aliyundoc.com http_status: 500 request_method: GET status_desc: Server error