Szukam jakiegoś mini-stosu (modułów, a niekoniecznie komponentów nie-pythonowych), które pozwolą mi w pythonie rozwiązać następujący problem:
- Mam ileś tam plików CSV, które są logicznie powiązane i przechowują hierarchię encji (można o tym myśleć jak o powiązanych tabelach bazodanowych)
Root
--Child1
--GrandChild1
--GrandChild2
---Child2
--GrandChild3
---Child3
--GrandChild4
--GrandChild5
...
--Gra*ChildN
...
- Chcę mieć możliwość wystartowania z dowolnego poziomu, wybrać interesujące mnie atrybuty i iść w kierunku Roota, tak by na końcu mieć zestaw atrybutów od liścia do Roota.
Z roota wybieram atrybuty A,B (z A,B,C,...)
Z Child3 wybieram atrybuty X,Y (spośród X,Y,Z,...)
Z Grand*ChildN wybieram rekordy, dla których attrX=foo && attrY=BAR etc.
(Czyli odpowiednik JOINa na interesujących encjach)
-
Typów encji jest ok. 100
-
Pliki nie zmieszczą się w pamięci RAM.
-
Idealnie, gdyby był jakiś moduł pozwalający nawigować po takiej strukturze z wykorzystaniem jakiegoś "języka zapytań", zaś same zapytania można przechowywać na zasadzie konfiguracji.
Ktoś coś kojarzy, przetwarzał w ten sposób pliki tekstowe i może podzielić się doświadczeniami?
Normalnie załadowałbym do postgresa i korzystał z zapytań bazodanowych, ale tu okoliczności przyrody są takie, że goły python jest mocno preferowany.