signature

lineフィールドの文字列から特殊文字だけを集めたシグネチャ文字列を生成してsignatureフィールドに割り当てます。パーサーを開発する前にパターン種別ごとのログサンプルを抽出する目的で使用します。

コマンドプロパティ

項目説明
コマンドタイプ加工クエリ
必要な権限なし
ライセンス使用量該当なし
並列実行対応
分散実行非対応

構文

signature

signatureコマンドはオプションや位置引数など、いかなるパラメーターも受け付けません。4.0.2609.0以降ではコマンド名の後に空白以外の値を入力するとエラーが発生しますが、5.0系(5.0.2605.2まで)はこの検証を行わず、そのような値を無視してそのまま実行します。

入力フィールド

フィールド型必須/任意説明
linestring必須シグネチャを抽出する元の文字列。値がnullの場合はそのレコードをスキップします。

出力フィールド

フィールド型説明
signaturestring元の文字列から英字と数字を除いた特殊文字で構成されるシグネチャ

エラーコード

パースエラー
エラーコードメッセージ説明
21500unexpected-parameterコマンド名の後にオプションや値を入力した場合。4.0.2609.0以降で発生します。5.0系(5.0.2605.2まで)ではこの検証を行いません。
ランタイムエラー

該当なし

説明

signatureコマンドは、lineフィールドの文字列から英字と数字を除いた特殊文字だけを抽出してsignatureフィールドに割り当てます。ダブルクォーテーション(")で囲まれた区間内の特殊文字は抽出対象から除外されます。

このコマンドは、ログデータからパターン種別を分類するのに有用です。同じシグネチャを持つログは同じ形式を共有している可能性が高いため、statsコマンドと組み合わせると種別ごとのサンプルログを抽出できます。

lineフィールドの値がない(null)レコードには、signatureフィールドが割り当てられません。レコードが1件ずつ処理される場合はこれらのレコードが結果から除外され、複数件がバッチ単位で処理される場合はsignatureフィールドを付与せず元のフィールドのまま結果に含まれます。

使用例

これらの使用例で参照するWEB_APACHE_SAMPLEテーブルを準備するには、クエリ実習用データを参照してください。

  1. シグネチャ別の最初のサンプルログを抽出

    table WEB_APACHE_SAMPLE | signature | stats first(line) as sample by signature
    

    各シグネチャ種別ごとに最初のログサンプルを抽出します。

  2. シグネチャ別のログ件数を確認

    table WEB_APACHE_SAMPLE | signature | stats count by signature | sort -count
    

    シグネチャ別のログ件数を集計して件数の多い順に並べ替えます。

  3. 特定のシグネチャパターンのログをフィルタリング

    table WEB_APACHE_SAMPLE | signature | search signature == ". . . [.] \". .\" . ."
    

    Apacheアクセスログ形式に該当するシグネチャパターンに一致するログのみをフィルタリングします。

変更履歴

対象導入リリース
signature コマンドSonar 4.0以前
パラメーター入力を拒否する検証(エラーコード21500)4.0.2609.0