Ho un database Oracle dove sono archiviate grandi quantità di dati biometrici come HRV ed ECG. Devo mostrare questi dati per ogni utente in foglio Excel. Ma questi dati sono così grandi, anche per un singolo utente stiamo ottenendo più di 1.00.000 record. Ci sono attualmente 100 ~ utenti.Utilizzo di php per scrivere grandi quantità di dati su Excel senza errore limite di memoria
Quello che sto facendo è:
- eseguo un job cron utilizzando riga di comando per la stessa, che ho sviluppato in Zend Framework.
- Mi assicuro che questo CRON non si sovrapponga.
- Ricevo tutti i dati dal database di Oracle per ciascun utente uno per uno, quindi lo memorizzo in un array.
Quando ottengo i dati per tutti gli utenti, utilizzo la libreria phpexcel per generare un foglio Excel.
Struttura del foglio di Excel
- uid 1/uid/2 uid/3 ----------- ennesima
- dati | dati | dati |
- dati | dati | dati |
- |
- ennesima
Problema:
PHP richiede 1,5 GB di RAM e memorizza i dati nella matrice e inviarlo alle funzioni per interagire con phpexcel ma questa libreria richiede 3-4 ore e poi ho l'errore "Fatal: limite di memoria". Il mio sistema ha solo 2 GB di RAM.
Quali passi dovrei fare per ottimizzare il mio codice per gestire i dati di queste dimensioni e visualizzare le stesse informazioni in formato excel o ho bisogno di aumentare la RAM?
Che cosa faranno i tuoi utenti con così tanti dati in Excel? –
Questi utenti sono fondamentalmente ricercatori. Quindi potrebbero usare questi dati in MATLAB o potrebbero usarlo per creare algoritmi migliori. Ci sono tante possibilità. Fondamentalmente la mia domanda riguardava la ricerca di un modo ottimizzato per gestire questo tipo di scenario. – techgyani