I miei dati:
- Dimensione - 15+ terabyte di testo.
- Dati: massimo 1300 righe (sempre le stesse intestazioni delle righe), massimo 6 colonne
- Le intestazioni delle colonne saranno diverse ma i valori sono tutti percentuali compresi tra 0 e 100. Il totale delle colonne in una riga aumenterà sempre fino al 100%. Quindi possiamo sbarazzarci immediatamente di una colonna.
Posso mantenere questo come un file system piatto? Questa sarà una struttura ad albero, quindi non credo che ci sia alcun valore in MySQL. Forse NoSQL. Una volta che i dati sono lì, non devono mai essere aggiornati. È appena letto. Esempio:
Item, action1, action2, action3
A, 20, 40, 60
B, 20, 30, 50
...
ZZZ 50, 50, 0
Utilizzo:
I dati verranno letti su un sito. Massimo 500 utenti (molto probabilmente meno di 100) e leggeranno tutti file diversi, raramente lo stesso allo stesso tempo. Durante la lettura di un file vengono utilizzate tutte le informazioni, quindi non vi è alcun valore nel poter leggere solo una riga. Caricheremo sempre tutte le informazioni dal file. Le informazioni sono solo leggere, non aggiornate mai.
Domande
- Il modo migliore per memorizzare queste informazioni?
- Ogni nodo (ovvero il file csv) nell'albero si trova nella propria cartella, con sottocartelle che rappresentano anche il nodo figlio. Andando fino in fondo all'albero. Si tratta di un enorme spreco di spazio? Non sei sicuro di un modo migliore di farlo se lo è.
Creerò una 15+ TB di dati. Molto facilmente crescerà fino a 50 tonnellate. Voglio davvero assicurarmi di farlo correttamente sin dall'inizio. Qualsiasi consiglio da parte di qualcuno con esperienza in questo può farmi risparmiare un sacco di tempo e mal di testa futuro. Anche suggerimenti che mi indicheranno nella direzione corretta stavo per usare qualcosa come MongoDB ma sto iniziando a pensare che forse tenerlo come un file system piatto non sarà male dato che caricherò sempre comunque il file completo e la struttura delle cartelle tiene traccia dell'albero. Nessuno dovrà saltare su un nodo molto lontano.
Questo è un enorme albero del gioco (più simile a this ). Quindi iniziamo dalla radice. La radice sarà una cartella chiamata root e avrà un file csv come sopra. Questa cartella avrà sottocartelle che rappresentano i bambini anche con file CSV come sopra e cartella che rappresenta i loro figli. E così via ... Quindi per ottenere informazioni fai clic sull'albero. Ci sarà un codice che legge solo le sottocartelle e crea collegamenti ai nodi successivi. (Un albero di gioco avrà 25-100 nodi di nodi ... quindi significa 25-100.000 cartelle che penso possano essere uno spreco di spazio.)