ETL nedir ve verilerin yüklenmesi, dönüştürülmesi ve boşaltılması neden tek bir işlemde gerçekleşir | robot_dreams
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
ETL Nedir?

ETL Nedir?

Verilerin yüklenmesi, dönüştürülmesi ve boşaltılması neden tek bir işlemde sağlanıyor?

ETL yani, Ayıkla, Dönüştür, Yükle (Extract, Transform, Load) veri gönderen ve alan kaynaklar arasında bilgi aktarımının düzenlenmesi ve ayarlanmasıdır. Büyük Veri Danışmanı ve Veri Mühendisliği Kursu eğitmeni Anton Bondar ile birlikte ETL sürecinin nasıl çalıştığını gelin hep beraber öğrenelim.

Ana aşamalar

ETL, verilerle çalışmada 3 aşamaya ayrılır. Bunlardan ilki, genellikle bir programa göre birden fazla kaynaktan veri yükleyen “Ayıkla” (Extract) işlemidir. Bu aşama iş mantığının gerekliliklerine ve bilgi miktarına bağlıdır. Verilerin indirme hızını, miktarını ve güncelleme sıklığını hesaba katmanız gerekir. Kısa sürede büyük miktarlarda bilginin alınmasıyla değiştirilen uzun kesinti süreleri mümkündür. Bu gibi durumlarda, yalnızca iş mantığına uygun verileri yükleyebilirsiniz. Örneğin, 100$ üzerindeki alışverişler hakkında bilgiye ihtiyacınız var diyelim. Daha küçük çeki olan kullanıcılar hedef kitleniz değildir. 

Toplanan veriler hata (örn. girdi) veya eksiklikler içerebilir. Bilgi kaynakları ilişkisel veya ilişkisel olmayan veritabanlarında, Excel dosyalarında, JSON'da olabilir. Ek olarak, örneğin bankalararası piyasadaki döviz kurları gibi üçüncü taraf veriler de kullanılabilir.

Verilerle etkileşim, kaynakları ve uygulamayı yavaşlatmamalıdır. Veri indirmeniz gerektiğinde, belirli bir süre için yeni bilgileri kontrol edebilirsiniz. Tablolar, alanların oluşturulması ve güncellenmesi hakkında bilgi içerebilir; bu, yalnızca değişen verileri yüklemeniz gerektiği anlamına gelir.

Verilerin analiz edilebilmesi için ortak bir formata getirilmesi gerekmektedir. Bu sorun, ikinci aşama olan Transform ile çözülür. Bu sırada veriler temizlenir, zenginleştirilir ve depoya taşınmak üzere dönüştürülür. Satırların sırası değiştirilir, alakasız sütunlar değiştirilir ve yinelenenler kaldırılır. Ayrıca kaynak sistemlerden anahtarları değiştirebilir ve boş değerlerin üzerine yazabilirsiniz. Onu yapmadan önce, yüklenen verilerin doğrulanması gerekir. Nerede hata olabileceğini ve nerede değişiklik yapılması gerektiğini nasıl belirleyeceğinize karar verirseniz eğer, bunları doğrulama komut dosyalarını kullanılarak uygulayabilirsiniz.

Ardından, mevcut verileri bozmadan,  her şeyi aynı formata getirmek için değiştirilen veriler depoya entegre edilmelidir. Ham veriler, yüklemeye geçmeden önce birkaç aşamadan geçebilir. İşlenen tüm verileri depoya yükleyebilir veya değiştirilen verilerin üzerine yazabilirsiniz. Eksik veriler ve hata içerenler ayıklanabilir. Hataların nedenini anlamak için verilerin yeniden işlenmesi gerekir.

Anton: “Modern mimarilerde ise (Data Lake ve Lakehouse) diğer sistemlerle entegrasyon basitleştirilmiştir. Son birkaç yılda, Transform görevlerinin çoğunu Extract'tan aldı ve daha karmaşık hale geldi. Artık Transform yönetimine daha fazla önem verilmeli.”

ETL işletmeye neler kazandırabilir?

ETL süreçlerinin görevi, verileri hızlı bir şekilde almak, işlemek, birleştirmek ve depoya aktarmaktır. Verilerin nasıl ve hangi aşamada dönüştürüldüğünü anlamanıza yardımcı olan araçlar vardır.

Anton: "Apache Airflow'u öneririm çünkü:

  • Hiçbir şey kolay değildir. Süreçlerin tanımı, izleme, bildirimler, şifre yönetimi sadece birer Python kodudur.
  • Bu araç sizin için hiçbir şeyi değiştirmez veya mantığınıza katkıda bulunmaz. Diğer araçlar her zaman bu şekilde çalışmayabilir. Örneğin, Microsoft, SSIS verilerini bir tabloya yüklemeden önce kendisi doğrular. Bu yararlıdır olabilir ancak aynı zamanda işlemi de uzatılabilir. 
  • İyi mühendislik, uygulamaları teşvik eder. Mevcut işlevselliği yeniden kullanır. Mühendisler bir pipeline yazdıklarında tek bir görev için değil, tüm görev sınıfı için yazarlar. Veritabanından bir tabloyu kaldırmak, bir API'den veri almak, Amazon S3'ten bir dosya çekmek her seferinde yeniden yapılması gerekmeyen aynı görevlerdir. Bu durum Python kullanılarak Airflow'da mükemmel bir şekilde genelleştirilmiştir.

Apache Airflow sağlam temellere sahip bir oluşturucudur. Bir şey uymuyorsa eğer onu her zaman değiştirebilirsiniz."

ETL araçlarında, işletmelerin değişiklikleri karşılaştırmasını ve kaynak verilerini analiz etmesini, hataları bulmasını ve ne zaman meydana geldiklerini anlamasını kolaylaştıran olayları izleme ve günlüğe kaydetme sistemleri vardır.

Anton: "Şirketteki veri akışlarını düzenlemek ve aynı zamanda data pipelines’te tekdüzelik de tam teşekküllü izleme sağlamak için ETL lazımdır. ETL sistemleri, yeni kaynaklarla entegrasyon maliyetini azaltır ve mevcut kaynakları koruma süresini azaltır. Bu da veri kalitesini arttırır”

ETL'yi neler etkiler?

ETL süreçlerinin gelişimi hem verilerden hem de iş mantığı gereksinimlerinden etkilenir. Veri miktarının artacağını, sistemin ölçeklenebilir ve hataya dayanıklı olması gerektiğini hemen hesaba katmalısınız. Örneğin, en yüksek yüklerde kararlı bir şekilde çalışmaya devam edebilirsiniz. Bazı kaynakların ve sunucuların uzaklığı nedeniyle verilerin yüklenmesi daha uzun sürebilir. Ayrıca, verilerin işletme için farklı derecelerde önemi olabilir. Örneğin, bazen kullanıcı etkinliğinin toplam süresi, yetkilendirme sayısından daha önemli olabilir.

Her zaman yeni kaynaklar ortaya çıkabilir bu sebeple sistem mümkün olduğu kadar çok veri türünü ve biçimini işlemelidir. Çeşitli biçimler hatalara ve arızalara yol açabilir. Bu durum ise sistemin bir çökmeden sonra hızla toparlanması gerektiği anlamına gelir. Ek olarak sistem, mevcut tüm verilerin zorla silinmesini ve üzerine yazılmasını gerektirebilir. Unutulmaması gerekir ki bu durum yalnızca az miktarda depolama alanı ve hızla geçerliliğini yitiren verilerle olur. Örneğin, etkin olmayan eski kullanıcıların geçmişini tutmanın bir anlamı yoktur.

ETL, ham verilerin alınması ile önceden işlenmiş verilerin yüklenmesi arasında bir zaman gecikmesi oluşturur. Bir işletmenin finansal analitikte olduğu gibi doğru ve gerçek zamanlı veriler elde etmesi önemlidir.

Anton: "Gerçek zamanlı analitik için yüksek talebe rağmen, piyasada henüz ideal bir ETL aracı yoktur. Gelecekte, akış verileri işleme yönünde geliştirilecektir.”

Daha fazla makale
Kod editörleri ve IDE araçlarıyla Python ile kodlama deneyiminizi zenginleştirin.
Programlama becerilerinizi iyileştirmek ve birçok programlama dilinde ustalaşmak için en iyi pratik yapma kaynaklarını keşfedin.