File JSON VS Android SQLite

Svilupperò un’applicazione Android con molti dati (file json con alcune righe e CSV per i dati grafici con molte righe), questi dati cambiano ogni 5 minuti e sostituiscono tutti i dati precedenti (o principalmente).

Quali sono gli approcci migliori per progettare questo? Ho 2 opzioni:

  • Salva tutti i dati in un db sqlite e sincronizzalo con IntentService.

  • salvare i dati nei file json e csv e sostituirli ogni 5 minuti.

Quale approccio migliorerà? Questo considerando il tempo di analizzare i file, l’ordinamento dei dati, il tempo di download e la coerenza dei dati.

qualche altra idea?

PD: Anch’io ho bisogno di un sistema di cache, nel caso in cui non avessi internet e ho bisogno dei precedenti dati memorizzati

Sqlite viene principalmente utilizzato quando si desidera che i dati vengano salvati e utilizzati in futuro. Nel tuo caso i dati cambiano ogni 5 minutes quindi è meglio avere JSON perché ogni volta che la Database connection al Database connection store e retrieve dopo 5 minutes ci vorrà del tempo.

AGGIORNARE:

Ho anche avuto la stessa applicazione in cui i dati cambiano ogni volta. In quel caso ho usato Map e ArrayList per mantenere i valori, perché dato che i dati cambiano ogni volta penso che non sia fattibile memorizzare i dati in Sqlite ogni volta. Ha bisogno di molto tempo per eseguire l’archivio DB Connection, recuperare, aggiornare i dati in Sqlite.

Vantaggi di SQLite:

  • Le modifiche sono ACID
  • Puoi rendere più complesse le richieste più veloci (es. “Dammi solo i campi A, B dagli articoli con (C / D)> E”)
  • Scommetto più compatto per i big data (gli interi sono memorizzati come numeri interi invece di una stringa di singole cifre)
  • Solo un file
  • È ansible unire facilmente vecchi dati con nuovi dati
  • È ansible aggiornare i dati correnti, anche durante l’utilizzo
  • La concorrenza può essere gestita

Vantaggi per JSON / CSV:

  • Più semplice da eseguire il debug (testo normale)
  • Più veloce per fare un aggiornamento completo (copia il nuovo file + cancella quello vecchio)

Per la domanda originale l’intera cancellazione / sostituzione dei dati rende JSON / CSV il vincitore.

Tuttavia, se l’applicazione dovesse recuperare dati parziali ogni 10 s e unirli / aggiornarli con quello precedente, SQLite sarebbe un’opzione migliore.

Raccomando l’uso di JSON o qualche tipo di serializzazione degli oggetti a meno che:

  • È necessaria la conformità ACID per le operazioni di scrittura
  • È necessario segnalare i dati che potrebbero comportare la copia dei dati su un RDBMS esterno o
  • Desiderate unirvi a quelle complicità nell’uso eccessivo / abuso dei database, come comunemente visto al giorno d’oggi

Idealmente ciò dovrebbe dipendere dal fatto che siano necessari i dati precedenti, magari confrontandoli con i dati attuali e così via. Come regola generale, utilizzo SQLite quando è necessario archiviare e recuperare i dati in una fase successiva. Nel caso in cui i dati siano solo per la visualizzazione, preferisco tenerlo nella memoria del programma. Intendiamoci che questo non riguarda il funzionamento dei file.

Scopo di JSON e SQLite è completamente diverso l’uno dall’altro

  • JSON = è usato per inviare e ricevere dati tra server e client.
  • SQLite = è usato per memorizzare i dati.