Potřebuju často v Pythonu ukládat někam data, třeba v rámci data mining atp. V Pythonu jsem používal SQLite, SQAlchemy, zkoušel jsem TinyDB a obyčejné soubory.
Potřebuju tedy ukládat data ideálně jako dictionaries, třeba http response stažené z nějakého API.
- SQLite - je roztomilá databáze, ale bez použití SQAlchemy mi přijde práce s tím docela opruz
- SQLAlchemy - tohle je docela dobrý, ale pořád vidím jako nevýhodu to, že se musím párat s vytvářením entitních tříd, já potřebuju prostě jen uložit dictionaries, nechce se mi štráchat s vytvářením sloupce pro každý field v jsonu
- TinyDB - Vychvalovaná db, dají se v tom dělat queries nad těmi uloženými dictionaries, ale za mě to je nepoužitelné, je to strašlivě ale strašlivě pomalé, neumím si představit co bych v tom ukládal že by mi ta pomalost nevadila
Takže co používám já je Pickle a soubory v kombinaci s LockFile knihovnou (schválně neřeknu k čemu potřebujete lockfile).
Tohle se mi nejvíc osvědčilo, je to doclea rychlé a jednoduché. Nevýhoda je, že se všechno musí načíst nejprve do paměti.
No takže co by se mi líbilo, je něco jako je TinyDB, tzn. uložím si prostě dictionary, a můžu potom dělat i queries. Jenže jak říkám, TinyDB je pro ty queries nepoužitelně pomalá, to už si raději načtu všechno do memory a projedu si to ve foreach abych našel co potřebuju.
Na mojem os. počítači dobrý, ale někde v cloudu kde memory je max třeba 2GB už to má slabá místa.
Nemáte nějaký tip? A ať to nemusí ideálně běžet v Dockeru, prostě keep it simple. Něco jako je SQLite, v Céčku psané, ale aby to bylo jako Document DB, tzn. key value pairs, jako value dictionary a umožňovalo to dělat queries.