Data Engineer
Mik az előnyei és hátrányai a sor- és oszlop-alapú adatbázisoknak? Melyik hatékonyabb csoportosítás és összegzés szempontjából?
Mikroszolgáltatás architektúra tervezési feladat: hogyan szolgáltassunk adatokat a megrendeléseket tartalmazó táblázathoz (termékek, árak, megrendelések) a frontend számára, ha három különálló mikroszolgáltatás van?
Mi az oszlop alapú tárolás előnye a sor alapú tároláshoz képest?
Mi az a dinamikus típusosítás?
Milyen inkrementális betöltési stratégiákat használtál a dbt-ben?
Milyen módszereket (típusokat) ismersz az adatok történetének tárolására? Hogyan halmozódik a történet a táblákban?
Írjon egy egyszerű DAG-ot az Apache Airflow-hoz
Ismeri a Domain Driven Design (DDD) módszertant? Ha igen, ossza meg példáit annak alkalmazásáról projektjeiben.
Hogyan olvasunk be egy 100 gigabájtos fájlt Pythonban?
Hogyan készítsünk felfelé történő kiterjesztést (NULL értékeket töltsünk ki az előző nem null értékkel fordított irányban)?
Mit hoz az Iceberg formátum a szokásos Parquethez képest?
Milyen elosztási formátumok vannak a Greenplum-ben a BY column és a RANDOMLY mellett?
Milyen fizikai JOINokat ismersz?
Ismered az OLAP-kockákat? Amikor többdimenziós adatokkal dolgozunk, hasonlóak egy Excel-pivot táblához, de gyorsabb interakciót tesznek lehetővé nagy adatmennyiségekkel.
Dolgozott inkrementális és teljes betöltésekkel? Hogyan kezelte a duplikátumokat?
Mi a különbség a CTE és az al-lekérdezés között?
Mesélj a Greenplumról — adatformátumok, soros és oszlopos tárolás.
Hogyan javasolja a Git Flow az alkalmazás új kiadásának formalizálását? - Új issue-ág létrehozásával - Hotfix-ág létrehozásával a masterből - Egy külön release-ág létrehozásával a developből - Közvetlen commitálással a master ágba - A master ág közvetlen összevonásával a developdel
Milyen táblamotorokat ismersz és használtál a ClickHouse-ban?
VÁLASZ * AZ adatbázisból1 mint t1 BAL OLDALI JOIN az adatbázisból2 mint t2 ON t1.date_start > t2.date_start --DML HOZZON LÉTRE TÁBLÁT, HA NEM LÉTEZIK Employee (id int, salary int, departmentId int); INSERT INTO Employee (id,salary,departmentId) ÉRTÉKEK (1, 70000, 1),(2, 94000, 1),(3, 85000, 1),(4, 80000, 2),(5, 60000, 2),(6, 62000, 3),(7, 90000, 3),(8, 94000, 3),(9, 94000, 3); cte-ként mint( válasszon *, rank() over(partition by departmentId order by salary desc) mint max_salary az Employee-ből ) válasszon * from cte ahol max_salary = 1