Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[NBP] Gradivo

zvonkoBogdan

sekiro ako je early onda racunas da ga nisi uhvatio s watermarkom nego s triggerom, ako je on time onda je uhvacen watermarkom, ako je onaj treci, zakasnjeli, onda znaci da je naknadno ponovno uhvacen triggerom


ZalutaliStudent

Pleteni miš U pravu si, sory zaboravio sam to.


tetak

Jel rješavao neko zi na Edgaru? na zadnjem zadatku sa emitiranjem, u prvom prozoru prema mom računu emitira se 1 Early i zatim 3 On time, pa me zanima kak napisati n-torku za ontime s obzirom da je između procesorskih vremena a treba napisati proc vrijeme u n-torki


MrPeanutButter

tetak
(12:06,12:00-12:02,E,1)
(12:07,12:00-12:02,O,3)


anon00

MrPeanutButter
Zašto se tu 1 i 3 ne zbrajaju?
Ili se zbraja samo unutar isto ‘emit’-a ? Kao svi Early se zbrajaju, svi OnTime se zbrajaju i svi Late se zbrajaju zasebno ili?

Takoder, zasto 2 ne ulazi u rijesenje, a imamo .withLateFirings(AfterCount(2))) - dakle 2s nakon watermarka ako sam dobro skuzio?


Kaladonter

anon00 Koliko sam ja skužio to afterCount(2) ti znači da se nakon watermarka eventovi prijavljuju nakon svakgo drugog. Npr. u zadnjem prozoru ide prvo 8 i on se ne prijavi nego se prijavi tek nakon 9, jer je njih dvoje u tom windowu nakon watermarka, dok nakon 2 u ovom zadatku ne dođe više nikoji event u prvom windowu pa se 2 uopće ne prijavi. Moguće da sam u krivu al tako sam ja to shvatio.


I3loodHound

anon00
Nek me neko ispravi ak sam u krivu, ali 1 i 3 se ne zbrajaju zbok discarding akumulacije, odnosno 1 se early emita u 1:06, onda se 3 on time emita u 1:07 neovisno o ovoj 1. Ako bi bili u istom emmiting time ili ako bi imali accumulating ili accumulating & retracting onda bi se zbrajali


anon00

Kaladonter Sad sam gledao po internetu i mislim da si dobro napisao

Eo i za druge kolege cu proci kroz zadatak pa da bude lakse za skuziti

Dakle
.apply(Window.into(FixedWindows.of(TWO_MINUTES))

  • Oznacava da cemo na X osi imati FIKSNE prozore od 2 min svaki

.triggering(AfterWatermark()

  • Ovo znaci da ce se event trigerati tocno kad dodemo do watermarka
    To je taj On time event
    • Watermark je ono gdje vam krivulja (heuristika) dodiruje desni dio trenutnog prozora (iliti najvisa tocka krivulje u tom prozoru)

.withEarlyFirings(AlignedDelay(ONE_MINUTE))

  • Ovo je Early event - on je u funkciji od nailaska na prvi element pa do watermark-a
    U zagradi je uvijet koji kaze da kad dodemo do nekog elementa napravi delay do pune minute pa tek onda okini early event (tj. čekaj jer možda dođe još neki element kojeg ces obraditi zajedno s ovim)

.withLateFirings(AfterCount(2)))
Ovo je Late event koji počinje djelovati tek nakon watermarka
U uvijetu ima AfterCount - tj propagiraj ovaj event tek nakon svaka 2 elementa koja su se dogodila, ako ne skupi 2 elementa onda se nikad nece ni okinuti.

.discardingFiredPanes())
Returns a new Window PTransform that uses the registered WindowFn and Triggering behavior, and that discards elements in a pane after they are triggered (Nisam najsigurniji kako bi ovo protumacio)
Edit: Evo kolega gore je super objasnio

.apply(Sum.integersPerKey());
Vrijednosti unutar istog triggera/eventa se zbrajaju


Dakle ako sad gledamo ovu gore sliku
Imamo 3 prozora na X osi: 12:00-12:02 | 12:02 - 12:04 | 12:04 - 12:06
Watermark 1. prozora je na 12:07
Watermark 2. prozora je na 12:08 i mrvicu iznad tog, ali nije bitno
Watermark 3. prozora je na 12:09

Događaj 1:
Dogodi se u 12:05 i nešto sitno - i od tad pa dok ne dođe do pune minute (AlignedDelay(ONE_MINUTE)) traje naš prvi Early trigger. Kako nismo naišli na nijedan drugi događaj onda se taj event propagira dalje i ukupni zbroj je

Događaj 3:
Dogodi se u 12:06 i nešto sitno i njega ce pokupiti onaj watermark trigger (AfterWatermark())

Dogadaj 2:
Kad se dode do njega pocinje .withLateFirings(AfterCount(2))), ali je problem sto nikad ne dode do Count=2 pa se nikad ne emit-a taj event

Dogadaj 5 je early i završi u 12:07
Dogadaj 4 i 6 su early i zavrse u 12:08 - nisu watermark jer je watermark tek negdje na 12:08:30
Dogadaj 7 je isto tako early i zavrsi u 12:08
Dogadaj 8 i 9 su .withLateFirings(AfterCount(2)), ali ovog puta se skupilo count=2 pa se taj event i okinuo. Nemojte zaboraviti da se ova 2 eventa grupiraju i njigova vrijednost se zbraja (.apply(Sum.integersPerKey())

Prema edgaru tocno rjesenje je

(12:06, 12:00-12:02, E, 1)
(12:07, 12:00-12:02, O, 3)
(12:07, 12:02-12:04, E, 5)
(12:08, 12:02-12:04, E, 10)
(12:08, 12:04-12:06, E, 7)
(12:09, 12:04-12:06, L, 17)


reygrep

anon00 oprosti nikako ne mogu skuziti koja je razlika izmedu (1 i 3) i (4 i 6) eventa?
zasto se 1 gleda kao early, a 3 kao on time, a nisu kao slucaj (4 i 6) gdje su oba early i zbrajaju se?
Ista stvar me muci kod 5 i 6 zasto ih nismo mogli grupirat


MrDREDD

Koja je razlika kada piše AfterCount/AtCount ?


anon00

MrDREDD
class AfterCount(TriggerFn):
"""Fire when there are at least count elements in this window pane.

A taj AtCount uopce ne mogu pronaci u dokumentaciji - moja pretpostavka bi bila nakon svakog elementa - emit
https://beam.apache.org/releases/pydoc/2.35.0/apache_beam.transforms.trigger.html


sekiro

anon00 znaci ako ih ima i vise od jedan se zbroje pa emitaju zajedno?


anon00

sekiro da


TamTam

Moze netko staviti rj prvog zadatka iz ispita?


niknik

foobar Kad predas ispit imas review i rjesenja, a i netko je vec uploadao ta rjesenja.


anon00

Je li se netko mozda potrudio skupiti i odgovoriti na pitalice, a da je voljan poslati u PM ili cak tu objaviti?


Bisolvon

anon00 Koje pitalice?


I3loodHound

anon00
Imas na materijalima pitanja iz prezentacija: https://github.com/studosi-fer/NMIBP/blob/master/vjezba/NMIBP_vjezba_pitanja-i-odgovori-s-prezentacija.pdf

I3loodHound My bad, ima vec u sluzbenom


anon00

Bisolvon Teoretska pitanja s edgara i sa starih ispita


I3loodHound

Zna netko dal smijemo imati neki cheet sheet za SPARQL po naliku na onaj za SQL?


Bisolvon

I3loodHound Imas “SPARQL query syntax” na sluzbenom pod.


« Prethodna stranica Sljedeća stranica »