Veri Bilimi Okulu

Uçtan Uca Bir Data Engineering Projesi: Gerçek Hayat Simülasyonu
Uçtan Uca Bir Data Engineering Projesi: Gerçek Hayat Simülasyonu
cemal_de-project-bootcamp_kapak_960x640

Loading

Veri mühendisliği son yılların en heyecan verici ve dinamik alanlarından biri. Ancak kitaplar, videolar ve online kurslar kadar önemli bir şey daha var: gerçek dünya deneyimi. Biz de yoğun bir VBO Data Engineering Bootcamp‘inde tam olarak bunu yaşadık. Bu yazıda sizlere, bu süreçte uçtan uca nasıl profesyonel bir veri mühendisliği projesi geliştirdiğimizi paylaşmak istiyorum.

1. Yolculuk Başlıyor: İş Gereksinimlerini Anlamak

Her projenin temeli doğru tanımlanmış iş ihtiyaçlarıyla başlar. Biz de işe, projemizin iş gereksinimlerini analiz ederek başladık. Bu aşamada, veriden nasıl değer üretileceğini, hangi metriklerin takip edilmesi gerektiğini, kullanıcı ihtiyaçlarının neler olduğunu net bir şekilde ortaya koyduk.

2. Altyapıyı Sıfırdan Kurduk

İkinci adımda işe koyulduk: altyapıyı kurmak. Hiçbir hazır servis kullanmadan, tüm sistemleri kendi ellerimizle yapılandırdık. Bu sayede her bileşenin nasıl çalıştığını derinlemesine anlama fırsatımız oldu. Kullandığımız temel teknolojiler şunlardı:

  • Linux işletim sistemi üzerinde,
  • Docker ve Kubernetes ile container orchestration,
  • PostgreSQL veritabanı,
  • MinIO (S3 uyumlu bir obje depolama),
  • Nessie veri kataloğu,
  • Trino (eski adıyla Presto) ile dağıtık sorgulama,
  • Apache Superset ile veri görselleştirme,
  • Apache Spark ile büyük veri işleme,
  • Apache Airflow ile iş akışı orkestrasyonu.

Her bileşenin kurulumunu ve yapılandırmasını kendimiz gerçekleştirdik. Tüm servislerin birbirleriyle sorunsuz haberleştiğinden emin olana kadar testler yaptık ve sorunları birlikte çözdük.

3. Altyapı Testi ve Geçiş: Data Modelleme

Altyapımız sağlam bir şekilde oturduktan sonra veri modellemeye geçtik. Kaynaktan gelen verilerin analize uygun bir yapıya dönüşmesi için star schema yapısına göre veri modelleri oluşturduk. Bu adım, verinin işlenebilir, sorgulanabilir ve görselleştirilebilir hale gelmesi açısından kritikti.

4. Data Ingestion & Airflow DAG’ları

Modellemeyi takiben sıra veriyi sistemimize akıtmaya geldi. Bu aşamada Python kullanarak veri ingestion scriptleri ve Airflow DAG’ları geliştirdik.

Bu DAG’ların versiyon kontrolünü profesyonel bir ortamda olduğu gibi GitHub üzerinden yönettik:

  • Her yeni geliştirme için pull request açtık,
  • Kodlarımız review edildi,
  • Gerekli düzeltmeler sonrası merge işlemi gerçekleştirildi.

Bu süreç bize sadece teknik değil, aynı zamanda takım içi iş birliği ve kod kalitesi kültürü açısından da çok şey kattı.

5. Gerçek Zamanlı ve Batch İşleme: Spark & Trino

Veri işleme tarafında iki güçlü araç kullandık:

  • Apache Spark ile batch veri işleme görevlerini yönettik,
  • Trino ile farklı veri kaynakları üzerinde hızlı ve esnek sorgular gerçekleştirdik.

Bu sayede hem büyük veri kümeleriyle başa çıkabildik hem de analitik sorgularımızı esnek bir şekilde yapabildik.

6. Görselleştirme: Superset ile Dashboard’lar

İşlenmiş verilerle elde ettiğimiz içgörüleri paylaşmak için Apache Superset üzerinde interaktif dashboard’lar geliştirdik. Bu sayede verinin sadece arka planda değil, karar verici seviyede de anlamlı hale gelmesini sağladık.

Neyi Öğrendik?

Bu bootcamp boyunca hem bireysel hem de takım çalışması açısından çok şey öğrendik. En önemlisi:

  • Modern veri altyapısının nasıl kurulduğunu,
  • Açık kaynak araçların birlikte nasıl entegre edildiğini,
  • Versiyon kontrolü, kod kalitesi ve iş akışı yönetimini,
  • Gerçek dünya problemlerine veriyle nasıl çözüm üretilebileceğini tecrübe ettik.

Kapanış

Bu uzun sürecin sonunda elimizde sadece çalışan bir sistem değil, aynı zamanda profesyonel hayatta karşılaşabileceğimiz birçok senaryoyu deneyimlediğimiz bir proje vardı. Eğer siz de veri mühendisliğine ilgi duyuyor, teoriden pratiğe geçmek istiyorsanız, bu tarz uygulamalı projelerle kendinizi test etmenizi kesinlikle öneririm.

Kaynaklar:

2

Bir yanıt yazın

Password Requirements:

  • At least 8 characters
  • At least 1 lowercase letter
  • At least 1 uppercase letter
  • At least 1 numerical number
  • At least 1 special character