Forum » Programiranje » [Python] Zajemanje podatkov iz PB in obdelava le-teh
[Python] Zajemanje podatkov iz PB in obdelava le-teh
black ice ::
Zaenkrat nimam spisane še nobene kode, ker si želim najprej razjasniti nekaj pojmov. Imam mysql bazo z nekaj 10000 vnosi, v enem izmed polj so tudi povezave do datotek na disku. Želim obdelati vsako datoteko, do katere je podana povezava v podatkovni bazi. Problem nastane v tem, da obdelava posamezne datoteke traja cca 10 sekund (+- nekaj sekund). Zato želim implementirati vrsto, hkrati pa čim bolj izkoristiti procesor ter uporabiti več niti. Implementiral bi tudi log, da v primeru napak lahko pregledam poškodovane/izbrisane datoteke in jih po potrebi odstranim iz baze. Baza je na serverju, datoteke bi se obdelovale na ločenem računalniku.
1. vprašanje: na koliko rezultatov je smiselno omejiti sql stavek? Obstaja potreba po omejitvi rezultatov?
2. vprašanje: kako se lotiti problema izpada elektrike ali kakršnekoli druge nepredvidene težave? Zaenkrat razmišljam o dodatnem stolpcu v bazi, v smislu "obdelano" T/F + error log. Obstaja kakšna boljša rešitev?
Priznam, imam premalo izkušenj, zato tudi takšna začetniška vprašanja. Kakršenkoli namig v pravo smer bo dobrodošel.
1. vprašanje: na koliko rezultatov je smiselno omejiti sql stavek? Obstaja potreba po omejitvi rezultatov?
2. vprašanje: kako se lotiti problema izpada elektrike ali kakršnekoli druge nepredvidene težave? Zaenkrat razmišljam o dodatnem stolpcu v bazi, v smislu "obdelano" T/F + error log. Obstaja kakšna boljša rešitev?
Priznam, imam premalo izkušenj, zato tudi takšna začetniška vprašanja. Kakršenkoli namig v pravo smer bo dobrodošel.
- spremenilo: black ice ()
blackbfm ::
poglej si beanstalkd http://kr.github.io/beanstalkd/
dodaš vse vnose v queue na serverju potem pa na clientu zaženeš skripto ki obdeluje datoteke.. neka simpl while zanka..za paralelnost potem skripto enostavno zaženeš pač večkrat. Če je izpad elektrike, bo imel job timeout in gre avtomatsko nazaj v queue. Lohk pa zaženeš stvar na laptopu če te to skrbi.
dodaš vse vnose v queue na serverju potem pa na clientu zaženeš skripto ki obdeluje datoteke.. neka simpl while zanka..za paralelnost potem skripto enostavno zaženeš pač večkrat. Če je izpad elektrike, bo imel job timeout in gre avtomatsko nazaj v queue. Lohk pa zaženeš stvar na laptopu če te to skrbi.
brodul ::
Druga varjanta je celery. http://www.celeryproject.org/
Jaz sem z njim kar zadovoljen. Enostavno v glavni skripti reces da se more izvajat en task in potem lahko na tem racunalniku, ali na vecih drugih naredis ta task. Po prizetem ti dvigne toliko delavcev kolikor mas jeder.
Pac treba je mal docse prebrat.
Tle je en butast primer, ki sem ga naredil samo za research (niti ni postavljen, da bi bil hiter ali karkoli):
http://yodl.brodul.org/
Jaz sem z njim kar zadovoljen. Enostavno v glavni skripti reces da se more izvajat en task in potem lahko na tem racunalniku, ali na vecih drugih naredis ta task. Po prizetem ti dvigne toliko delavcev kolikor mas jeder.
Pac treba je mal docse prebrat.
Tle je en butast primer, ki sem ga naredil samo za research (niti ni postavljen, da bi bil hiter ali karkoli):
http://yodl.brodul.org/
Pretending to be a mature adult is so exhausting.
Invictus ::
Lahko uporabiš tudi Pentaho Kettle.
Skratka tega softwara je kot smetja, vprašanje pa je če boš to v redu naredil .
Je pa problem dovolj preprost da je za tebe dovolj ena perl/python/PHP/bash/... skripta, ki ti to pokrije.
Sploh če gre za enkratno obdelavo. Ne kompliciraj si življenja z raznimi BI/scheduler frameworki.
Skratka tega softwara je kot smetja, vprašanje pa je če boš to v redu naredil .
Je pa problem dovolj preprost da je za tebe dovolj ena perl/python/PHP/bash/... skripta, ki ti to pokrije.
Sploh če gre za enkratno obdelavo. Ne kompliciraj si življenja z raznimi BI/scheduler frameworki.
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Nasveti glede API-jaOddelek: Programiranje | 1188 (728) | Arey |
» | python in postgresql (strani: 1 2 )Oddelek: Programiranje | 7528 (6429) | ZaphodBB |
» | Real-time databaseOddelek: Programska oprema | 1589 (1106) | kunigunda |
» | PHP pošiljanje večje količine mailovOddelek: Programiranje | 3142 (2829) | Ziga Dolhar |
» | Skrbništvo 25 uporabnikov - predlogi in mnenja !Oddelek: Pomoč in nasveti | 3589 (2277) | SasoS |