signature

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

コマンドプロパティ

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

構文

signature

入力フィールド

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

出力フィールド

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

エラーコード

パースエラー

該当なし

ランタイムエラー

該当なし

説明

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

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

lineフィールドがnullのレコードは出力から除外されます。

使用例

これらの使用例で参照する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以前のバージョンから提供されています。