Hoi,
Ik zoek een goed opslagformaat voor een grote hoeveelheid data. Het gaat om miljoenen datapunten per keer. Gebruikers moeten hier op basis van zelf gedefinieerde criteria data uit kunnen filtreren. Hierbij moet gedacht worden aan dingen als "kolom A niet gelijk aan Kolom B", "Kolom C > 10" etc. Sommige kolommen bevatten integers, andere tekst.
De bedoeling is om een desktop progje te maken waarmee data gefilterd kan worden. Dit progje moet zowel op Windows als op Linux gebruikt kunnen worden, dus multiplatform. Daarom heb ik het in python geschreven. Het is pertinent niet de bedoeling een centrale opslagsysteem te maken, dus geen client-server systeem als mysql, maar dus file-based.
SQlite leek mij ideaal ondanks dat de data niet relationeel is. Ik heb dus een 1 tabel database gemaakt. Dit werkt op Linux (Kubuntu) heel behoorlijk. De performance is goed genoeg, zeker gezien de hoeveelheid data. Op windows echter niet. Er blijkt een enorme performance gap te liggen tussen deze systemen bij het gebruik van sqlite. Een simpele select count query met een paar parameters duurt op het Linux systeem 3 seconden en op Windows 30 minuten. Dit is dus onacceptabel en voor mij enigszins onbegrijpelijk. Voor de duidelijkheid, dit is op een dualboot machine, dus beide op dezelfde hardware en Kubuntu-64 en Win7-64.
Mijn vraag is: wat voor alternatieven kan ik proberen?
- XML lijkt me niet geschikt. Heeft volgens mij ook geen indexering.
- Ik heb Mongo-db gevonden, is dat bruikbaar? edit: MongoDB is een client-server systeem, dus valt af.
- shelves. lijkt meer een soort stored dictionary (key-value), waar je dus niet de queries op kunt loslaten die aangaf
- heeft iemand een andere suggestie?