[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:data-engineer\u002Fdata-pipeline-orchestration":4,"config":126},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":40,"samples":41},"data-engineer","Data Engineer","","data-pipeline-orchestration","Data Pipeline Orchestration","tr",75,600,[14,15,16],"junior","mid","senior",[18,21,24,27,30,31,34,37],{"key":19,"name":20,"count":11},"data-governance-lineage","Data Governance Lineage",{"key":22,"name":23,"count":11},"data-modeling-warehousing","Data Modeling Warehousing",{"key":25,"name":26,"count":11},"data-partitioning-scaling","Data Partitioning Scaling",{"key":28,"name":29,"count":11},"data-pipeline-design","Data Pipeline Design",{"key":8,"name":9,"count":11},{"key":32,"name":33,"count":11},"data-pipeline-reliability","Data Pipeline Reliability",{"key":35,"name":36,"count":11},"data-quality-validation","Data Quality Validation",{"key":38,"name":39,"count":11},"streaming-fundamentals","Streaming Fundamentals",[],[42,60,73,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":51,"explanation":59},"019f6a40-d70f-7197-8fcd-20b89cb793a9",1,"Pipeline orkestrasyonunda DAG (yönlü döngüsüz graf) temel olarak neyi temsil eder?",[47,50,53,56],{"key":48,"text":49},"a","Bir görevin retry döngüsünü",{"key":51,"text":52},"b","Bağımlılık sırasını, döngü olmadan",{"key":54,"text":55},"c","Pipeline'ın çalıştığı sunucuları",{"key":57,"text":58},"d","Çıktı verisinin depolama formatını","DAG, görevleri düğüm, bağımlılıkları yönlü kenar olarak modeller. 'Döngüsüz' olması, bir görevin zincir yoluyla kendine bağımlı olamayacağı, dolayısıyla her zaman geçerli bir çalıştırma sırası hesaplanabileceği anlamına gelir.",{"id":61,"topic":9,"difficulty":44,"body":62,"options":63,"correct_key":54,"explanation":72},"019f6a40-d70f-7aa0-8bb7-c8d52b2d0b7d","Bir pipeline bağımlılık grafiği neden döngüsüz olmak zorundadır?",[64,66,68,70],{"key":48,"text":65},"Döngüsüz graflar daha az disk kullanır",{"key":51,"text":67},"Döngülü graflar iki görev tutamaz",{"key":54,"text":69},"Bir döngü geçerli sırayı engeller",{"key":57,"text":71},"Zamanlayıcılar alfabetik isim ister","A görevi B'ye, B görevi A'ya bağımlıysa hiçbiri önce çalışamaz — bir başlangıç noktası yoktur. Döngüsüzlük, en az bir geçerli topolojik sıralamanın var olmasını garanti eder.",{"id":74,"topic":9,"difficulty":75,"body":76,"options":77,"correct_key":48,"explanation":86},"019f6a40-d710-7437-afc7-71dd015b0945",2,"Bir pipeline için cron-benzeri zamanlama ile event-tabanlı tetikleme arasındaki temel fark nedir?",[78,80,82,84],{"key":48,"text":79},"Cron zaman güdümlü; event olaya tepki verir",{"key":51,"text":81},"Cron yılda bir, event-tabanlı her saniye çalışır",{"key":54,"text":83},"Event-tabanlı izleme gerektirmez",{"key":57,"text":85},"Cron retry ile birleştirilemez","Cron-benzeri zamanlama zaman güdümlüdür (örn. her gün 02:00). Event-tabanlı tetikleme, bir dosyanın gelmesi veya upstream pipeline'ın bitmesi gibi bir olayla tetiklenir, dolayısıyla çalışma zamanı olayın gerçekleştiği ana göre değişir.",{"id":88,"topic":9,"difficulty":75,"body":89,"options":90,"correct_key":57,"explanation":99},"019f6a40-d710-7b4c-95b2-aae3f083deaa","Günlük bir rapor pipeline'ı, depolamaya belirli bir upstream dosya geldikten sonra çalışmalı ve geliş saati her gün birkaç saat değişiyor. Hangi zamanlama yaklaşımı en uygun olur?",[91,93,95,97],{"key":48,"text":92},"En erken olası geliş saatine sabit cron",{"key":51,"text":94},"En geç olası geliş saatine sabit cron",{"key":54,"text":96},"Hiç zamanlama olmadan, elle çalıştırmak",{"key":57,"text":98},"Dosya gelince tetiklenen event-tabanlı tetikleyici","Geliş saati değişken olduğundan, sabit bir cron zamanlaması ya çok erken çalışıp dosyayı bulamama riskini taşır ya da en geç olası zamana kadar bekleyerek zaman kaybettirir. Event-tabanlı tetikleyici, bağımlılık karşılandığı anda tam olarak tepki verir.",{"id":101,"topic":9,"difficulty":75,"body":102,"options":103,"correct_key":51,"explanation":112},"019f6a40-d711-7591-9d8d-45c0f4d5e70e","Pipeline orkestrasyonu bağlamında 'backfill' ne anlama gelir?",[104,106,108,110],{"key":48,"text":105},"Eski pipeline çalıştırmalarını silmek",{"key":51,"text":107},"Pipeline'ı geçmiş tarihler için yeniden çalıştırmak",{"key":54,"text":109},"Bir tabloya yeni sütun eklemek",{"key":57,"text":111},"Gelecekteki çalıştırmalar için worker artırmak","Backfill, pipeline mantığını geçmiş zaman pencerelerine karşı yeniden çalıştırmak demektir — örneğin bir bug düzeltmesinden sonra son 30 günü tekrar çalıştırmak — böylece geçmiş çıktı, düzeltilmiş mantığın üreteceği çıktıyla eşleşir.",{"id":114,"topic":9,"difficulty":75,"body":115,"options":116,"correct_key":54,"explanation":125},"019f6a40-d711-7c15-845f-e5a1129fef30","Günlük aktif kullanıcı sayısını hesaplayan bir pipeline'da son 10 gündür kullanıcıları eksik sayan bir bug vardı. Bug artık düzeltildi. Genellikle sırada ne yapılmalıdır?",[117,119,121,123],{"key":48,"text":118},"Hiçbir şey, sadece gelecek çalıştırmalar önemli",{"key":51,"text":120},"Son 10 günü kalıcı olarak silmek",{"key":54,"text":122},"Etkilenen 10 günü backfill etmek",{"key":57,"text":124},"Zamanlamayı günde iki kez olarak değiştirmek","Geçmiş çıktının artık yanlış olduğu bilindiğinden, backfill düzeltilmiş mantığı etkilenen tarih aralığında yeniden çalıştırır, böylece geçmiş veri eskimiş veya eksik kalmak yerine düzeltmeyle tutarlı hale gelir.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,294,298,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":75,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":133,"name":134,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":133,"name":134,"field":215},{"key":139,"name":140,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":133,"name":134,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":133,"name":134,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":133,"name":134,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[293],{"key":133,"name":134,"field":288},{"key":5,"name_tr":6,"name_en":6,"sort":295,"specializations":296},10,[297],{"key":133,"name":134,"field":5},{"key":299,"name_tr":300,"name_en":301,"sort":302,"specializations":303},"game-dev","Oyun Geliştirme","Game Development",11,[304],{"key":133,"name":134,"field":299},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"field":306},[14,15,16],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[10,318],"en",[320,321],"google","github",21750,true]