データ変換の結果を送信先 Logstore に配布した後、送信先 Logstore にデータが含まれない場合は、このトピックを参照してください。
シナリオ 1:変換ステートメント内のストレージターゲットがデータ変換ジョブ作成ページで設定されたものと異なる
website_log という名前の Logstore には 5,000 件のログエントリが含まれています。内訳は、SourceIP が 192.0.2.54 のものが 1,000 件、SourceIP が 192.0.2.28 のものが 1,000 件、SourceIP が 192.0.2.136 のものが 1,000 件、その他の SourceIP 値を持つものが 2,000 件です。これらのエントリは処理され、次の送信先 Logstore (54_log_target、28_log_target、136_log_target) に配布されます。
処理要件
SourceIP が 192.0.2.54 のログを 54_log_target という名前の Logstore に配布します。
SourceIP が 192.0.2.28 のログを 28_log_target という名前の Logstore に配布します。
SourceIP が 192.0.2.136 のログを 136_log_target という名前の Logstore に配布します。
これらの条件を満たさないログはすべて破棄します。
変換ステートメント
ステートメントで使用されている 3 つの送信先 Logstore 名は、54_log、28_log、136_log です。
e_if(e_search("SourceIP==192.0.2.54"), e_output(name="54-target", project="sls-test", logstore="54_log")) e_if(e_search("SourceIP==192.0.2.28"), e_output(name="28-target", project="sls-test", logstore="28_log")) e_if(e_search("SourceIP==192.0.2.136"), e_output(name="136-target", project="sls-test", logstore="136_log")) e_drop()ストレージターゲット
実際の送信先 Logstore は、54_log_target、28_log_target、136_log_target です。
3 つのストレージターゲットの名前は 54-target、28-target、136-target です。すべて、リージョンは中国 (成都)、プロジェクトは sls-test、認証方法は デフォルトロール を使用します。
変換結果
54_log_target、28_log_target、136_log_target という名前の Logstore にはデータが含まれていません。
根本原因
変換ステートメントの
e_output関数のproject(宛先プロジェクト名) およびlogstore(宛先 Logstore 名) パラメーターで、[データ変換タスクの作成] パネルの [宛先プロジェクト] および [宛先データベース] に設定された値とは異なる値を指定した場合、変換ステートメントで定義された保存先が優先されます。この場合、データ変換結果は、変換ステートメントで指定された 3 つの Logstore (54_log、28_log、136_log) に配布されます。
解決策
e_outputまたはe_coutput関数でnameパラメーターのみを設定した場合、出力は [データ変換ジョブの作成] パネルで定義されたストレージターゲットに出力されます。e_output または e_coutput で指定するプロジェクトと LogStore パラメーターは、[データ変換ジョブの作成] パネルで設定したストレージターゲットと完全に一致している必要があります。 詳細については、「e_outputLogStoreut」をご参照ください。
説明複数のストレージターゲットを持つ変換ステートメントを定義し、e_drop() ステートメントを含めない場合、どの条件にも一致せず、破棄もされないすべての処理済みログは、最初のストレージターゲットに送信されます。
e_if(e_search("SourceIP==192.0.2.54"), e_output(name="54-target", project="sls-test", logstore="54_log_target")) e_if(e_search("SourceIP==192.0.2.28"), e_output(name="28-target", project="sls-test", logstore="28_log_target")) e_if(e_search("SourceIP==192.0.2.136"), e_output(name="136-target", project="sls-test", logstore="136_log_target")) e_drop()
シナリオ 2:変換ステートメントが設定されていない、または e_drop() ステートメントのみが使用されている
変換ステートメント
なし
ストレージターゲット: このシナリオでは、2 つのストレージターゲットを設定します。ストレージターゲット 1 (
54-target) には宛先データベース54_log_targetがあり、ストレージターゲット 2 (28-target) には宛先データベース28_log_targetがあります。両方ともプロジェクトsls-testにあり、認証方法は[デフォルトロール]に設定されています。変換結果
データが含まれているのは、LogStore
54_log_targetのみです。根本原因
データ変換ページでは変換ステートメントが設定されていませんが、[データ変換タスクの作成] パネルでは:
ストレージターゲットを 1 つ設定した場合、ソース Logstore のデータはそのターゲットに コピー されます。
複数のストレージターゲットを設定した場合、すべてのデータはストレージターゲット 1 の Logstore にのみ送信され、他のターゲットには転送されません。
e_drop() ステートメントのみを定義した場合、すべてのログデータが破棄され、送信先 Logstore は空のままになります。
シナリオ 3:処理遅延
データ変換ジョブが正しく設定されているにもかかわらず、送信先 Logstore にデータが表示されない場合、原因は変換遅延である可能性があります。
パフォーマンスガイドを参照し、以下の 3 つの領域を考慮してデータ変換ジョブのデプロイを計画してください。
ソース Logstore データ量に応じてシャード (読み書き可能状態) の数を調整して、十分な変換同時実行数を確保します。
変換 DSL ロジック 正規表現を最適化し、適切な場所で条件付きプルーニングを適用し、できるだけ早い段階でデータフィルタリングを実行します。
送信先 Logstore データ出力時の書き込みボトルネックを防ぐために、十分な数のシャード (読み書き可能状態) を設定します。