Esempi di clustering semantico

Il comando nlp può essere utilizzato per estrarre le parole chiave da un campo stringa o per raggruppare i record in base a queste parole chiave estratte. L'estrazione delle parole chiave può essere controllata utilizzando un dizionario NLP personalizzato. Se non viene fornito alcun dizionario, viene utilizzato il dizionario predefinito definito da Oracle.

Errori del kernel del cluster nei log di syslog Linux

Messaggi Kernel dei cluster di query riportati di seguito nei log Syslog di Linux.

'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'

Nella query precedente:

  • link cluster() esegue il cluster tradizionale e restituisce un campo Cluster Sample.

  • nlp cluster('Cluster Sample') elabora ogni Cluster Sample e assegna un ID cluster. I messaggi con un significato simile otterrebbero lo stesso ID cluster.

  • keywords('Cluster Sample') estrae le parole chiave utilizzate nel clustering. Viene restituito nel campo Summary.

L'immagine seguente mostra i risultati del collegamento restituiti:


clustering semantico dei log syslog di linux per gli errori del kernel

  • La prima e la seconda riga non sono simili e quindi ottengono ID cluster diversi.

  • La terza e la quarta riga sono simili nel campione cluster. Ciò si può vedere nella sovrapposizione di parole chiave estratte nel campo Summary.

  • Per impostazione predefinita, è necessaria una sovrapposizione del 70% per formare un cluster. È possibile eseguire l'override utilizzando il parametro similarity nel cluster.

  • L'ID cluster generato è deterministico. Pertanto, l'ID cluster può essere utilizzato come collegamento per l'elenco delle parole chiave visualizzate nella colonna Riepilogo.

Utilizzare similarity per controllare il numero di cluster

L'esecuzione del cluster utilizzando il dizionario predefinito e una soglia di somiglianza inferiore produrrebbe meno cluster:

'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'

Questa operazione ha unito alcune righe nei cluster esistenti, nonché ridotto il numero di cluster:


clustering semantico dei log syslog di linux per gli errori del kernel dopo aver ridotto il numero di cluster in base alla somiglianza

Clusterare i log degli avvisi del database

La query seguente mostra un esempio di clustering semantico dei log degli avvisi del database:

'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'

clustering semantico dei log del database per l'ID cluster 1188814328


clustering semantico dei log del database per l'ID cluster selezionato e il riepilogo adiacente delle parole chiave