ugrás a tartalomhoz

Feldolgozási sorrend?

mind1 valami név · 2019. Jan. 7. (H), 21.15
Ha van egy szövegfájlom (linux kernel logja), amiben sokféle, javarészt ismert szerkezetű sor található, akkor milyen sorrendet szokás követni a feldolgozásban?
Előbb parse-olás és utána a szűrés a már szétszedett, kielemzett sor mezőinek értéke alapján?
Vagy előbb a szűrés regex alapján és attól függően, hogy milyen mintára illeszkedett a sor, mehet a trancsírozás és a mezők értékét csak a különböző feldolgozásokhoz, statisztikákhoz használom fel?
Vagy ennek egy változata, hogy dupla szűrést csinálok: egyet a parse-olás előtt, hogy eldöntsem, milyen sort is kaptam, majd egy másikat ami már a mezők alapján szűr?
 
1

Talán mindkettő

Pepita · 2019. Jan. 8. (K), 11.00
Én nem szoktam túrni kernel logot, de betippelem, hogy leginkább az utolsó lesz hatékony.
Mivel - gondolom - statisztikát is szeretnél belőle, parsoláskor, az előszűrés után beszórnám valami db-be, hogy szépen ügyesen lehessen query-zni utána.
2

A kernel log csak példa,

mind1 valami név · 2019. Jan. 8. (K), 11.08
A kernel log csak példa, valami picit általánosabb log feldolgozóban gondolkodom már hosszú évek óta :)
Viszont ebben van a legtöbb könnyen feldolgozható érdekesség.
Adatbázist hanyagolnám, max. olyan jöhet szóba, ami a memóriában jön létre és a processz végén törlődik, mert tárolni nem akarom.

De asszem, tényleg ez lesz, amit írsz. Bár az előszűrés az (így belegondolva) inkább a parse-olás része, mert a parsernek kell tudni, milyen sorral mit tud kezdeni.
Amivel semmit, azt meg továbbadja 1:1-ben.
3

A kerdes, hogy mennyire

MadBence · 2019. Jan. 8. (K), 13.46
A kerdes, hogy mennyire koltseges a parseolas. Ha nagyon, akkor lehet hogy erdemes valami eloszurest csinalni, ha nem, akkor nem nyersz vele sokat.
4

Változó. Ha maradunk a kernel

mind1 valami név · 2019. Jan. 8. (K), 14.15
Változó. Ha maradunk a kernel lognál, akkor többnyire csak az üzenet szövegét tudom leválasztani a header részről.
De például a tűzfal üzeneteket minimum annyira fel lehet bontani, hogy forrás-, cél IP, protokoll, TCP/UDP esetén a forrás- és célportok stb., ami tapasztalataim szerint elég "költséges" dolog.
De közben járattam rajta a pár megmaradt agysejtemet és oda jutottam, hogy végső soron mindegy: a "váz" lehet olyan, ami csinál előszűrést, parse-olást, szűrést, adatgyűjtést, aztán ahol valóban kell előzetes szűrés, ott legfeljebb duplán dolgozik a gép, ahol meg nem, ott egyszerűen egy üres metódus lesz a szűrés helyén. Oszt jónapot. :)
5

Bármelyik működhet, feladat

inf · 2019. Jan. 8. (K), 14.17
Bármelyik működhet, feladat függő. Az előszűrésnek olcsóbbnak kell lennie, mint a parsolásnak. Nem vagyok benne biztos, hogy egy komplikált regex olcsóbb lenne, mint parsolni, ki kell próbálni.
6

Persze, de nem ez volt a

mind1 valami név · 2019. Jan. 8. (K), 14.20
Persze, de nem ez volt a kérdés, hanem az, hogy melyik a megszokott felállás. De minél tovább tologatom, hogy nekiessek a kódnak, annál inkább érzem, hogy hülyeség a kérdés. Legalábbis így, ennyire röviden. Ha lesz valami működő kód, akkor talán érdemes lesz visszatérni rá.
7

Én zsigerből előszűrnék ha

inf · 2019. Jan. 8. (K), 14.24
Én zsigerből előszűrnék ha lehet.
8

Zsigerből én is, de ezen

mind1 valami név · 2019. Jan. 8. (K), 14.46
Zsigerből én is, de ezen akadtam fenn, csak nem írtam körül eléggé (talán) :
Előszűrök - de mi alapján? Természetesen minták alapján. De a minták illesztése, ellenőrzése (legalábbis az én elképzeléseim szerint) a parse-olás részhez tartozik. Meg különben is hogy szűrjek, ha nem tudom, hogy mi van egy adott sorban? :)
(nem tudom, érthető-e - tartok tőle, hogy nem annyira, de nem tudom érthetőbben megfogalmazni)
9

Ha regexel próbálsz parsolni,

inf · 2019. Jan. 8. (K), 15.29
Ha regexel próbálsz parsolni, akkor /abc/ és /a(b)c/ a különbség az előszűrés és a parsolás között. (Mondjuk úgy rémlik, hogy szigorúan véve a regex használata nem számít parsolásnak, legalábbis van egy pár topic "regex vs string parsing" néven, de szerintem nem a technológia számít itt, hanem hogy mit csinálsz vele.)
10

A szűréshez használom a

mind1 valami név · 2019. Jan. 8. (K), 15.36
A szűréshez használom a regex-t, de ha már arra felhasználtam, akkor ugyanez az illesztés szét is darabolhatja a sort.