Zadejte hledaný výraz...

Jak filtrovat velké množství dat

Denis Ulmann
verified
rating uzivatele
(9 hodnocení)
11. 12. 2017 13:26:35
Zdravím,
mám teoretický dotaz, nějaké postupy v hlavě mám, ale chci se zeptat i jiných, jak by situaci (nejen v PHP) řešili.
Každých 60 sekund dostanu feed s daty, který obsahuje max. 400 položek a toto číslo se nepřekročí. Feed vypadá nějak takto.
Zároveň mám dejme tomu 100 uživatelů, kteří v tomto feedu chtějí v reálném čase filtrovat (spoždění v podobě pár sekund samozřejmě nevadí).
- Každý uživatel si bude moct vytvořit více těchto filtrů, dejme tomu, že každý uživatel bude mít vytvořeno 5 filtrů, při 100 uživatelích to bude tedy 500 filtrů, které budu muset feedy projet, jestli nějaký položka daný filtr splňuje.
Ve filtrech budou mít uživatele naprostou volnost a filtr tedy může vypadat nějak takto: item1 musí být X && item2 je číslo a musí být větší než X && item3 je číslo a musí být menší než X && item4 + item5 jsou čísla a musí být větší, než X atd.. Podmínky v jednom filtru teoreticky omezím na max. 10, aby jich uživatel v jednom filtru nevytvořil stovky různými kombinacemi.
Chci se zeptat, jak by jste k tomuto přistupovali. Momentálně mám VPS 4 jádra i5, 12GB ramky.. takový průměr, zajímá mě tedy i dopad na HW a čas.
Díky moc za návrhy.
11. 12. 2017 13:26:35
https://webtrh.cz/diskuse/jak-filtrovat-velke-mnozstvi-dat#reply1316837
lukaspulda
verified
rating uzivatele
(24 hodnocení)
11. 12. 2017 14:04:14
400 řádků a 100 filtrů nejsou žádná velká data. Velká data se pohybují v milionech.
Na tvůj use-case stačí asi 400 řádků v pravidelném intervalu aktualizovat v DB a každý uživatel bude mít svůj "select" na svůj seskládaný filtr. I při horším návrhu řešení to nebude mít žádný vliv na výkon.
11. 12. 2017 14:04:14
https://webtrh.cz/diskuse/jak-filtrovat-velke-mnozstvi-dat#reply1316836
node
verified
rating uzivatele
(5 hodnocení)
11. 12. 2017 14:53:20
Ak sa bojis dopadu na vykon tak pouzi Generatory
11. 12. 2017 14:53:20
https://webtrh.cz/diskuse/jak-filtrovat-velke-mnozstvi-dat#reply1316835
crs
verified
rating uzivatele
(1 hodnocení)
18. 12. 2017 00:01:40
Čau,
Dokážu si představit přenášení všech položek vždycky a filtrování na straně klienta, v JavaScriptu.
Nevýhody:
- přenáší se (při každém požadavku) o několik set bajtů až několik kilobajtů více dat
- trocha času a úsilí na napsání filtrovacího kódu (jednorázově)
Výhody:
- změna filtru neznamená znovunačtení
- klientům se přenáší (v rámci těch 60 sekund) stejná data - možnost cacheování na serveru (nový požadavek vygeneruju a zapíšu do JSONu, každý další odkážu na tento soubor)
- přenos zátěže z jednoho kritického místa
18. 12. 2017 00:01:40
https://webtrh.cz/diskuse/jak-filtrovat-velke-mnozstvi-dat#reply1316834
Pro odpověď se přihlašte.
Přihlásit