Giriş
Veri her yerde. Son yıllarda, bağlı cihazların sayısının artması ve kullanım alanlarının genişlemesiyle birlikte, dünya artık geleneksel yöntemlerle yönetilemeyecek kadar büyük miktarda veri üretiyor.
Statista'ya göre, 2021 itibarıyla internete bağlı 23,8 milyar cihaz bulunuyor ve bunların %58'i IoT cihazları (akıllı ev cihazları, bağlantılı otonom araçlar, endüstriyel cihazlar vb.), kalan %42'si ise IoT dışı cihazlar (dizüstü bilgisayarlar, akıllı telefonlar vb.). Bu da günümüzde verinin pek çok farklı kaynaktan gelebileceği anlamına geliyor. Bunlardan bazıları şunlardır:
- Kullanıcı etkinlikleri: Her kullanıcı eylemi veri üretir ve kullandığımız mobil uygulamalarda nereye ve ne sıklıkla dokunduğumuzu gösteren veriler bile değerlidir. Bu tür bilgileri içeren her veri parçasının saklanması ve uygulamaların veri merkezlerine dağıtılması gerekir.
- “Nesnelerin İnterneti” cihazları: Bu cihazlar, pek çok farklı lokasyonda üretilen sensör verileri gibi çok büyük miktarda bilgi üretir. Tüm bu verilerin alınması ve ileri analiz için bir veri havuzuna gönderilmesi gerekir.
- Program günlükleri (loglar): Günümüzün bilgisayar uygulamaları birçok bileşenden oluşur ve bu bileşenlerin tamamı program günlükleri üretir. Bu günlükler ileri analiz için bir veri mühendisliği hattına (pipeline) gönderilir.
Dünyanın ürettiği farklı yapısal verilerin, yazılım mimarisindeki diğer bileşenlere iletilmesi veya iş analistleri ve veri bilimcileri tarafından görselleştirilip yorumlanması gerekir. Ancak bu teslimat basit bir iş değildir. Verinin nasıl iletileceğine dair bazı kritik gereksinimler vardır:
- Veri standartlaştırılmış bir yapıda teslim edilmelidir
- Veri herhangi bir çakışma içermemelidir
- Gerekirse veri yinelenmeleri kaldırılmalıdır
- Veri güvenilir olmalıdır
- Veri teslimi en az gecikmeyle yapılmalıdır
Bu nedenle, bu bilgilerin iletimi karmaşık bir süreçtir ve doğru şekilde gerçekleştirilmezse özellikle orta ve büyük ölçekli şirketler için çok sorun yaratabilir. İşte veri mühendisleri bu noktada devreye girer.
Bu yazıda veri mühendisliğinin temellerini öğreneceksiniz. Bunlar:
- Veri mühendisliğinin ne olduğu ve sağlam bir veri hattının neden gerekli olduğu
- Veri bilimi ile veri mühendisliği arasındaki fark
- Veri mühendisliğinin neden giderek daha popüler hale geldiği
- İyi bir veri mühendisinin becerileri
- DataCamp'in veri mühendisi olmanıza nasıl yardımcı olabileceği
Bir veri mühendisinin sorumlulukları nelerdir?
Basitçe söylemek gerekirse, veri mühendisleri:
- Veriyi veri bilimciler ve iş zekâsı mühendisleri (ya da veriyle çalışan herkes) için kolay erişilebilir ve kullanılabilir kılmayı amaçlar
- Şirketlerin büyük veri sistem mimarisini optimize eder
- Veritabanlarını tasarlar ve yapılandırır
- İş zekâsı mühendisleri, veri bilimcileri ve veri analistlerinden oluşan ekiplerle işbirliği yapar
- Veriyi keşfeder ve dönüştürür Tüm bu görevleri yerine getirebilmek için veri mühendislerinin öncelikle ETL hatlarını kurmaları gerekir.
Tam yazımızda bir veri mühendisi ne yapar hakkında daha fazla bilgi edinebilirsiniz.
ETL hatları (pipelines)
ETL hatları, düzenli zaman aralıklarında karmaşık verileri alır ve veriyi kullanılabilir bir biçimde depolamak amacıyla işler. Bu hatları kurmak ve sürdürmek veri mühendislerinin sorumluluğundadır.
ETL hatlarının 3 tür aşaması vardır:
- Extract Veri kaynakları tarafından oluşturulan çok sayıda veri, farklı formatlarda toplanır.
- Transform Veri farklı formatlarda ve tutarsız kaynaklardan geldiğinden, mümkün olduğunca standartlaşması için işlenir. Bu, sonraki adımlarda verinin keşfedilebilirliğini ve kullanılabilirliğini artırır.
- Load Veri keşfedilebilir ve kullanılabilir bir formata geldiğinde, genellikle veri ambarlarında saklanır. Bu, verinin ileri analiz için her zaman erişilebilir olmasını sağlar.
Veri ambarları
Veri ambarları, standartlaştırılmış verinin saklandığı yerlerdir. Büyük hacimli veriyi filtreleme ve okuma için optimize edilmiştir. Modern veri ambarlarında hem yapısal hem de yapısal olmayan veriler saklanabilir; çünkü fotoğraf ve video gibi kategorize edilemeyen verilerin de depolanması önemlidir.
Veri mühendisliği ve veri bilimi
Bir veri mühendisi ile bir veri bilimcisinin rollerindeki farklar önemlidir. Bir yandan, veri bilimciler şirketlerde veri odaklı karar alma süreçlerine katkıda bulundukları için önemli bir role sahiptir. Ancak, veri bilimcilerin başarısı ellerindeki verinin kalitesiyle sınırlıdır.
Öte yandan, veri mühendisleri, veriyi veri bilimcilerine düzenli ve tutarlı bir şekilde sağlayan sistemleri tasarlayan kişilerdir. Veri mühendisleri bilgiyi onlar için erişilebilir hale getirdikten sonra, veri bilimciler veri mühendislerinin sağladığı formatı kullanarak verideki örüntüleri bulup sonuçlara ulaşmaya çalışırlar.
Veri mühendisleri ve veri bilimciler açıkça birbirleriyle yakın çalışırlar. Bunu bir futbol maçına benzetebiliriz. Futbolda gol fırsatlarını yaratacak stratejileri geliştiren ve oyuncuları belirli pozisyonlara yerleştiren kişi teknik direktördür. Bu bağlamda teknik direktör veri mühendisidir; topu veri, gol atan oyuncuyu ise veri bilimci olarak düşünebiliriz. Takımın geri kalanı ise altyapıdır.
Veri mühendisliği neden popülerlik kazandı?
Burning Glass Nova platformunda yapılan araştırmaya göre, 2019'da "veri mühendisi" için iş ilanları %88,3 arttı. Bu araştırmaya göre, veri mühendislerine olan talep 2016'dan beri yükselişte. Bir diğer ilginç bilgi, veri mühendislerine yönelik iş ilanı sayısının veri bilimcilerine yönelik ilanların neredeyse 5 katı olması. Veri mühendislerinin maaşları da veri bilimcilerinkinden %20-30 daha yüksek.
Yukarıda belirtildiği gibi, veri bilimciler veri işleme zincirinin son halkasıdır. İşlerini yapabilmeleri için verinin bir veri mühendisi tarafından işlenmiş olması gerekir. Veri kaynaklarının ve veri türlerinin çoğalmasıyla veri mühendisine duyulan ihtiyaç artar. Bu nedenle şirketler son dönemde verinin çıkarımı ve dağıtımına daha fazla yatırım yapmaya başladı.
Şekil 4.1'de, bir piramit grafiği veri biliminin ihtiyaçlar hiyerarşisini gösterir. Bu hiyerarşide, veri mühendislerine atanan görevler piramidin tabanında yer alır; bu da veri mühendislerinin şirketler için ne kadar kritik olduğunu açıklar.
Figure 4.1: Veri biliminin ihtiyaçlar hiyerarşisi.Bir veri mühendisinin becerileri nelerdir?
Veri mühendislerinin becerileri genel olarak, Şekil 5.1'de gösterildiği gibi, yazılım mühendisleri ve veri bilimcilerinin becerileriyle iç içedir.
Figure 5.1: Veri rolleri ve beceri setleriVeri mühendisinin rolü yazılım mühendisine mi, yoksa veri bilimcisine mi daha yakındır?
Bir grup veri mühendisinin önceki meslekleri Şekil 5.2'de gösterilmektedir. Buna göre, %40'tan fazlasının yazılım mühendisliği geçmişi vardır. Bu, yalnızca veri mühendisliği ile yazılım mühendisliğinin ilk düşündüğümüzden çok daha yakın olduğunu göstermekle kalmaz, aynı zamanda günümüzde yazılım mühendislerinin diğer alanlara kıyasla veri mühendisliğine geçiş yapma olasılığının çok daha yüksek olduğunu da ortaya koyar.
Figure 5.2: Önceki role göre veri mühendisleri (ilk 10).DataCamp olarak iyi bir veri mühendisinin şu becerilere sahip olması gerektiğine inanıyoruz:
- Yazılım mühendisliği geçmişi Veri mühendisleri; nesne yönelimli programlama, veri yapıları ve algoritmalar bilgileriyle veri mühendisliği zorluklarına yaklaşmaları gerektiğinden yazılım mühendisliği geçmişine sahip olmalıdır. Veri mühendisleri Python, Scala veya Java konusunda deneyimli olmalıdır.
- Araçlar Veri mühendisleri Airflow, Apache veya Kafka gibi veri mühendisliği araçlarını kullanmada rahat olmalıdır.
- Veritabanı teknolojileri Bir veri mühendisi, birden fazla türde veritabanı hakkında bilgi sahibi olmalıdır.
- Bulut teknolojileri Veri mühendisleri Amazon Web Services, Google Cloud Platform ve Microsoft Azure gibi birden çok bulut platformunu kullanmada rahat olmalıdır. Sistemlerin veri akışı kısmının otomasyonundan sorumlu oldukları için bulut mimarisi ve DevOps araçları konusunda da deneyime sahip olmaları gerekir.
Veri mühendisliği nasıl öğrenilir
Veri mühendisliği alanında kendinizi geliştirmek istiyorsanız, aşağıdaki önerilen DataCamp kurslarını tamamlayarak başlayabilirsiniz. Bu dersleri ve projeleri tamamlayarak, veri mühendisliği alanındaki staj veya iş pozisyonları için muhtemelen daha uygun bir aday olacaksınız.
- Python'a Giriş
- Orta Düzey Python
- SQL ile İlişkisel Veritabanlarına Giriş
- Scala'ya Giriş
- Veri Mühendisliğine Giriş
- Python ile Airflow'a Giriş
- AWS Bulut Kavramları
- Londra'nın Ulaşım Ağı'nı Keşfetme (Snowflake, Redshift, BigQuery) Projeleri
- Python ile Veri Mühendisliği Hatları Oluşturma
- NoSQL Kavramları
- Python ile ETL
- Akış (Streaming) Kavramları
- AWS Kinesis ve Lambda ile Akan Veri
Ek olarak, Veri Mühendisi Sertifikamız sektör tarafından tanınır ve becerilerinizi işverenlere kanıtlamanızı sağlar.
Bu kariyer yoluyla ilgileniyorsanız, ayrı yazımızda nasıl veri mühendisi olunacağını öğrenebilirsiniz.
