Eliminazione dei dati di runtime
Panoramica
È facile sottovalutare la quantità di dati generati e memorizzati in un sistema di produzione. Sebbene PTC non fornisca una raccomandazione ufficiale sulla quantità di dati da memorizzare, poiché il valore dipende molto dal caso di utilizzo, è consigliabile disporre di un piano per eliminare i dati obsoleti dai sistemi di produzione per motivi di prestazioni. In fase di pianificazione dell'eliminazione dei dati, è necessario considerare quanto segue.
Quante proprietà sono registrate?
Quanti oggetti contengono proprietà registrate?
Con quale frequenza vengono registrate le proprietà?
I dati devono essere archiviati per i record? Fare riferimento alla sezione Dati di runtime.
Se i dati di alcune proprietà vengono registrati ogni due minuti in un centinaio di dispositivi edge, potrebbero essere conservati per diversi mesi fino a un anno. Se i dati di 100 proprietà vengono registrati diverse volte al minuto in un migliaio di oggetti differenti, potrebbe essere necessario eliminare anche diverse settimane di dati obsoleti. Si consiglia di interrogare ed eliminare i dati in piccoli blocchi su base continua. La creazione di un'eliminazione programmata su base più frequente (giornaliera anziché settimanale) consentirà di migliorare le prestazioni.
Se l'archiviazione dei dati è necessaria per più di un anno, PTC consiglia di utilizzare un database esterno per l'archiviazione.
Come eliminare i dati
Sebbene il codice JavaScript per l'eliminazione dei dati sia diverso a seconda dello scenario, i passi generali che seguono sono comuni a tutti gli scenari.
1. Creare un nuovo oggetto e impostare Modello di oggetto di base su Scheduler.
2. Aprire la sezione Configurazione e impostare le proprietà runAsUser e schedule.
Per informazioni sul formato corretto della proprietà schedule, fare riferimento alla pagina Web https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm.
A seconda della portata dell'eliminazione, si prevede che l'utilizzo di JVM aumenti durante l'operazione. È quindi preferibile dividere le operazioni di grandi dimensioni in operazioni più piccole durante le ore non di punta.
3. Selezionare Sottoscrizioni e fare clic su Aggiungi.
4. Nella sezione Info sottoscrizione selezionare Me e Attivato.
5. Fare clic su Input.
6. Nel campo Evento selezionare ScheduledEvent.
7. Aggiungere le specifiche JavaScript per l'operazione di pulizia.
* 
Per i servizi Stream e Stream valori, se non viene specificata una data di inizio, tutti i valori vengono eliminati, a partire da epoch. Se non viene specificata una data di fine, vengono eliminate tutte le proprietà fino al momento dell'esecuzione del servizio.
Best practice per lo scheduler
Non effettuare la sottoscrizione a un evento timer o scheduler a livello di modello di oggetto. Al contrario, effettuare la sottoscrizione all'oggetto.
Non interrogare grandi quantità di dati in timer attivati di frequente. Per ulteriori informazioni, fare riferimento a questo articolo nella PTC Community.
Se possibile, non eseguire l'interrogazione e quindi aggiornare la stessa origine dati in una sottoscrizione. Interrogare invece uno stream di una tabella dati una volta in ogni sottoscrizione e, se necessario, una volta alla fine dell'operazione dello scheduler (utilizzando le istruzioni di aggiornamento batch).
Eliminazione di stream di valori, stream e repository di file
Per ulteriori informazioni sull'eliminazione di dati, fare riferimento a Best Practice for Purging Value Streams, Streams, and Old File Repository Files in ThingWorx.
È stato utile?