Çözümlerimiz Müşterilerimiz İletişim EN

Çekirdekten Yetişenler Programı

Göreviniz bu sayfada!


Veri Mühendisi “çekirdekten yetişen” olmak istiyorsanız, sıradaki aşamada size verilecek görevi yerine getirmeniz gerekiyor.


GÖREV GEREKSİNİMLERİ

  • Docker ile Airflow ve MySQL database ayağa kaldırın.
  • country_currency.json ve country_name.json adreslerindeki verileri inceleyin. MySQL init script’i ile bir database üzerinde iki tablo oluşturun. Bu tablolardan biri “country” isminde diğeri ise “currency” isminde olmalıdır ve içleri boş olmalıdır. Tabloların şemaları verilen json dosyasındaki veri tipleri ile uyumlu olmalıdır.
  • Airflow’da “country” isminde her sabah saat 10.00’da çalışacak şekilde bir DAG oluşturun. DAG için yazacağınız python scriptinde MySQL database bağlantılarını yapın ve DAG içerisine 4 adet task oluşturun:
    • Birinci task: DAG’in çalışmaya başladığını belirten bir log basmalı.
    • İkinci task: country_name.json dosyasını verilen adresten okumalı ve bir değişkene atamalı.
    • Üçüncü task: değişkene atanan json dosyasını, MySQL database’inde oluşturulan ilgili tabloya satır satır yazılması için uygun hale getirmeli ve insert işlemlerini gerçekleştirmeli.
    • Dördüncü task: DAG’in çalışmasını tamamladığını belirten bir log basmalı.
  • Airflow’da “currency” isminde her sabah saat 10.05’de çalışacak şekilde bir DAG oluşturun. DAG için yazacağınız python scriptinde MySQL database bağlantılarını yapın ve DAG içerisine 4 adet task oluşturun:
    • Birinci task: DAG’in çalışmaya başladığını belirten bir log basmalı.
    • İkinci task: country_currency.json dosyasını verilen adresten okumalı ve bir değişkene atamalı.
    • Üçüncü task: değişkene atanan json dosyasını, MySQL database’inde oluşturulan ilgili tabloya satır satır yazılması için uygun hale getirmeli ve insert işlemlerini gerçekleştirmeli.
    • Dördüncü task: DAG’in çalışmasını tamamladığını belirten bir log basmalı.
  • Oluşturduğunuz diğer DAG’lerden çalışma saati biraz daha ilerde olan “data_merge” adında bir DAG oluşturun. Bu DAG içerisine 3 tane task oluşturun:
    • Birinci task: DAG’in çalışmaya başladığını belirten bir log basmalı.
    • İkinci task: oluşturduğunuz MySQL database için bir SQL sorgusu çalıştırmalı. Bu sql sorgusu MySQL database üzerinde oluşturulan “country” ve “currency” tablolarını merge etmeli ve “data_merge” adında bir tabloya veriyi yazmalıdır. Yazma işleminden önce tablo içerisindeki veriler boşaltılmalıdır. (“data_merge tablosu önceden MySQL üzerinde create edilebilir ve kolonların type bilgileri de öncesinde oluşturduğunuz “currency” ve “country” tablolarının kolon type bilgilerinden yola çıkarak verilmelidir.)
    • Üçüncü task: DAG’in çalışmasını tamamladığını belirten bir log basmalı.
  • MySQL database ve Airflow servisleri için kullanıcı ve parola bilgileri kartaca olarak verilmelidir.

DEĞERLENDİRME

  • “docker-compose up” komutu çalıştırıldıktan sonra Airflow ve MySQL database’in ayağa kalkması, Airflow’a localhost:8080 MySQL’e localhost:3306 portlarından erişilebilir olması beklenmektedir.
  • Airflow’a kartaca kullanıcı bilgileri ile login olunduktan sonra istenen DAG ve taskların kontrolü gerçekleştirilecektir.
  • DAG’ler sırası ile tetiklenerek çalıştırılacak ve loglarda istenilen bilgilerin olması beklenecek.
  • DAG’ler çalışması bittikten sonra MySQL DB üzerinde tablo içeriği incelenecek ve verilerin doğruluğu kontrol edilecektir.

NOTLAR

  • Görevdeki tüm gereksinimleri yerine getiremediyseniz bile, moralinizi bozmayın ve tamamladığınız kadarını bizimle mutlaka 2 Nisan 2023 tarihine kadar paylaşın.
  • Uygulamaların ayağa kalkması için gereken bütün kod ve yapılandırma dosyaları GitHub, GitLab, Bitbucket gibi erişime açık bir repo’ya gönderilerek, bağlantı adresi insankaynaklari@kartaca.com‘a iletilmelidir.
  • Repo üzerinden paylaşım sağlayamıyorsanız, bize indirilebilir dosyalara ulaşmamız için bir bağlantı iletin.

Başarılar!