Qual è un buon formato per memorizzare una tabella di dati

0

Questo è per uno dei miei progetti personali. Voglio memorizzare una tabella di dati in una colonna BLOB / TEXT nel database. Non voglio memorizzare i dati nella propria tabella di database perché lo schema di questi dati cambierà spesso e non ho davvero bisogno di interrogarlo.

Quindi sto cercando un formato di dati che sarebbe:

  • Adatto per la memorizzazione di una tabella di dati variamente digitati (date, timestamp, numeri interi, float, stringhe, ecc.)
  • Open source e implementato in diversi linguaggi di programmazione
  • Preferibilmente binario

Grazie mille

    
posta art-solopov 09.03.2018 - 08:44
fonte

5 risposte

1

La linea di base

JSON ( link ) è un formato dinamico e senza schemi. Ma è un formato basato su testo, quindi potrebbe non essere appropriato per te se hai bisogno di binari.

Formati binari

Il BSON ( link ) potrebbe essere interessante per te. È un JSON "semplice" tradotto in binario (non abbastanza, ma abbastanza vicino). Viene utilizzato in MongoDB per archiviare i dati, quindi è comprovato sul campo.

CBOR ( link ) è un altro formato binario di tipo JSON. È vantaggioso (per me, almeno) è supportato da un RFC ( RFC 7049 ) e così ha un < em> standard definito che potrebbe rivelarsi utile.

BSON e CBOR sono probabilmente i tuoi scatti migliori se hai bisogno di un formato binario in stile JSON.

    
risposta data 09.03.2018 - 09:11
fonte
1

Lo standard defacto è sicuramente CSV. A meno che tu non abbia buone ragioni per non farlo, allora memorizzalo in questo modo.

Poiché il formato dei dati può variare, la riga di intestazione può essere utilizzata sia per descrivere lo scopo della colonna (cioè il suo nome) che il suo formato (cioè il suo tipo), consentendo alle righe rimanenti di essere semplicemente testo.

I CVS sono facili da analizzare e sono ben supportati da tutti i principali linguaggi e framework. Quindi i tempi di sviluppo e di manutenzione sono ridotti al minimo.

Se lo spazio è un problema, puoi seguire il percorso di un formato binario personalizzato. Ma poi devi "arrotolare il tuo", sono più difficili da analizzare, più inclini all'errore e non leggibili. Quindi l'altra opzione è comprimere i contenuti. Di nuovo le librerie zip sono prontamente disponibili per tutti i principali linguaggi e framework, risparmiando tempo e semplificando ancora una volta la manutenzione.

    
risposta data 09.03.2018 - 08:58
fonte
0

I database dei documenti sono progettati per la flessibilità. Se hai diversi attributi con una grande quantità di database di documenti di dati è una buona opzione. Invece di memorizzare i dati in tabelle diverse, vengono memorizzati insieme nello stesso documento.

Il database dei documenti open source è ad esempio MongoDB. MongoDB utilizza JSON chiamato JSON binario che è in grado di eseguire la serializzazione binaria.

    
risposta data 09.03.2018 - 09:09
fonte
0

Usa JSON / BSON con il motore Mariadb / Toukdb, comprimerà i dati per te molto bene. A differenza della compressione di innodb, quindi se hai provato prima la compressione ma l'hai abbandonata perché è stata risucchiata inno - prova questo ...

    
risposta data 10.03.2018 - 03:05
fonte
-1

Supponendo che non vogliate interrogare i dati, sembrerebbe logico che la prossima migliore priorità sia quella di poter ripristinare la tabella nel modo più efficiente possibile. Solitamente sono supportate le modalità di esportazione / importazione di tabelle da un database a un file sul disco.

Il mio consiglio sarebbe quello di trasmettere in streaming il formato supportato dei dati della tabella esportati direttamente in un blob. È quindi possibile prendere quei dati e chiamare lo stesso database per "importare" come se fosse un normale file di importazione dal disco.

Il più grande vantaggio di questo approccio è che c'è letteralmente 0 problemi con la digitazione. Il database sa come salvare al meglio le proprie informazioni sul tipo. Non c'è bisogno di reinventare la ruota.

Si dovrebbe essere consapevoli che questo approccio potrebbe causare problemi se si aggiorna il database (non probabile, ma c'è ancora questa possibilità). Quindi, prima di aggiornare il tuo database, controlla che le vecchie importazioni siano ancora accettate nella nuova versione.

Di solito questi file di importazione sono file flat (le colonne sono riempite con spazi per garantire che ogni valore di colonna si trovi nella stessa posizione per ogni riga), e quindi potrebbero occupare molto più spazio della tabella stessa. Potresti prendere in considerazione la possibilità di zippare i contenuti prima di inserirli, ma ti lascerò decidere se il rapporto tra efficienza / spazio valga la pena nel tuo caso.

    
risposta data 09.03.2018 - 09:20
fonte

Leggi altre domande sui tag