Két tranzakció létezik. Először az első tranzakció hajt végre egy parancsot. Ezután a második tranzakció hajt végre egy parancsot. Ezután az első tranzakció folytatódik. Melyik sorrend vezet kölcsönös blokkoláshoz? ```sql -- első tranzakció update accounts set balance = balance + 100 where id = ?; -- második tranzakció update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```
Data Engineer
A PostgreSQL-ben tranzakciók teljesítményének optimalizálásához minimális izolációs szintet kell alkalmazni, amelynél: • párhuzamos tranzakciók láthatják egymás befejezetlen változásait; • lehetőség van "szennyezett olvasásokra" (dirty read). Milyen izolációs szintet kell megadni a tranzakcióhoz, hogy elérjük ezt a célt? A dirty read nem lehetséges PostgreSQL-ben repeatable read read uncommitted read committed serializable
Botforgalom aránya A csalás elleni csapat kifejlesztett egy mechanizmust a botforgalom felismerésére az áruház weboldalán: amikor egy bot belép az oldalra, a URL paramétereibe hozzáadódik a "bot" szubsztring (kis- és nagybetűk figyelmen kívül hagyásával). Ha a user_id legalább egyszer decemberben botként lett azonosítva, akkor mindig botként kell kezelni. Tanulmányozza a felhasználók weboldali látogatásainak adathalmazát, és számolja ki a botok arányát a teljes felhasználószámhoz képest 2024 decemberében (kerekítse egy tizedesre). Bemeneti formátum Visits tábla: - event_date (date) — látogatás dátuma - user_id (int) — egyedi felhasználói azonosító - url (string) — az oldal, ahová a látogatás történt Az adatok nem tartalmaznak hiányzó vagy hibás értékeket. Kimeneti formátum A lekérdezésnek egy olyan táblát kell visszaadnia, amely a következő mezőket tartalmazza: - share (float) — a botok aránya a teljes felhasználószámhoz képest decemberben, egy tizedesre kerekítve.
Hogyan állíthatod helyre a munkát egy távoli ágról, ha a `git checkout hotfix/missing-footer` parancs futtatásakor hibát kapsz, hogy az ág nem található?
Hirdetési kampányok felhasználói aktivitásának elemzése A vállalat nyilvántartást vezet a hirdetési kampányokkal kapcsolatos eseményekről. Két táblát biztosítanak: • campaigns — a hirdetési kampányok listája azonosítóikkal és neveikkel; • events — felhasználói események kampányonként, az esemény típusával (pl. 'click' (kattintás)) és időpontjával. Szükséges minden kampányhoz jelentést készíteni a következő mutatókkal: • Események összes száma. • Az eseményeket végrehajtó egyedi felhasználók száma. • Az első és utolsó esemény időpontja kampányonként. • A kampány rangsorolása a teljes eseményszám szerint csökkenő sorrendben. A rangsor egy szám, amelyet minden sorhoz hozzárendelnek az eredményhalmazban az adatok sorrendje alapján. Ha két vagy több sor azonos értéket tartalmaz, ugyanazt a rangot kapják, de a következő rang kihagyásra kerül. Csak azok a kampányok szerepeljenek a jelentésben, amelyeknek volt eseményük: a kampányok esemény nélkül nem kerülnek figyelembevételre. A végső jelentést először a kampány rangsora szerint növekvő sorrendben kell rendezni, majd a campaign_name szerint ábécé sorrendben. Bemeneti formátum • campaign_name (string) — a hirdetési kampány neve • start_date (timestamp) — a kampány kezdő dátuma és ideje • end_date (timestamp) — a kampány befejező dátuma és ideje Események táblázat: • event_id (int) — az esemény egyedi azonosítója • user_id (int) — az eseményt végrehajtó felhasználó egyedi azonosítója • campaign_id (int) — a kampány egyedi azonosítója • event_type (string) — az esemény típusa, pl. 'click' vagy 'conversion' • event_time (timestamp) — az esemény dátuma és időpontja Az adatok nem tartalmaznak hiányzó vagy hibás értékeket. Kimeneti formátum A lekérdezésnek egy olyan táblát kell visszaadnia, amely a következő mezőket tartalmazza ebben a sorrendben: • campaign_name (string) — a hirdetési kampány neve • total_events (int) — a kampánnyal kapcsolatos összes esemény száma • unique_users (int) — az eseményeket végrehajtó egyedi felhasználók száma • first_event_time (timestamp) — a kampány első eseményének dátuma és időpontja • last_event_time (timestamp) — a kampány utolsó eseményének dátuma és időpontja • campaign_rank (int) — a kampány rangsora a teljes eseményszám szerint csökkenő sorrendben A dataokat a kampány rangsora szerint növekvő sorrendbe, majd a campaign_name szerint ábécé sorrendbe kell rendezni.
Ha szeretné megváltoztatni az ágat, amelyre egy almodul mutat, mit kell tennie? - Az almodulok nem támogatják az ágak változtatását - Törölje az almodult, és adja hozzá újra a kívánt ággal - Változtassa meg az ágat az almodulban, és hajtson végre commitot a fő tárhelyen - Futtassa a git checkout parancsot a kívánt ágra az almodulban, és rögzítse a változásokat a fő tárhelyen - Futtassa a git submodule update --branch parancsot, megadva az új ágat
Miért fontolgat most állásajánlatokat?
Mi történt és hogyan lehet visszaállítani a munkát?
A notifications táblában van egy status mező, amelynek értékei: 'sent', 'delivered', 'read'. Melyik lekérdezés helyes? select * from notifications where status like '%sent%' order by created_at desc limit 5 select * from notifications where status = 'read' order by created_at desc limit 5 select * from notifications order by status desc limit 5 select * from notifications where status not in ('sent', 'delivered') order by created_at asc limit 5 select * from notifications where status in ('sent', 'delivered') order by created_at desc limit 5
Kérjük, mondja el, miért érdekli ez az állás.
A feature ág több commitot tartalmaz, amelyekben a config.yaml fájl hibásan lett commitolva, majd később javítva. Ennek eredményeként a csapat úgy döntött, hogy teljesen eltávolítja a fájl összes változtatását a történetből, hogy elkerülje az érzékeny beállítások kiszivárgását. Az ág eredeti állapota (a git log --oneline kimenete): 1 a4b5c67 (HEAD -> feature) Szolgáltatási logika átdolgozása 2 d9f0a11 A config.yaml gépelési hibájának javítása 3 7c1d3f2 Ideiglenes config.yaml hozzáadása 4 e3a98cd Kezdeti commit 5 A történet átírása után, hogy eltávolítsa a config.yaml fájlt, a git log --oneline kimenete így néz ki: 6 b9e7d42 (HEAD -> feature) Szolgáltatási logika átdolgozása 7 41f3b60 Kezdeti commit Milyen műveletet hajtott végre a csapat? - A git revert parancsot futtatta a config.yaml-t tartalmazó commiton - A git filter-branch --index-filter "git rm --cached config.yaml" -- --all parancsot futtatta - A git rebase -i parancsot használta, a változtatásokat tartalmazó commitokat törölve - A git commit --amend és a git push --force parancsokat használta - A git cherry-pick parancsot használta, hogy egy új ágat hozzon létre config.yaml nélkül
A képen látható táblastruktúra létrehozva. Szükséges végrehajtani a képen látható lekérdezést. Milyen típusú join-t kell használni a [...] helyén, hogy az eredményben type = 'table_aw' rekordok esetén a 'naming' oszlop kitöltve legyen, és type = 'table2' rekordok esetén a 'serial_number' oszlop? create table multirelation( type varchar not null, entity_id integer not null ); create table table_aw( id integer primary key, naming varchar not null ); create table table2( id integer primary key, serial_number varchar not null ); -- táblák szerkezete select m.type,m.entity_id, ta.naming, t2.serial_number from multirelation m [...] join table_aw ta on m.entity_id = ta.id and m.type='table_aw' [...] join table2 t2 on m.entity_id = t2.id and m.type='table2'; -- lekérdezés Hagyja üresen inner cross right left
A PostgreSQL-ban a sorverzió fejléc tartalmazza az xmax paramétert. Mi a szerepe a tranzakciók kezelésében? - Az egyedi sorazonosító létrehozásához a táblában - A sor láthatóságának ellenőrzéséhez más tranzakciók által - A tranzakció számának megjelöléséhez, amely törölte vagy frissítette a sort - A sor zárolásához több tranzakció egyidejű módosításai ellen - A maximális érték megadásához, amely beírható egy numerikus oszlopba
Fitness klubok látogatásainak elemzése Ön egy fitness klubok hálózatában elemzőként dolgozik. Információval rendelkezik a felhasználók látogatásairól és az általuk vásárolt tagságokról. Szükséges a tagságok hatékonyságának elemzése. Számolja ki minden tagságtípus esetén: • ennek a tagságtípusnak a használóinak összes száma. Csak egyedi user_id-ket vegyen figyelembe; • az adott tagsággal végzett összes látogatás száma. Vegye figyelembe az összes ilyen tagsággal rendelkező felhasználó látogatását; • az adott tagságtípus felhasználóinak aránya a teljes felhasználószámhoz képest százalékban (kerekítve egy tizedesre). A felhasználók arányának kiszámításához ossza meg az adott tagságtípust használó felhasználók számát az összes egyedi felhasználók számával. Minden felhasználó csak egy tagsággal rendelkezhet. Rendezze az eredményt tagságtípus szerint alfabetikus sorrendbe. Bemeneti formátum Táblázat memberships: • membership_id (int) — tagság egyedi azonosítója • user_id (int) — felhasználó egyedi azonosítója • membership_type (text) — tagságtípus Táblázat visits:
Melyik parancsot kell a projekt gyökérkönyvtárából használni a docs/ alkönyvtár frissítéséhez a távoli tárolóból származó legújabb verzióra, és ezt a változást a commithoz előkészíteni? git fetch docs/ && git merge docs/FETCH_HEAD git pull --recurse-submodules git submodule update --remote docs/ cd docs/ && git pull && cd .. && git commit -am "Frissítés" git submodule update --init docs/
Mi történt és hogyan lehet visszaszerezni a munkát?
Milyen Scala projekteken dolgozott korábban? Ossza meg a konkrét feladatokat és eredményeket ebben a technológiában.
Gyorsan vissza kell állítania több fájlt a legutóbbi commit verziójára, anélkül, hogy érintené a többi változást. Hogyan teheti meg? git reset --hard HEAD Törölje és újra hozza létre a fájlokat manuálisan git fetch és git merge git revert HEAD git checkout HEAD^ <fájl1> <fájl2>
Mit lehet mondani a következő lekérdezés helyességéről? select * from sessions where ended_at is null and status != 'pending';
git submodule update --init