Veri Bilimi Okulu

FastAPI, Docker ve Terraform ile ML Model Deployment

Loading

Yapay öğrenme, veri bilimi ve makine öğrenmesi son yılların en popüler kavramlarından. Model deployment öncesinde bir çok insan bu alanda, özellikle model geliştirme sürecinde bilgi sahibi olmak ve yetenek kazanmak için çabalıyor. Bu kadar ilgi olmasına rağmen ne yazık ki model geliştirmek ve iyi bir başarı skoru elde etmekle sürecin sona erdiği gibi bir eksik […]

ML Modelini Object Storage’a Depolama

Loading

Merhaba. Bu yazımızda ml modellerinin object sotrage’a nasıl kaydedileceğini ve gerektiğinde buradan okunarak nasıl kullanılacağını MinIO örneği üzerinden öğreneceğiz. Model scikit-learn kütüphanesiyle geliştirilmiş bir pipeline model olacaktır. Niçin modelleri object storage’a kaydetmek iyidir? Geliştirilen modeli lokal diske kaydettiğimizde ona sadece biz erişebiliriz. Aslında geliştirilen her model bir gün canlı ortamda çalışma hayaline sahiptir, ancak bir […]

Apache Flink ile Kafka’dan Mesaj Okuma (Scala)

Loading

Herkese merhaba. Apache Flink gerçek zamanlı veri işleme konusunda oldukça başarılı ve popüler bir araç. Böyle olmasına rağmen ilginç bir şekilde Flink öğrenmek için yeterli kaynak ve güncel örnekler bulmak zor. Mesela benzer bir araç olan Apache Spark ile tonlarca kitap, kurs, makale ve örnek varken Flink’te bunun onda biri bile yok. Daha önce Apache […]

AWS Lambda Function içinde Pandas Kullanmak

Loading

Selamlar. Bu yazımızda AWS Lambda function içinde nasıl pandas kullanabiliriz onu öğreneceğiz. Python pandas veri manipülasyonunda en yaygın kullanılan paketlerden birisi. Kendi bilgisayarımızda, notebook sunucusunda, Google Colab’da ve başka bir çok yerde kullanıyoruz. Kullanmak için de çok zahmet çekmiyoruz. Ya kullanacağımız ortamda çoktan yüklü oluyor ya da pip install pandas deyip kurup geçiyoruz. AWS pazar […]

Zookeeper-less Kafka Cluster Kurulumu

Loading

Bu yazımızda Zookeeper olmadan Docker ile Kafka cluster kurulumu yapacağız ve böylelikle 3-node Zookeeper-less Kafka’yı deneme şansı bulacağız. Bildiğimiz gibi Kafka yakın zamanda Zookeeper bağımlılığına tamamen son verdi (KIP-500 Kafka 2.8.0). Her ne kadar mevcut Kafka Cluster’lar Zookeeper kullanıyor olsa da yavaş yavaş bu kullanım azalacak ve gelecekte Zookeeper-less Kafka kullanımı yaygınlaşacak. Zookeeper ne iş […]

Spark SQL Window Functions

Loading

Window functions SQL dünyasında yaygın olarak bilinen fonksiyonlar. SQL’de kullandığımız bir çok fonksiyonu Spark ile de kullanabiliyoruz. Bu yazımızda Spark Scala ve SQL söz dizimleriyle window functions örnekleri yapacağız. Window functions nedir, ne işe yarar? Window fonksiyonlar, window olarak adlandırılan bir satır grubu üzerinde çalışır ve satır grubuna dayalı olarak her satır için bir dönüş […]

Nasıl Data Engineer Olunur?

Loading

Data Engineer, veriyi talep edilen yer ve zamanda istenen format ve doğrulukta hazır bulunduran ve bunun için gerekli sistem ve otomasyonu inşa eden ve bunun idamesini sağlayan bilişim çalışanıdır.  Bu yazımızda data engineer kimdir? Data engineer olmak istiyorsam ne yapmalıyım? İşveren olarak benim bir data engineer ihtiyacım var mı? Varsa kimi almalıyım? Data engineer çalışanlarımın […]

MLOps Nedir? Yeni Başlayanlar için Bir Rehber

Loading

Merhabalar. Bu yazımızda MLOps nedir? sorusunun cevabını arayacağız. MLOps’un açılımı Machine Learning Operations‘dır, odak noktası ise yapay öğrenme modellerinin canlı ortamlarda çalıştırılması sürecidir. MLOps, yazılımların canlı ortamlarda dağıtılması süreçlerine odaklanan abisi DevOps’a benzerlik gösterir ancak kendine özgü farklılıklara sahiptir. Bu farklılıklara ilerleyen kısımlarda değineceğiz. Neden MLOps gibi birşeye ihtiyaç var? Yapay öğrenme, veri bilimi ve […]

Pandas: Veri Türleri Üzerindeki Perdeyi Kaldırın

Loading

Merhabalar bu yazımızda: “Pandas dataframe veri türlerini nasıl görebiliriz?” sorusunun cevabını iki farklı yöntemi mukayese ederek öğreneceğiz. Aslında bir nevi pandas dataframe şeması üzerinde keşif yapacağız. “Okudum veriyi oldu bitti” deyip dümdüz, tam gaz ilerlemeyin. İleride başınıza neler gelebilir dikkat edin. Aslında dataframe nesnesinin dtypes özelliği var oradan çok kolay veri türlerini öğrenebiliriz niçin böyle […]

DBeaver Community Edition Cassandra JDBC Driver Ekleme

Loading

Merhabalar. Hepimiz SQL kullanmak için farklı editörler kullanıyoruz. Eğer Cassandra CQL için ücretsiz editör sıkıntısı yaşıyorsanız doğru adrestesiniz. Benim editör tercihim DBeaver Community Sürümü (Edition). Bu sürümde MySQL, PostgreSQL, Hive, Spark Thrift, SQLlite, Oracle ve başka bir çok veri tabanı bağlantısı hazır geliyor. Ancak Canssandra ve CQL kullanmak istiyorsanız maalesef bu hazırda yok. Sadece Cassandra […]

Pandas Dataframe’i Veri Tabanına Yazmanın En Kötü Yolu

Loading

Pandas dataframe veri bilimci ve mühendisleri tarafından çok yaygın kullanılan bir araç. Veriyi şekilden şekile sokmak için birebir. Veriyi istediğimiz hale getirdikten sonra çoğu zaman bir yere yazıp saklamak isteriz. Eğer saklanacak yer bir veri tabanı olacak ise bunun bir kaç farklı yöntemi var. Bunlardan birisi de pandas dataframe to_sql metodu. to_csv’ye çok alışığız, bu […]

MySQL Upsert İçin Alternatif Bir Yaklaşım

Loading

İş ihtiyacını karşılayacak şekilde temiz, doğru, güvenilir, istenen formatta, gıcır gıcır veri tabanında bekleyen bir veriyi kim sevmez ki 🙂 Mesela Mysql’de. Elbette herkes sever ancak bunu sağlayacak olan sağlam işleyen veri akış hatlarıdır (data pipelines). Veri akış hatları bilgi sistemi kullanan küçük veya büyük her örgüt için olmazsa olmaz bir zorunluluk haline geldi. Artık […]

Spark on Kubernetes

Loading

17 Ekim 2024’de güncellendi. Merhabalar. Bu yazımızda bir Spark uygulamasını Kubernetes cluster (Minikube) üzerinde çalıştıracağız, yaygın adıyla Spark on Kubernetes. Bildiğimiz gibi Spark 2.3 sürümüne kadar sadece 3 cluster yöneticisi vardı: Hadoop YARN, Apache Mesos ve Spark Standalone. Sürüm 2.3 ile beraber Kubernetes de bunların arasına katıldı. Şimdiye kadar Spark kullanımında hakim cluster yöneticisi YARN […]

Apache Spark AWS S3 Veri Kaynağı

Loading

Merhabalar. Bu yazımızda Apache Spark AWS S3 entegrasyonu yapacağız. Bu kapsamda bir Spark  dataframe’i AWS S3’e nasıl yazacağımızı ve S3’den Spark ile nasıl veri okuyacağımızı öğreneceğiz. Bu işi lokal makinemizdeki Spark ile yapacağız. Peki bunun yazı haline gelecek neyi var diye sorarsanız, ben de “Biraz gıcık bir iş, ben çektim siz çekmeyin” derim. Aslında birkaç […]

Spark ve Delta Lake ile Büyük Veri Slowly Changing Dimension Type2

Loading

Bu yazımızda veri ambarı dünyasında boyut (dimension) tablolarında sıklıkla kullanılan bir güncelleme yöntemi olan slowly changing dimension örneğini Apache Spark ve Delta Lake ile yapacağız. Veri ambarında gerçekleşen işlemler ve bu işlemlere ait tanım bilgileri farklı tablolarda tutulur. Hepimiz e-ticaret sitelerinden alışveriş yapıyoruz. Örneğin bir telefon kılıfı aldık. Bu telefon kılıfı bir üründür ve tanımı […]

Spark İşini Cep Telefonundan Başlatmak: Apache Livy Server

Loading

Başlık çarpıcı geldi değil mi? İnanmazsınız ancak doğru. Spark işlerini genelde client kütüphanelerinin kurulu olduğu makinelerden, yani Spark’ın Hadoop’un nerede olduğundan haberdar ve konfigürasyonları yapılmış makinelerden, başlatırız. Bu durum bizim spark işini başlatma (spark-submit) konusunda client kütüphanelerine bağımlı kılar. İşte bu kısıttan kurtulmak için “Spark işlerini her yerden başlat (Submit Jobs from Anywhere)” sloganıyla bir […]

Apache Flink HDFS: Okuma ve Yazma

Loading

Merhabalar. Bu yazımızda Apache Flink Datastream API ile HDFS’ten veri okuma ve tekrar HDFS’e yazma ile ilgili basit bir örnek yapacağız. Bu yazıyı yazmaya beni motive eden sebep şu oldu: Spark ile HDFS’e yazmaya alışkınız artık çocuk oyuncağı gibi geliyor. Apache Flink HDFS ne kadar zor olabilir ki diye düşündüm ve kendim bir deneyeyim dedim. […]

Spark Structured Streaming: Birden Fazla Kafka Topic’e Produce Etmek

Loading

Merhabalar. Apache Spark Structured Streaming yaygın kullanılan akan veri işleme platformlarından birisi. Elbette akan verinin işlendiği bir ekosistemde Apache Kafka da bir şekilde yerini alıyor. Spark+Kafka bu tür tasarımlar için iyi bir ikili. Bu yazımızda Spark Structured Streaming ile işlenen bir verinin üretilen çıktıya bağlı olarak birden fazla topic’e gönderimine dair bir örnek yapacağız.   […]

MLflow: Makine Öğrenmesi Hayat Döngüsü Platformu

Loading

Merhabalar bu yazımızda MLflow’u tanımaya çalışacağız. MLflow nedir sorusuna “MLflow, açık kaynaklı bir makine öğrenmesi hayat döngüsü platformudur.” şeklinde cevap verebiliriz. Makine öğrenmesi çalışmalarında; Bir çok farklı veri seti kullanılır. Uğraştırıcı veri hazırlık süreci vardır. Farklı bir çok algoritma denenir. Belirlenen bir başarı metriğini en iyi elde eden algoritma ve hiper parametreler aranır. Bir model […]

Apache Flink FileStream Window Aggregation

Loading

Merhabalar. Bu yazımızda Apache Flink ile FileStream kaynağından veri okuyacağız ve okuduğumuz bu veri üzerinde zaman pencereli (window) aggregation yaparak ekrana yazdıracağız. Çalışmamda kullandığım ortam bilgileri şu şekildedir: Ubuntu, Intellij IDEA (maven projesi), Java8, Scala 2.11, Flink 1.9.2, github projesine buradan erişebilirsiniz. Uygulamamızda iris veri setini (data-generator input klasörü içinde mevcuttur) data-generator ile bir dizine […]

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