セマンティック・クラスタリングの例
nlp
コマンドを使用して、文字列フィールドからキーワードを抽出したり、抽出したそれらのキーワードに基づいてレコードをクラスタ化したりできます。キーワード抽出は、カスタムNLPディクショナリを使用して制御できます。ディクショナリを指定しない場合、デフォルトのOracle定義ディクショナリが使用されます。
トピック:
セマンティック・クラスタリングの詳細は、セマンティック・クラスタリングを参照してください。
Linux Syslogログのカーネル・エラーのクラスタ化
次の問合せは、Linux Syslogログのカーネル・メッセージをクラスタ化します:
'Log Source' = 'Linux Syslog Logs' and kernel
| link cluster()
| where 'Potential Issue' = '1'
| nlp table = 'iSCSI Errors' cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| sort 'Cluster ID'
前述の問合せで:
-
link cluster()
は、従来のクラスタを実行し、Cluster Sample
フィールドを返します。 -
nlp cluster('Cluster Sample')
は、各Cluster Sample
を処理し、クラスタIDを割り当てます。同様の意味を持つメッセージは、同じクラスタIDを取得します。 -
keywords('Cluster Sample')
は、クラスタリングで使用されるキーワードを抽出します。これは、Summary
フィールドに返されます。
次の図は、返されたリンク結果を示しています:
-
1行目と2行目は、類似していないため、異なるクラスタIDを取得します。
-
3行目と4行目は、クラスタ・サンプルが類似しています。これは、
Summary
フィールドに抽出されたキーワードの重複で確認できます。 -
デフォルトでは、クラスタの構成には70%の重複が必要です。これは、クラスタの
similarity
パラメータを使用してオーバーライドできます。 -
生成されたクラスタIDは確定的です。そのため、クラスタIDは、Summary列に表示されるキーワードのリストのショートカットとして使用できます。
similarity
を使用したクラスタ数の制御
デフォルト・ディクショナリおよび類似度の低いしきい値を使用してクラスタを実行すると、生成されるクラスタは少なくなります:
'Log Source' = 'Linux Syslog Logs' and kernel
| link cluster()
| where 'Potential Issue' = '1'
| nlp similarity=0.2 cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| sort 'Cluster ID'
一部の行が既存のクラスタにマージされ、クラスタ数が削減されました:
データベース・アラート・ログのクラスタ化
次の問合せは、Database Alert Logsのセマンティック・クラスタリングの例を示しています:
'Log Source' = 'Database Alert Logs'
| link cluster()
| nlp cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| where Summary != null
| classify 'Start Time', Summary, 'Cluster ID' as 'Database Messages'