» »

[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.
  • spremenilo: black ice ()

black ice ::

Več kot 60 ogledov in nobenega odgovora?

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.

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/
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.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nasveti glede API-ja

Oddelek: Programiranje
111188 (728) Arey
»

python in postgresql (strani: 1 2 )

Oddelek: Programiranje
777528 (6429) ZaphodBB
»

Real-time database

Oddelek: Programska oprema
351589 (1106) kunigunda
»

PHP pošiljanje večje količine mailov

Oddelek: Programiranje
153142 (2829) Ziga Dolhar
»

Skrbništvo 25 uporabnikov - predlogi in mnenja !

Oddelek: Pomoč in nasveti
333589 (2277) SasoS

Več podobnih tem