Data Engineer
Kafka užduotis: gamintojas siunčia prekės kainos pakeitimus (200 rubliai, tada 300 rubliai), vartotojas yra replikliuotas 3 poduose. Ar bus problemų numatytojoje konfigūracijoje?
Mes įvedame metaduomenis kaip įvestį, ir jis sukuria srautą remdamasis šiais metaduomenimis — kaip tai leis greitai perkelti esamus srautus iš senų sistemų į planuojamas?
Kokia yra shuffle pavojus Spark'e?
Kokie yra duomenų kokybės rizikos?
Kaip palyginti pradinį („gyvą“) ir tikslinį sąrašą, jei šaltinis nuolat keičiasi?
Kas yra duomenų skaidymas ir kaip jis padeda išvengti visiško lentelės nuskaitymo?
Aprašykite lango funkcijas kuo išsamiau: kokios raktinės žodžiai naudojami ir kam kiekvienas iš jų yra atsakingas.
Kas įvyko ir kaip atkurti darbą?
Kas yra ančių tipavimas (duck typing)?
Papaskok apie skaidymą. Kokias įdomias operacijas teko atlikti?
Kokios yra skaidinių rūšys?
Kas yra pirminis raktas ClickHouse ir kuo jis skiriasi nuo įprastų duomenų bazių pirminio rakto?
Ar turite patirties optimizuojant SQL užklausas? Pateikite pavyzdį.
Kas yra broadcast join Spark?
Kas yra Catalyst optimizatorius Spark ir kokius konkrečius optimizavimus jis atlieka (pvz., predicate pushdown)?
Detaliai aprašykite inkremento gaudymo algoritmą iš šaltinio, kad nieko neprarastų keičiant įkėlimo dažnį.
Kaip sekti, kuriame DAG paleidime pasirodė konkreti eilutė Data Vault?
Atradote, kad pagrindinio Git saugyklos istorijoje yra commit'ų, kuriuose yra kritinių konfidencialių duomenų. Šiuos duomenis reikia visiškai pašalinti iš visos saugyklos istorijos. Įvertinkite, kaip teisinga ir saugu būtų naudoti šią strategiją: sukurti naują commit'ą, kuris pašalins konfidencialius duomenis iš dabartinės failų versijos ir išsiųsti jį į main. - Teisinga, bet ne optimalu. Geriau naudoti git revert, kad atšaukti commit'us - Laikinai teisinga. Tai laikinas sprendimas, kol bus rastas radikalesnis būdas pašalinti duomenis - Neteisinga ir nesaugu. Duomenys bus pašalinti iš dabartinės versijos, bet liks prieinami saugyklos istorijoje - Neteisinga. Šis commit'as gali sukelti naujų konfliktų su kitomis šakomis - Teisinga ir saugu. Šis metodas garantuoja, kad duomenys bus pašalinti ir daugiau nebepasirodys saugykloje
Kokia strategija būtų efektyvi visų šakų pažeidžiamumui pašalinti su minimaliu projekto veikimo sutrikimo rizika? - Sukurti seriją revert-commitų problematiškam commitui ir visiems, kurie jį iš dalies pataisė, tada sukurti naują commitą su pilnu pataisymu - Sukurti hotfix šaką nuo taško prieš problematišką commitą, atlikti pataisas ir sujungti šią šaką su visomis paveiktomis šakomis - Sukurti vieną pataisymo commitą naudodami git revert abc123 pagrindinėje šakoje ir tada cherry-pick šį commitą į visas leidimo šakas - Naudoti git bisect tiksliai nustatyti problematišką kodą, sukurti pataisą ir taikyti ją visoms šakoms naudojant git am - Naudoti git rebase -i redaguoti problematišką commitą kiekvienoje šakoje, po to atlikti force-push (force-push)
Kokia paskutinė užduotis Python kalba, kurią sprendėte gamyboje?