Crystal Creative Support

Crystal Creative Support

Day 42 / 100 – Mi történik, ha a forrásadat késve érkezik?

2026. március 21. - Crystal Creative Support

Szia, üdvözöllek a blogomon!

Reggel 7:30. A pipeline időben lefutott, minden zöld, mégis furcsa számok jelennek meg a riportokban. A napi értékek jóval alacsonyabbak a megszokottnál. Néhány perc után kiderül a probléma: a forrásrendszer késve küldte az adatot. Ez egy klasszikus helyzet az adatplatformok világában.

Fejlesztői szemmel az egyik legfontosabb kérdés az, hogy a pipeline képes-e felismerni a hiányos adatot. Ha a rendszer csak annyit tesz, hogy feldolgozza azt, amit kap, akkor könnyen előfordulhat, hogy egy részleges adatállomány kerül a Silver vagy Gold rétegbe. Ez különösen problémás lehet akkor, ha a hiányzó adat később érkezik meg, mert a rendszernek képesnek kell lennie korrigálni a korábbi feldolgozást.

Üzemeltetői szemmel a monitoring kulcsfontosságú. Jó gyakorlat például a rekordszám-ellenőrzés vagy a várható adatvolumen figyelése. Ha a rendszer látja, hogy a napi adat mennyisége jelentősen eltér a megszokottól, akkor jelezhet a pipeline lefutása előtt vagy után.

BA szemmel a legfontosabb kérdés az üzleti hatás. Ha egy napi riport hiányos adatra épül, az könnyen félrevezető döntésekhez vezethet. Ilyenkor fontos tudni, hogy a riport ideiglenes adatot mutat-e, vagy teljes adatfrissítés történt.

Egy érett adatplatform nem feltételezi, hogy a forrásadat mindig időben érkezik. Ehelyett ellenőrzéseket és validációkat épít be a folyamatba.

A 42. nap tanulsága számomra az, hogy az adatplatform stabilitása nem csak a saját rendszerünkön múlik. Legalább ennyire fontos az is, hogyan kezeljük a forrásrendszerek bizonytalanságát.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 41 / 100 – Mi történik, ha egy tábla hirtelen 5× nagyobb lesz?

Szia, üdvözöllek a blogomon!

Egy reggel azt látod, hogy a pipeline futási ideje drasztikusan megnőtt. Ami tegnap még 8 perc alatt lefutott, ma már több mint fél óráig tart. A hibaüzenet nem egyértelmű, de egy dolog gyorsan kiderül: az egyik tábla mérete hirtelen többszörösére nőtt. Ez az a pillanat, amikor a rendszer skálázhatósága valódi teszt elé kerül.

Fejlesztői szemmel az első kérdés: mi változott a forrásban? Lehet, hogy egy új adatforrás került bekötésre, egy új mező érkezett, vagy egyszerűen csak jelentősen megnőtt a tranzakciók száma. Az is előfordulhat, hogy egy hibás join vagy duplikáció miatt a rekordok száma sokszorosára nőtt.

Ilyenkor nem csak a táblaméret számít, hanem az is, hogyan dolgozzuk fel az adatot. Egy nem optimalizált join vagy egy teljes újratöltés könnyen exponenciálisan növelheti a feldolgozási időt.

Üzemeltetői szemmel a kérdés inkább az, hogy a rendszer mennyire képes kezelni a növekedést. Van megfelelő partícionálás? Van incremental betöltési stratégia? A pipeline képes csak az új adatokat feldolgozni, vagy minden futásnál újraszámolja az egészet?

Ha a rendszer minden alkalommal teljes adatfeldolgozást végez, a növekedés gyorsan problémává válik.

BA szemmel a kérdés még egy lépéssel hátrébb kezdődik: vajon ez üzletileg indokolt növekedés? Egy új kampány, új termék vagy új piac természetesen több adatot generál. Ha viszont a növekedés váratlan, akkor akár adatminőségi probléma is állhat mögötte.

Egy érett adatplatform képes kezelni az adatmennyiség növekedését. A kulcs a skálázható architektúra, a megfelelő partícionálás és az incremental feldolgozás.

A 41. nap tanulsága számomra az, hogy az adatmennyiség növekedése nem kivétel, hanem természetes jelenség. A kérdés nem az, hogy megtörténik-e, hanem az, hogy a rendszer készen áll-e rá.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 40 / 100 – Mi történik, ha egy pipeline félúton megáll?

Szia, üdvözöllek a blogomon!

Hajnali 2:13. A pipeline elindult, majd félúton megállt. A Bronze betöltés sikeres volt, de a Silver transzformáció már nem futott le. Reggelre a riportok üresek. Ez az a helyzet, amikor kiderül, mennyire stabil a rendszer.

Fejlesztői szemmel az első kérdés mindig az: pontosan hol történt a hiba? A pipeline-ok általában több lépésből állnak – adatbetöltés, transzformáció, aggregáció. Ha a folyamat félúton áll meg, az adatplatform részben frissült állapotban marad. A Bronze réteg tartalmazza az új adatot, de a Silver vagy Gold még a tegnapi állapotot mutatja. Ez különösen veszélyes lehet, mert a rendszer nem feltétlenül „hibásnak” tűnik. A riportok megnyílnak, csak éppen nem a legfrissebb adatokkal dolgoznak.

Üzemeltetői szemmel ilyenkor a monitoring és az alerting válik kritikus tényezővé. Egy jól működő platform nem reggel deríti ki, hogy probléma volt az éjszakai futásnál. A hibát automatikus értesítés jelzi: e-mail, Teams vagy monitoring dashboard.

A következő kérdés az, hogy újrafuttatható-e a pipeline. Egy jól tervezett adatfolyamat idempotens: ha újraindítjuk, nem duplikál adatot, és nem rontja el a már betöltött rétegeket.

BA szemmel a legfontosabb kérdés nem technikai. Hanem üzleti: milyen riportok érintettek? Ha egy kritikus KPI reggel 8-kor hibás adatot mutat, az már döntési kockázat.

Ilyenkor fontos tudni, mely riportok épülnek az adott pipeline-ra, és mennyire kritikus az adott adatfrissítés.

A jó adatplatform nem attól jó, hogy soha nincs hiba. Hanem attól, hogy a hibák gyorsan észrevehetők, kontrolláltan kezelhetők, és nem okoznak láncreakciót a rendszerben.

A 40. nap tanulsága számomra az, hogy az adatplatform stabilitása nem csak fejlesztési kérdés. Legalább annyira monitoring, üzemeltetés és átláthatóság kérdése is.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 39 / 100 – Tesztelés adatplatformon: tényleg szükség van rá?

Szia, üdvözöllek a blogomon!

A „tesztelés” szó sokáig inkább alkalmazásfejlesztéshez kötődött a fejemben. Unit tesztek, integrációs tesztek, CI/CD pipeline-ok. Az adatplatform világában viszont sok helyen még mindig az a hozzáállás: „lefuttattuk, jónak tűnik”.

Csakhogy az adat hibája gyakran nem azonnal látványos. Egy rossz join feltétel, egy elcsúszott dátumszűrés vagy egy hibás deduplikáció napokig észrevétlen maradhat – miközben döntések épülnek rá.

Képzelj el egy tipikus szituációt. Egy új mező érkezik a forrásból. A pipeline lefut, a tábla frissül. De az új mező minden rekordnál null. Technikailag nincs hiba, a futás „zöld”. Üzletileg viszont a riport félrevezető.

Itt jön be a tesztelés szerepe. Adatplatformon ez nem feltétlenül klasszikus unit teszt, hanem például:
– sorok számának ellenőrzése (nem csökkent drasztikusan?)
– kulcsmezők egyediségének vizsgálata
– null értékek arányának figyelése
– referenciális integritás ellenőrzése
– várható tartományok validálása

Ezek lehetnek automatizált ellenőrzések, de akár egyszerű, jól definiált kontroll lekérdezések is. A lényeg, hogy ne csak a technikai futást nézzük, hanem az adat minőségét is.

Fejlesztői szemmel a tesztelés időigényesnek tűnhet, de üzemeltetői szemmel ez az, ami megspórolja a reggeli pánikot. BA szemmel pedig a tesztelés az adatbizalom alapja.

Én azt látom, hogy az érettebb adatplatformokban a tesztelés nem extra. Be van építve a folyamatba. Nem az a kérdés, hogy „teszteljünk-e”, hanem hogy mit és milyen mélységben.

A 39. nap tanulsága számomra az, hogy az adatplatformon a hibák ritkán hangosak. A tesztelés az, ami időben jelzi őket, mielőtt üzleti problémává válnának.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 38 / 100 – Star schema vagy „lapos” tábla? A modell nem csak technikai döntés

Szia, üdvözöllek a blogomon!

Amikor eljutunk a Gold rétegig, előbb-utóbb szembejön a kérdés: hogyan modellezzük az adatot? Klasszikus csillagséma (star schema), külön dimenziókkal és fact táblával? Vagy inkább egy széles, „lapos” tábla, ahol minden egy helyen van?

Elsőre a star schema tűnik a szakmailag „helyes” válasznak. Külön dimenziók (pl. termék, ügyfél, dátum), és egy fact tábla, amely a mért adatokat tartalmazza. Ez jól skálázható, tiszta logikájú, és BI eszközökben optimalizált működést ad. A dimenziók újrahasználhatók, a definíciók konzisztenssé válnak.

De nézzünk egy másik helyzetet. Egy kisebb csapat, kevés riport, viszonylag egyszerű adatszerkezet. Itt a csillagséma néha túltervezés. Egy jól strukturált, lapos tábla gyorsabb fejlesztést tesz lehetővé, és a riportkészítés is egyszerűbb lehet.

A lapos modell viszont könnyen redundanciát hoz be. Ha ugyanaz a dimenzió több fact jellegű adat mellett is ismétlődik, a változtatás nehezebb lesz. Ráadásul nagyobb adatmennyiségnél teljesítményproblémák jelenhetnek meg.

A star schema előnyei:
– tiszta üzleti entitások
– jobb újrahasznosíthatóság
– konzisztens KPI logika
– skálázhatóság

A lapos modell előnyei:
– gyorsabb indulás
– kevesebb join
– egyszerűbb mentális modell kisebb csapatnál

Fejlesztői szemmel a döntés gyakran teljesítmény- és karbantarthatósági kérdés. BA szemmel viszont az a fontos, hogy a modell mennyire támogatja az üzleti gondolkodást. Ha a felhasználó nem érti, mi a dimenzió és mi a fact, a „szép” modell is zavaró lehet.

Én azt tanultam, hogy nincs univerzális válasz. A modellnek a használati módhoz kell illeszkednie. Ha a rendszer növekedni fog, érdemes előre gondolkodni. Ha viszont gyors validáció a cél, nem biztos, hogy azonnal enterprise-szintű modellt kell építeni.

A 38. nap tanulsága számomra az, hogy az adatmodell nem esztétikai kérdés. Ez az a réteg, ahol a technikai struktúra és az üzleti értelmezhetőség találkozik.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 37 / 100 – Paraméterezés: így lesz egy pipeline-ból újrahasználható "termék"

Szia, üdvözöllek a blogomon!

Van egy pont, amikor egy adatplatform elkezd „szétesni”: amikor ugyanazt a logikát sokszor lemásoljuk, csak azért, mert gyorsabb, mint szépen megcsinálni. Itt jön képbe a paraméterezés – és meglepően sok rendszert pont ez emel át a hobbiszintből a fenntartható működésbe.

Képzelj el egy tipikus helyzetet. Be kell tölteni 10 hasonló forrást: országonként más fájl, de a struktúra szinte ugyanaz. A leggyorsabb megoldás: csinálunk 10 pipeline-t. Működik. Aztán változik a fájlnév, vagy jön egy új oszlop, és 10 helyen kell módosítani. Ilyenkor minden apró változás kockázat és rengeteg idő.

A paraméterezés lényege, hogy egy pipeline legyen, ami többféle helyzetben is használható. Például paraméterként megadod:
– forrás útvonal / fájlnév minta
– országkód vagy környezet (dev/test/prod)
– feldolgozandó dátum (batch date)
– target tábla neve
– „full reload” vagy „incremental” mód

Ezzel nem csak időt spórolsz, hanem csökkented a hibalehetőséget is. Ha egy változás jön, egy helyen javítod. Ráadásul az üzemeltetés is könnyebb: egy folyamatot figyelsz, nem tízet. A futások pedig összehasonlíthatóbbak lesznek, mert ugyanaz a logika fut különböző paraméterekkel.

A paraméterezésnél viszont van egy fontos határ: ne paraméterezd túl. Ha egy pipeline már 20 kapcsolótól függ, nehéz lesz átlátni, és a hibakeresés is bonyolultabb. Én szeretem azt a gondolkodást, hogy paraméterezünk mindent, ami valóban „változó”, de a fő logika marad stabil és egyszerű.

BA szemmel ez azért érdekes, mert a paraméterezés valójában szervezeti értéket ad: gyorsabban tudunk reagálni új igényekre, és kevesebb „kézi tűzoltás” kell. Fejlesztői szemmel pedig ez az egyik legjobb eszköz arra, hogy újrahasználható, skálázható megoldásokat építsünk.

A 37. nap tanulsága számomra az, hogy a paraméterezés nem extra finomítás. Ez az a lépés, amikor egy egyszeri megoldásból valódi platform-komponens lesz.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 36 / 100 – Notebook vs Pipeline: nem eszközvita, hanem működési döntés

Szia, üdvözöllek a blogomon!

A Fabricben (és úgy általában az adatplatformokon) az egyik leggyakoribb kérdés: Notebookban csináljuk, vagy Pipeline-ban? Elsőre ez olyan, mintha eszközök között választanánk. A valóságban viszont ez sokkal inkább működési döntés, ami hosszú távon meghatározza, mennyire lesz fenntartható a rendszer.

Képzelj el egy helyzetet: egy adatforrásból érkező fájlok néha hibásak, néha hiányosak, és van néhány üzleti szabály, amit rugalmasan kell kezelni. Notebookban gyorsan tudsz kísérletezni: betöltöd, megnézed a mintát, kipróbálsz egy tisztítást, ránézel a kimenetre. Ez a notebook igazi ereje: iteratív gondolkodás, gyors visszacsatolás.

Csakhogy jön a következő lépés: ezt a megoldást üzemeltetni kell. Minden hajnalban fusson le. Hibánál legyen jelzés. Újrafuttatáskor ne okozzon kárt. Legyen log, legyen futástörténet. Itt kezd el a pipeline „otthon lenni”, mert a pipeline egy folyamat-orientált keret: jobban látszik az adatút, könnyebb verziózni, és általában jobban illeszkedik az üzemeltetési gondolkodáshoz.

A döntés sokszor így hangzik fejben:
– Kísérletezem (notebook), vagy rendszert építek (pipeline)?
– Egyedi logika kell, vagy standardizált lépések?
– Ki fogja ezt 3 hónap múlva karbantartani: én, vagy egy másik csapat?

Fejlesztői oldalról is van egy tipikus csapda: notebookokkal nagyon könnyű „láthatatlan rendszert” építeni. Működik, de a logika elbújik kódcellákban, és ha nincs rendes struktúra, akkor a tudás egy ember fejében marad. Pipeline-nál a folyamat sokszor olvashatóbb – cserébe kevésbé rugalmas a kísérletezés.

BA szemmel pedig a legfontosabb kérdés: mikor válik egy ötlet üzleti szempontból kritikussá? Amíg kísérlet, addig a notebook tökéletes. De amikor már döntések épülnek rá, akkor stabilitást kell adni neki. Én ezért szeretem azt a megközelítést, hogy notebookban gyorsan validálok, majd a stabil logikát „átültetem” egy üzemeltethetőbb keretbe.

A 36. nap tanulsága számomra az, hogy a notebook vs pipeline esetén a jó választás az, ami a célhoz illeszkedik: kísérletezéshez notebook, stabil kontrollált folyamathoz pipeline.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 35 / 100 – Idempotencia: miért ez a legjobb barátod üzemeltetéskor?

Szia, üdvözöllek a blogomon!

Ha egyetlen fogalmat kellene kiemelnem, ami fejlesztői és üzemeltetői szemmel is aranyat ér, az az idempotencia. Bonyolult szónak hangzik, de a jelentése nagyon egyszerű: ha ugyanazt a folyamatot kétszer lefuttatom, ugyanazt az eredményt kapom, és nem rontom el a rendszert.

Képzelj el egy éjszakai betöltést. Pipeline fut, majd félúton hibára fut egy átmeneti hálózati probléma miatt. Reggel 8-kor az üzlet azt látja, hogy a riport nem frissült. Az üzemeltető újraindítja a futást és itt jön a kérdés: az újrafuttatás rendbe teszi a helyzetet, vagy duplikációt és össze-vissza állapotot okoz?

Ha a pipeline nem idempotens, akkor az újrafuttatás veszélyes. Például kétszer beszúrja ugyanazokat a rekordokat, vagy egy részben frissített táblát „ráfrissít” rossz logikával. Ez az a pont, ahol a hibakezelés helyett hibagyártás történik.

Idempotenciát többféleképpen lehet elérni. A legkézenfekvőbb eszközök:
– determinisztikus kulcsok és upsert logika (csak akkor, ha biztos a kulcs!)
– staging/átmeneti táblák használata, majd atomikus csere (swap)
– futásokhoz kötött batch azonosítók, amik alapján visszakereshető, mi futott le
– kontrollált törlés-újratöltés jól definiált szeletekre (például dátum szerint)

A lényeg: üzemeltetéskor a „rerun” az egyik leggyakoribb mentőakció. Ha nem idempotens a rendszer, akkor minden újrafuttatás kockázat, és az üzemeltetés stresszes, kiszámíthatatlan lesz.

BA szemmel pedig itt válik láthatóvá, hogy a technikai minőség üzleti érték. Ha egy hiba után percek alatt biztonságosan újra lehet futtatni a betöltést, az nem csak IT-siker: az üzlet időt nyer, kevesebb a manuális ellenőrzés, gyorsabb a döntés.

A 35. nap tanulsága számomra az, hogy az idempotencia nem extra „szépítés”. Ez a stabil adatplatform egyik alapfeltétele, főleg akkor, amikor már nem csak fejlesztünk, hanem üzemeltetünk is.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 34 / 100 – Upsert vs full reload: a „gyorsabb” nem mindig jobb

Szia, üdvözöllek a blogomon!

A fejlesztői döntések közül az egyik leggyakoribb, és mégis leginkább félreérthető kérdés: upsertet (merge) használjunk, vagy inkább full reloadot? Sokszor az első gondolat az, hogy az upsert „modernebb” és „hatékonyabb”, hiszen csak a változásokat írjuk be. A valóság viszont az, hogy mindkét megoldásnak megvan a maga helye, és a rossz választás később fájdalmas lehet.

Képzelj el egy tipikus helyzetet. Van egy rendelés tábla, ami naponta frissül. A forrásrendszer elküldi az új és módosult rekordokat. Itt csábító az upsert: ha a rekord már létezik, frissítjük, ha nem, beszúrjuk. Kevesebb adat mozog, gyorsabb lehet a betöltés, és elvileg elegáns.

De jön a csavar: az upsert csak akkor működik jól, ha van stabil, megbízható kulcs, és a forrás valóban csak a változásokat küldi. Mi történik, ha a forrás néha tévesen „nem küld” változást? Mi van, ha egy rekord módosul, de a változás jelző mező késik? Vagy ha a kulcs nem egyedi, és véletlenül több sorra illesztünk? Ilyenkor az upsert szépen, csendben képes elrontani a táblát úgy, hogy napokig nem vesszük észre.

A full reload ezzel szemben brutálisabb, de sokszor biztonságosabb: letöröljük az aktuális állapotot, és újratöltjük az egészet. Ez drágább lehet erőforrásban, de egy csomó „rejtett” problémát kiküszöböl. Ha a forrásrendszer minden nap teljes snapshotot küld, a full reload sok esetben egyszerűbb és stabilabb.

Elemzői/BA szemmel a döntés kulcsa nem az, hogy melyik gyorsabb, hanem hogy melyik ad nagyobb bizalmat. Ha kritikus KPI-k épülnek rá, ha auditálhatóság kell, vagy ha a forrás minősége ingadozó, a „túl okos” upsert veszélyes lehet. Ha viszont stabil a kulcs, jól definiált a változáskezelés, és fontos a teljesítmény, az upsert nagyon jó eszköz.

A 34. nap tanulsága számomra az, hogy az upsert nem alapértelmezett választás. Hanem egy tudatos döntés, amit csak jó adatkontrakt és stabil kulcs mellett érdemes meghozni.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

Day 33 / 100 – Gold réteg: tényleg kell mindig külön „hivatalos” réteg?

Szia, üdvözöllek a blogomon!

A klasszikus bronze–silver–gold felosztás szinte dogmaként jelenik meg sok adatplatformon. De vajon mindig szükség van külön Gold rétegre? Vagy ez is egy olyan döntés, amit kontextus alapján kell meghozni?

A Gold réteg célja általában az, hogy üzleti felhasználásra optimalizált, aggregált, riportkész állapotú adatot biztosítson. Itt jelennek meg a végleges KPI-ok, előre számolt metrikák, riportbarát struktúrák.

Képzelj el egy olyan helyzetet, ahol minden riport ugyanazt a KPI-t használja, ugyanazzal a logikával. Ha ezt minden riport saját maga számolja ki a Silverből, az redundanciához és teljesítményproblémához vezethet. Ilyenkor a Gold réteg központi definíciót és optimalizált elérést ad.

De most nézzünk egy másik szituációt. Egy kisebb csapat, kevés riport, gyakori változások. Itt lehet, hogy a külön Gold réteg csak plusz komplexitás. A Silver rétegből közvetlenül is lehet modellezni, ha a struktúra tiszta.

A Gold tehát nem kötelező, hanem döntési kérdés. Mikor indokolt?

– Ha sok felhasználó ugyanazt a KPI-t használja.
– Ha teljesítménykritikus a riport.
– Ha stabil, ritkán változó definíciókról van szó.
– Ha egységes üzleti igazságforrást szeretnénk.

A Gold réteg bevezetése viszont felelősséggel jár. Ha egy KPI bekerül ide, onnantól „hivatalos”. A változtatás már nem csak technikai módosítás, hanem üzleti kommunikációs kérdés is.

Elemzőként a Gold réteg számomra nem csak optimalizáció, hanem vállalás. Ha itt definiálunk valamit, annak konzisztensnek és dokumentáltnak kell lennie.

A 33. nap tanulsága számomra az, hogy a rétegzés nem dogma. A Gold akkor érték, ha valódi központosítást és stabilitást ad, nem pedig plusz karbantartási terhet.

Köszönöm, hogy elolvastad! Legyen szép napod!

#MicrosoftFabric #100DaysOfLearning #DataAnalytics #BusinessAnalyst #TanulásNyilvánosan

süti beállítások módosítása