Veri Ambarı Projelerinde Neden SCD Type 2 Mimari Kullanmalıyız?
Yavaş Değişen Boyutlar (SCD) Nedir?
Kurumsal veritabanlarında ve operasyonel sistemlerde (ERP, CRM) veriler zaman içinde değişime uğrar. Bir personelin çalıştığı departman değişebilir, bir ürünün satış fiyatı güncellenebilir veya bir müşterinin medeni durumu farklılaşabilir. Operasyonel sistemlerde bu tür değişiklikler genellikle mevcut kaydın üzerine yazılarak (Update) yapılır. Bu yönteme Veri Ambarı terminolojisinde SCD Type 1 (Slowly Changing Dimension Type 1) denir.
Eğer bir e-ticaret sitesi yönetiyorsanız, müşterinin güncel adresini bilmek kargo için yeterlidir. Ancak İş Zekası (BI) ve Raporlama dünyasında eski verinin üzerine yazmak tam bir felakettir. Örneğin, bir satış temsilcisi 2024 yılında 'İzmir' şubesinde rekor satışlar yaptıktan sonra 2025'te 'İstanbul' şubesine atanırsa ve verinin üzerine yazarsanız, geçmişe dönük 2024 satış raporlarında o personelin İzmir satışları bir anda İstanbul şubesinin cirosuymuş gibi görünmeye başlar!
SCD Type 2'nin Kurtarıcı Gücü
İşte bu tarihsel kayıpları engellemek için SCD Type 2 mimarisi geliştirilmiştir. Bu mimari uygulandığında, değişen verinin üstüne kesinlikle yazılmaz.
Sistem şöyle çalışır:
- Eski bilginin bulunduğu satıra gidilir, bu kaydın geçerlilik bitiş tarihi (EndDate) o anki tarih olarak güncellenir ve aktiflik durumu (IsActive) 'False' (0) olarak işaretlenir.
- Yeni güncel bilgi, yepyeni bir satır (Row) olarak tabloya eklenir (Insert). Bu yeni satırın başlangıç tarihi (StartDate) o anki tarih olur, bitiş tarihi genellikle '9999-12-31' gibi sonsuz bir tarih atanır ve aktiflik durumu 'True' (1) yapılır.
Böylece Power BI raporunuzda, 2 yıl önceki şube kârlılığına baktığınızda, o günkü geçerli şube atamasını birebir ve hatasız hesaplayabilirsiniz.
Microto ETL ile Otomatik SCD2 Entegrasyonu
Bu mimariyi sıfırdan kurmak, yüzlerce tablo için başlangıç/bitiş tarihi (Effective Date) algoritmaları yazmak, Surrogate Key (Yapay Anahtar) mantığı oluşturmak devasa bir T-SQL ve SSIS kodlama eforu ister. Çoğu yazılım ekibi bu yükten kaçmak için Type 2 yapmaktan vazgeçer.
Ancak DVision Teknoloji'nin kendi ürünü olan Microto ETL Studio, Target (Hedef) tablonuzda SCD2 uygulamasını istemeniz durumunda, bunu tek bir kutucuk (Checkbox) ile seçmenize olanak tanır. Arkada çalışması gereken karmaşık 'Tarih Aralığı Karşılaştırma' kodlarının, MERGE sorgularının tamamını Microto saniyeler içinde kendisi yazar! DVision olarak, DWH altyapılarında her zaman tarihsel kurguları ve denetim izlerini güvence altına alıyoruz.
