sql >> Databáze >  >> NoSQL >> MongoDB

Jaký je lepší přístup k ukládání a dotazování velkého datového souboru meteorologických dat?

Je to těžká otázka a nejsem si jistý, jestli mohu dát jednoznačnou odpověď, ale mám zkušenosti jak s HDF5/pyTables, tak s některými databázemi NoSQL.
Zde je několik myšlenek.

  • HDF5 samo o sobě nemá pojem index. Je to pouze hierarchický formát úložiště, který se dobře hodí pro vícerozměrná číselná data. Je možné rozšířit nad HDF5 a implementovat index (tj. PyTables, HDF5 FastQuery ) pro data.
  • HDF5 (pokud nepoužíváte verzi MPI) nepodporuje souběžný přístup pro zápis (je možný přístup pro čtení).
  • HDF5 podporuje kompresní filtry, které mohou – na rozdíl od všeobecného přesvědčení – skutečně zrychlit přístup k datům (musíte však myslet na správnou velikost bloku, která závisí na způsobu, jakým k datům přistupujete).
  • HDF5 není databáze. MongoDB má ACID vlastnosti, HDF5 ne (může být důležité).
  • Existuje balíček (SciHadoop ), který kombinuje Hadoop a HDF5.
  • HDF5 umožňuje poměrně snadno provést výpočet jádra (tj. pokud jsou data příliš velká na to, aby se vešla do paměti).
  • PyTables podporuje některé rychlé výpočty „v jádře“ přímo v HDF5 pomocí numexpr

Myslím, že vaše data jsou obecně vhodná pro ukládání v HDF5. Statistickou analýzu můžete provádět také v R nebo prostřednictvím Numpy/Scipy .
Můžete ale také uvažovat o hybridním přístupu. Uložte nezpracovaná hromadná data do HDF5 a použijte MongoDB pro metadata nebo pro ukládání konkrétních hodnot, které se často používají, do mezipaměti.



  1. Mongoose se nemůže připojit bez internetu

  2. Agregace MongoDB s DBRef

  3. Uložte kolekci Mongo do formátu JSON

  4. Jaké jsou konvence pojmenování pro MongoDB?