Esportazione in formato CSV di una tabella

Lo script di libreria Esportatore generico di tabelle permette l’esportazione su file in formato CSV del contenuto di una tabella.

La configurazione dello script richiede:

  • Tabella

  • FieldDelimiter, ovvero il carattere usato per delimitare i valori all’interno di una riga.

  • CSVPath, ovvero il path al file CSV su disco sul quale verrà esportato lo storico degli allarmi.

  • Query, una Query SQL tramite la quale è possibile filtrare i dati.

Configurazione Query SQL

È possibile filtrare una tabella tramite una Query SQL.

La Query può essere scritta come testo, oppure utilizzando un Formattatore di stringhe e i relativi segnaposti sql_identifier e sql_literal.

Negli esempi elencati di seguito si mostrano alcuni casi d’uso.

Nota

La tabella non viene specificata nella clausola FROM, bensì si consiglia l’utilizzo del segnaposto {0:sql_identifier} con conseguente collegamento dinamico al BrowseName della tabella.

Filtro temporale

Lo storico può essere filtrato in maniera temporale effettuando un filtro condizionale sulla colonna Time (o Timestamp), la quale contiene la data e ora.

Il letterale va inserito tramite segnaposto sql_literal e si consiglia l’uso di una variabile di appoggio di tipo DateTime.

Alcuni esempi di filtri temporali:

-- Esporta i record che riportano un Timestamp superiore ad un determinato istante di tempo
SELECT * FROM {0:sql_identifier} WHERE Timestamp > {1:sql_literal}

-- Esporta i record che riportano un Timestamp compreso tra due istanti di tempo
SELECT * FROM {0:sql_identifier} WHERE Timestamp BETWEEN {1:sql_literal} AND {2:sql_literal}

Nota

Nel caso si voglia effettuare su di un Logger un filtro temporale, questo deve essere eseguito sulla colonna Timestamp. Invece, nel caso in cui si voglia filtrare lo storico allarmi la colonna di riferimento è Time.

Filtro sulla gravità di un allarme

La colonna Severity contiene il valore della gravità per l’allarme. Quindi tramite un filtro su questa colonna è possibile ottenere lo storico degli allarmi con una determinata gravità.

-- Esporta lo storico degli allarmi con gravità 1.
SELECT * FROM {0:sql_identifier} WHERE Severity = 1

-- Esporta lo storico degli allarmi con gravità compresa tra 1 e 3.
SELECT * FROM {0:sql_identifier} WHERE Severity BETWEEN 1 AND 3

Filtro per allarme o variabile

La colonna ConditionName contiene il nome dell’allarme quindi è possibile filtrare lo storico per un determinato allarme, oppure se il nome corrisponde a un pattern.

Ugualmente la condizione può essere eseguita sulla colonna SourceName, nel caso si voglia filtrare per la variabile di input.

-- Esporta lo storico degli allarmi con un determinato BrowseName passato
-- tramite formattatore al segnaposto 1
SELECT * FROM {0:sql_identifier} WHERE ConditionName = {1:sql_literal}

-- Esporta lo storico degli allarmi collegati alla variabile
SELECT * FROM {0:sql_identifier} WHERE SourceName = {1:sql_literal}

-- Esporta lo storico degli allarmi che iniziano per Exclusive
SELECT * FROM {0:sql_identifier} WHERE ConditionName LIKE 'Exclusive%'

Filtro sulle colonne dello storico

Si possono esportare alcune colonne del logger esplicitandole all’interno dello statement SELECT.

-- Esporta lo storico degli allarmi con le sole colonne italiane
SELECT "ActiveState_it-IT", "AckedState_it-IT", "ConfirmedState_it-IT", "ConditionName", "EnabledState_it-IT", "SourceName", "Time", "Message_it-IT", "Severity" FROM {0:sql_identifier}