ETL Ayıkla, Dönüştür, Yükle

Kardelen Erdem
Machine Learning Turkiye
3 min readMar 8, 2022

ETL kavramını ele almadan önce genel kavramsal çerçeveyi incelemek yapının işleyişini anlama açısından daha yararlı olabilir. Bu sebeple konuya temel kavramları açıklayarak başlayalım.

Günümüzde verinin ve veriden elde edilen bilginin ne kadar kıymetli olduğu konusunda çoğumuz hemfikiriz. Veriyi elde etmek için ise bazı araçlara ihtiyaç duyarız. Herhangi bir işletmede herhangi bir birimde daha sonra kullanabilmek için bilgiyi saklaması gerekir. Bu saklanan bilgiyi tüm günümüz kavramlarından sıyrılarak ele alalım. Henüz akıllı telefonlar çıkmadan çoğumuzun evinde fihrist defterleri bulunurdu. Bu defterlere kişi isimleri, adresleri ve telefon numaraları not alınırdı. Yani bilgi daha sonra erişilmek üzere belirli bir kaynakta saklanırdı. Günümüz teknoloji şartlarında eski bilgi saklama yöntemleri yetersiz kalmakla birlikte karmaşıklığada sebep olur. Bu sebeple bilgi günümüzde belirli tablolar aracılığıyla veri tabanlarında ya da farklı veri kaynaklarında saklanır. Tüm bilgilerin saklandığı bu kaynaklar parçalı ve dağınık yapıda bulunabilir hatta farklı yerlerden gelebilir. Tam bu aşamada kurum, kuruluş ya da işletmeler karmaşık ve anlamsız veriye değil bilgi içeren temiz veri ambarlarına ihtiyaç duyarlar.

Veri: 155, 1.60

Enformasyon: Boyu 1.60 cm, kilosu 155

Bilgi: Kişi vücut kitle indeksine göre aşırı kiloludur.

Örnek Veri Kaynakları; xml, txt dosyaları, ERP, CRM, dış kaynaklar vb.

Örnek Veri Tabanları; SQL veya NOSQL sunucuları

Veri Tabanı ve Veri Ambarı Arasındaki Yolculuk

Yukarıda temel olarak veri ambarı ve veri tabanı arasındaki farktan bahsettik aslında. İki kavram arasındaki en temel fark ise; veri tabanında istenilen ve istenilmeyen tüm bilgilerin tutulması, veri ambarında ise yalnızca işlenen ve istenilen bilgilerin tutulmasıdır. Bu temel farka bakıldığında ise veri tabanlarının farklı kaynaklardan beslendiğini, veri ambarının ise veri tabanından beslendiğini söyleriz.

Öyleyse veri tabanları sürekli kaynaklardan beslendiği için güncel kalıyor ancak veri ambarlarını, veri tabanına her yeni veri geldiğinde güncellemek gerekiyor. Yapılan güncellemenin ise eski veri temizleme ve dönüşüm işlemlerine tabii tutulması gerekiyor.

Kısacası ETL kullanarak farklı veri kaynaklarından gelen bilgileri çıkartıp (extract), dönüştürüp (transform) veri ambarlarına yükleyebiliyoruz (load).

ETL Süreçleri

  1. Extract (Veri Çıkarma)

Verinin her zaman aynı kaynakta tutulamayacağından yukarıda bahsetmiştik. ETL sürecinin ilk adımı verileri kaynaklardan doğru şekilde çıkarmaktır. Extract aşamasının temel amacı kaynaklardan farklı formatlarda gelen verinin dönüştürülmeden (transformation) önce uygun formatta hazırlanmasıdır. Veri ambarının her zaman güncel kalması için veri çıkarma işleminin düzenli aralıklarla yapılması gerekir. Bu şekilde kaynaklara eklenen veriler veri ambarına doğru olarak işlenerek güncel raporlar ve analizler elde edilebilir. Veri çıkarma işlemi veri temizleme (preprocessing) aşamasıyla devam eder. Bu aşamada yazım hataları, tarih hataları, eksik ve tekrarlı veriler düzeltilir ya da silinir.

2. Transformation (Dönüşüm)

Dönüşüm işleminde amaç farklı kaynaklardan gelen formatlanmış veriden enformasyona ulaşmaktır. Dönüşüm işlemlerinde satır ve sütun işlemleri gerçekleştirilebilir. Veri birleştirme ile farklı kaynaklardan gelen birbiriyle ilgili veriler birleştirilir, veri standardizasyonu yapılabilir, ya da karmaşık veri kümelerinden genel (özet) bilgiler içeren veri setleri oluşturulabilir.

Dönüşüm aşamasında yapılabilecek genel işlemler,

  • Özellik Çıkarımı
  • Tabloların Birleştirilmesi
  • Filtreleme İşlemleri
  • Aggregation (ortalama, min, maks, gruplama vb.) İşlemleri
  • Aykırı Gözlem İşlemleri

3. Load (Veri Yükleme)

Son aşamaya gelindiğinde veriler kaynaktan çekilmiş, temizlenmiş, raporlamaya — analize hazır hale gelmiştir ve veri ambarına aktarımı yapılır.

ETL Araçları

ETL araçları 4 farklı kategoriye ayrılır bunlar,

  1. Kurumsal Yazılım ETL Araçları
  • IBM DataStage
  • Oracle Data Integrator
  • Informatica PowerCenter
  • SAS Data Management

2. Cloud Tabanlı ETL Araçları

  • AWS Glue
  • Azure Data Factory
  • Google Cloud Dataflow
  • Hebo Data
  • Skyvia
  • Xplenty
  • Talend
  • Informatica PowerCenter
  • Fivetran
  • Stitch Data

3. Açık Kaynak ETL Araçları

  • Talend Open Studio
  • Pentaho Data Integration
  • Singer
  • Hadoop

4. Özel ETL Araçları

Gerekli geliştirme kaynaklarına sahip şirketler kullandıkları programlama dillerini kullanarak kendi ETL araçlarını yazabilirler. Bu amaçla kullanılan en popüler diller SQL, Python ve Java’dır.

Umarım yazı sizler için bilgilendirici olmuştur. Yazının devamında açık kaynaklı ETL araçlarından Pentaho Data Integration nasıl kullanılır adım adım açıklamayı hedefliyorum. Takip etmek isterseniz web sitemi ziyaret edebilirsiniz.

İyi Çalışmalar :)

--

--