ETL ve ELT Nedir? Veri Ambarı ve Veri Gölü Farkı
ETL ile ELT'nin nasıl çalıştığını, veri ambarı ile veri gölü arasındaki farkları, lakehouse'u, CDC'yi, veri kalitesini ve kişisel veriyi anlattık.

Kısa cevap: ETL (Extract, Transform, Load), farklı kaynaklardaki veriyi çıkaran, iş kurallarına göre dönüştüren ve tek bir hedefe, çoğu zaman bir veri ambarına yükleyen veri entegrasyonu sürecidir. ELT'de sıra değişir: veri hedefe ham hâliyle yüklenir, dönüşümü hedef sistemin kendi işlem gücü yapar. Veri ambarı, analiz ve raporlama için tasarlanmış, geçmiş veriyi tutan ve şemayı veri yazılırken uygulayan bir veritabanıdır. Veri gölü ise her türlü veriyi ham hâliyle saklar, şemayı okurken uygular. Lakehouse yaklaşımı ikisini düşük maliyetli tek bir depolama katmanında birleştirmeyi önerir.
ETL nedir?
Microsoft'un tanımıyla ETL, farklı kaynaklardaki veriyi tek bir veri deposunda toplayan bir veri entegrasyonu süreci. AWS'ye göre veri, kaynak sistemden hedefe periyodik aralıklarla üç adımda taşınır:
- Extract (çıkarma): İlgili veri kaynak veritabanından alınır.
- Transform (dönüştürme): Veri analize uygun hâle getirilir: hatalar temizlenir, kopya kayıtlar ayıklanır, birim ve tarih biçimleri dönüştürülür, kaynaklar birleştirilir.
- Load (yükleme): Dönüştürülen veri hedef veritabanına yazılır.
Microsoft'a göre dönüşüm çoğu zaman veriyi geçici olarak tutan staging tablolarında yapılır; üç adım zaman kazanmak için paralel de çalışabilir.
ELT nedir? ETL ile ELT farkı
Microsoft'a göre ELT, ETL'den yalnızca dönüşümün yapıldığı yerle ayrılır: ayrı bir dönüşüm motoru yerine hedef veri deposunun işlem gücü kullanılır. Oracle'ın veri ambarı rehberine göre modern veri ambarları da dönüşümün tamamını ya da çoğunu ambarı barındıran veritabanında yapan ELT mimarisine kayıyor.
AWS'nin karşılaştırmasına göre ELT ham veriyi hedefte tuttuğu için aynı veri gerektiği kadar yeniden dönüştürülebilir ve görüntü ya da doküman gibi yapılandırılmamış veri de taşınabilir. ETL ise yapılandırılmış veriye daha uygun ve baştan daha fazla tanım ister. Ödünleşimin bir yüzü kişisel veri: ETL'de hassas alanlar hedefe gitmeden şifrelenebilir, ELT'de ise ham veri hedefe olduğu gibi iner.
Veri ambarı (data warehouse) nedir?
Oracle'a göre veri ambarı, iş zekâsı için tasarlanmış bir veritabanı: işlem (transaction) için değil, sorgu ve analiz için kurulur ve genellikle işlem verisinden türetilmiş geçmiş veriyi tutar. Oracle, William Inmon'un saydığı dört özelliği aktarıyor: konu odaklı, bütünleşik, kalıcı (nonvolatile; ambara giren veri değişmez) ve zamana bağlı (time variant).
Oracle'ın örneğinde, günlük işlemleri yürüten bir OLTP sisteminde tipik işlem birkaç kayda dokunurken ambar sorgusu binlerce ya da milyonlarca satır tarar. Microsoft'a göre analitik (OLAP) sistemler yoğun okuma ve az yazma için optimize edilir ve normalizasyon yerine yıldız (star) ya da kar tanesi (snowflake) şema kullanır. Yıldız şemada tablolar ikiye ayrılır: olayları ve gözlemleri tutan fact tabloları ile iş varlıklarını anlatan dimension tabloları.
Veri gölü (data lake) nedir?
Microsoft'a göre veri gölü, büyük hacimli veriyi kendi ham biçiminde tutan bir depolama alanı; terabaytlardan petabaytlara ekonomik olarak ölçeklendiği için büyük ve çeşitli veri kümelerine uygun. Veri dönüştürülmeden saklanır, dönüşüm yalnızca veri gerektiğinde yapılır; buna schema-on-read denir.
CIDR 2021'de yayımlanan lakehouse makalesine göre 2015'ten itibaren S3, ADLS ve GCS gibi bulut veri gölleri HDFS'in yerini almaya başladı; veri çoğunlukla Apache Parquet ve ORC gibi açık dosya biçimlerinde durur. Bu depolama katmanını nesne depolama yazımızda anlattık. Riski de belli: Microsoft'a göre düzgün kataloglanmayan göller, bilginin içinde durduğu ama bulunamadığı ya da yanlış anlaşıldığı veri bataklıklarına (data swamp) dönüşebilir.
Veri ambarı ile veri gölü farkı
AWS'nin karşılaştırması farkları şöyle sıralıyor:
- Veri: Ambardaki bütün veri yapılandırılmış ya da tablolara önceden modellenmiş; gölde yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış her veri durabilir.
- Şema: Ambarda şema, veri kaydedilmeden önce tasarlanır; gölde analiz sırasında yazılır.
- Veri kalitesi: Ambardaki veri özenle düzenlenmiş ve merkezi doğru sürüm olarak kullanılır; göldeki veri ham olabilir.
- Kullanıcı: Ambarın kullanıcılarına gölde veri mühendisleri ve veri mimarları da eklenir.
- Performans ve maliyet: Ambar en hızlı sorgu performansı için tasarlanır; göl ise hacmi ve maliyeti öne alır, büyük görüntü ve video arşivlerinde daha ucuzdur.
- Kullanım: Ambar toplu raporlama, BI ve görselleştirme için; göl makine öğrenmesi, keşif amaçlı analiz, akış verisi ve büyük veri için.
Lakehouse makalesine göre sektörde baskın düzen ikisini birlikte kullanır: veri önce ETL ile göle, ardından ELT ile yeniden ambara taşınır.
Lakehouse nedir?
Databricks, UC Berkeley ve Stanford'dan araştırmacıların yazdığı CIDR 2021 makalesi, bugünkü veri ambarı mimarisinin yerini lakehouse'a bırakacağını savunuyor. Yazarlara göre iki katmanlı düzen karmaşıklık, gecikme ve yeni arıza biçimleri doğuruyor; ambardaki veri de göle göre bayat kalıyor, yeni verinin yüklenmesi çoğu zaman günler alıyor. Makale lakehouse'u, düşük maliyetli ve doğrudan erişilebilir depolama üzerine kurulan ve ACID transaction, veri sürümleme, denetim, indeks, önbellek ve sorgu optimizasyonu gibi analitik veritabanı özelliklerini de sunan bir veri yönetim sistemi olarak tanımlıyor.
Batch ve akış: CDC ve Kafka
Klasik ETL toplu (batch) çalışır; Oracle'ın anlatımıyla ambar gecelik ya da haftalık ETL ile güncellenir. Google Cloud'a göre artık batch hatlarının yanında sürekli veri akışını gerçek zamanlı işleyen streaming ETL hatları da kuruluyor.
Kaynaktaki değişikliği yakalamanın bir yolu CDC (change data capture). Microsoft'a göre SQL Server'da CDC, insert, update ve delete değişikliklerini transaction log'dan okuyup kolay tüketilen ilişkisel bir biçimde sunar; belgenin örneğinde bir ETL uygulaması bu değişiklikleri veri ambarına artımlı (incremental) yükler. Apache Kafka ise olay akışlarını yayımlayan, kalıcı olarak saklayan ve işleyen bir olay akışı (event streaming) platformu; Kafka Connect'teki bir PostgreSQL bağlayıcısı (connector), bir tablo grubundaki her değişikliği yakalayabilir.
Veri kalitesi, doğrulama ve kişisel veri
Dönüşüm adımı veri kalitesinin de yeri: Microsoft dönüşüm işlemleri arasında temizleme, kopya ayıklama ve doğrulamayı sayıyor. Kurallar testle de yazılabilir: dbt dört hazır test sunar (unique, not_null, accepted_values, relationships); her test kuralı bozan satırları seçer, sıfır satır dönerse test geçer. Taşıma projelerinde AWS DMS kaynaktaki her satırı hedefteki karşılığıyla kıyaslayıp uyuşmazlıkları raporlayabiliyor; bunun bedeli ek kaynak ve süre. Veri taşıma projelerini taşıma ve entegrasyon mühendisliği hizmetimizde ele alıyoruz.
Kişisel veride SQL Server'ın dinamik veri maskelemesi veriyi değiştirmeden yetkisi olmayan kullanıcılara maskeli gösterir; ama Microsoft'a göre ad hoc sorgu yetkisi olan bir kullanıcı gerçek değere ulaşabilir. NIST SP 800-188 (Eylül 2023) da kişisel bilgiyi yalnızca maskeleyen her aracın kimliksizleştirme (de-identification) için yeterli olmadığını yazıyor. Anonim hâle getirmenin kanundaki tanımını KVKK yazımızda, yapay zekâ projelerinde veri hazırlığını veri altyapısı yazımızda ele aldık.
ETL araçları
Aşağıdaki araçlar yalnızca örnek:
- Apache Airflow: Belgelerine göre batch iş akışlarını yöneten açık kaynak bir platform; iş akışları tamamen Python ile tanımlanır.
- dbt: Ambardaki ham veriyi SQL select ifadeleriyle modellere dönüştürür; dönüşüm doğrudan bulut veri platformunda çalışır.
- Azure Data Factory: Microsoft'a göre hibrit ETL, ELT ve veri entegrasyonu projeleri için yönetilen bir bulut hizmeti; yeni nesli Microsoft Fabric'te.
- AWS Glue: AWS'ye göre birden çok kaynaktaki veriyi keşfetmeye, hazırlamaya, taşımaya ve birleştirmeye yarayan sunucusuz (serverless) bir veri entegrasyonu hizmeti.
Verinin geldiği veritabanlarını SQL ve NoSQL yazılarımızda anlattık. Kaynak sistemleri birbirine bağlamayı sistem entegrasyonu, ambar ve göl platformunu veritabanı platform mühendisliği hizmetlerimizde ele alıyoruz.
Sık sorulan sorular
ETL ne demek? Extract, Transform, Load, yani çıkar, dönüştür, yükle demek: veriyi kaynaklardan alıp dönüştüren ve çoğunlukla bir veri ambarına yükleyen süreç.
ELT nedir, ETL'den farkı ne? ELT'de veri hedefe ham hâliyle yüklenir ve hedef sistemin içinde dönüştürülür. ETL'de ise dönüşüm yüklemeden önce, ayrı bir motorda yapılır.
Veri ambarı (data warehouse) nedir? Analiz ve raporlama için tasarlanmış, farklı kaynaklardan gelen geçmiş veriyi tutarlı bir biçimde saklayan veritabanıdır. Şema veri yazılırken uygulanır.
Data lake (veri gölü) nedir? Yapılandırılmış ve yapılandırılmamış veriyi ham hâliyle, büyük ölçekte saklayan depodur. Şema veri okunurken uygulanır.
Veri ambarı ile veri gölü arasındaki fark nedir? Ambar, temizlenmiş ve yapılandırılmış veriyle hızlı raporlama için kurulur. Göl her türlü ham veriyi düşük maliyetle tutar ve makine öğrenmesinde kullanılır.
Kaynaklar
- Microsoft, Extract, transform, load (ETL): ETL ve ELT tanımları, staging tabloları ve dönüşüm işlemleri
- AWS, What is ETL?: ETL'in adımları, dönüşüm örnekleri, baştan gereken tanım ve yükleme öncesi şifreleme
- AWS, What's the Difference Between ETL and ELT?: ETL ile ELT farkları
- Google Cloud, What is ETL?: batch ve streaming ETL hatları
- Oracle, Introduction to Data Warehousing Concepts: veri ambarı tanımı, Inmon'un dört özelliği, OLTP farkı, ETL ve ELT (Oracle Database 26, Data Warehousing Guide)
- Microsoft, Online analytical processing: OLAP, yıldız ve kar tanesi şema
- Microsoft, Understand star schema and the importance for Power BI: fact ve dimension tabloları
- AWS, What's the Difference Between a Data Warehouse, Data Lake, and Data Mart?: veri ambarı, veri gölü ve data mart karşılaştırması
- Microsoft, What is a data lake?: veri gölü tanımı, schema-on-read ve data swamp
- Armbrust, Ghodsi, Xin ve Zaharia, Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics: lakehouse tanımı, iki katmanlı mimarinin sorunları, bulut veri gölleri ve açık dosya biçimleri (CIDR 2021)
- Microsoft, What is change data capture (CDC)?: CDC ve ETL ile artımlı yükleme
- Apache Kafka, Introduction: olay akışı ve Kafka Connect
- dbt, Add data tests to your DAG ve What is dbt?: veri testleri ve dbt'nin tanımı
- AWS, AWS DMS data validation: taşımada satır satır doğrulama
- Microsoft, Dynamic Data Masking: dinamik maskeleme ve sınırları
- NIST, SP 800-188 De-Identifying Government Datasets: Techniques and Governance: kimliksizleştirme ve maskeleme araçlarının sınırı (Eylül 2023)
- Apache Airflow, What is Airflow?: Airflow'un tanımı
- Microsoft, What is Azure Data Factory?: Data Factory'nin tanımı ve Fabric'teki yeni nesli
- AWS, What is AWS Glue?: Glue'nun tanımı
- Bu katmanı nasıl işlettiğimiz: taşıma ve entegrasyon mühendisliği