Matt Sheppard'ın cevabı harika (mod up), ancak bir mili düşünürken bu faktörleri dikkate alırım:
- Yapı: Açıkçası parçalara ayrılıyor mu yoksa ödünleşiyor musunuz?
- Kullanım: Veriler nasıl analiz edilecek / alınacak / silinecek?
- Ömür boyu: veriler ne kadar yararlıdır?
- Boyut: Ne kadar veri var?
CSV dosyalarının RDBMS'lere göre özel bir avantajı, yoğunlaştırılmaları ve pratik olarak başka herhangi bir makineye taşınmalarıdır. Büyük veri aktarımları yapıyoruz ve her şey sadece bir büyük CSV dosyası kullandığımız kadar basit ve rsync gibi araçları kullanarak kodlaması kolay. Büyük CSV dosyalarındaki tekrarlamayı azaltmak için YAML gibi bir şey kullanabilirsiniz . Önemli ilişki gereksinimleriniz olmadıkça JSON veya XML gibi bir şey depolayacağımdan emin değilim.
Belirtilmeyen alternatiflere gelince , MapReduce'un açık kaynaklı bir uygulaması olan Hadoop'u indirmeyin. Analiz edilmesi gereken bir TON gevşek yapılandırılmış veriye sahipseniz ve veri işlemeyi gerçekleştirmek için sadece 10 makine daha ekleyebileceğiniz bir senaryoda olmak istiyorsanız, bu iyi çalışmalıdır.
Örneğin, yaklaşık 20 makinede kaydedilen farklı işlevlerin tüm zamanlama sayıları olan performansı analiz etmeye çalıştım. RDBMS içindeki her şeyi yapıştırmaya çalıştıktan sonra, bir kez topladıktan sonra verileri tekrar sorgulamam gerekmediğini fark ettim. Ve bu sadece benim için toplu biçiminde yararlıdır. Bu yüzden, günlük dosyalarını etrafta tutuyorum, sıkıştırıyorum ve sonra toplanmış verileri bir DB'de bırakıyorum.
Not "Büyük" boyutlarda düşünmeye daha alışkınım.