Yavaş değişen boyut türleri arasında seçim yapma
Yıldız şeması tasarım teorisi yaygın SCD türlerini ifade eder. En yaygın olan Tür 1 ve Tür 2'dir. Uygulamada bir boyut tablosu, Tür 3 ve Tür 6 dahil olmak üzere geçmiş izleme yöntemlerinin bir birleşimini destekleyebilebilir. Şimdi bu SCD türlerindeki farkı tanıyalım.
Tür 1 SCD
Tür 1 SCD her zaman en son değerleri yansıtır ve kaynak verilerdeki değişiklikler algılandığında boyut tablosu verilerinin üzerine yazılır. Bu tasarım yaklaşımı, müşterinin e-posta adresi veya telefon numarası gibi ek değerleri depolayan sütunlarda yaygındır. Bir müşteri e-posta adresi veya telefon numarası değiştiğinde, boyut tablosu müşteri satırını yeni değerlerle güncelleştirir. Sanki müşteri her zaman bu iletişim bilgilerine sahipmiş gibi. Müşteri Kimliği gibi anahtar alanı, olgu tablosundaki kayıtların güncelleştirilmiş müşteri kaydına otomatik olarak bağlanması için aynı kalır.
Tür 2 SCD
Tür 2 SCD, boyut üyelerinin sürüm oluşturmasını destekler. Genellikle kaynak sistem sürümleri depolamaz, bu nedenle veri ambarı yükleme işlemi bir boyut tablosundaki değişiklikleri algılar ve yönetir. Bu durumda, boyut tablosunun boyut üyesinin bir sürümüne benzersiz bir başvuru sağlamak için vekil anahtar kullanması gerekir. Ayrıca, geçerli boyut üyelerine göre kolayca filtre uygulamak için sürümün tarih aralığı geçerliliğini tanımlayan sütunlar (örneğin ve StartDate
EndDate
) ve büyük olasılıkla bir bayrak sütunu (örneğin, IsCurrent
) içerir.
Örneğin, Adventure Works satış temsilcisini bir satış bölgesine atar. Bir satış temsilcisi bölgeyi yeniden yer değiştirdiğinde, geçmiş olguların eski bölgeyle ilişkilendirildiğinden emin olmak için satış temsilcisinin yeni bir sürümü oluşturulmalıdır. Satış temsilcisi tarafından yapılan satışların doğru geçmiş analizini desteklemek için boyut tablosunun satış temsilcilerinin ve ilişkili bölgelerinin sürümlerini depolaması gerekir. Tablo, saat geçerliliğini tanımlamak için başlangıç ve bitiş tarihi değerlerini de içermelidir. Geçerli sürümler, satırın geçerli sürüm olduğunu gösteren boş bir bitiş tarihi (veya 31/12/9999) tanımlayabilir. İş anahtarı (bu örnekte çalışan kimliği) benzersiz olmayacağından, tablonun bir vekil anahtar tanımlaması da gerekir.
Kaynak veriler sürümleri depolamadığında, değişiklikleri algılamak ve depolamak için bir ara sistem (veri ambarı gibi) kullanmanız gerektiğini anlamak önemlidir. Tablo yükleme işleminin mevcut verileri koruması ve değişiklikleri algılaması gerekir. Bir değişiklik algılandığında, tablo yükleme işleminin geçerli sürümün süresinin dolması gerekir. Bu değişiklikleri, değeri güncelleştirerek EndDate
ve değeri önceki EndDate
değerden başlayarak yeni bir sürüm StartDate
ekleyerek kaydeder. Ayrıca, olgu tarihiyle ilgili boyut anahtarı değerini almak için ilgili olguların zamana dayalı bir arama kullanması gerekir.
Tür 3 SCD
Tür 3 SCD, boyut üyesinin iki sürümünü ayrı sütunlar olarak depolamayı destekler. Tablo, üyenin geçerli değerinin yanı sıra üyenin özgün veya önceki değerini içeren bir sütun içerir. Bu nedenle Tür 3, bir Tür 2 SCD'de olduğu gibi her değişikliği izlemek için ek satırlar depolamak yerine bir ana geçmiş örneğini izlemek için ek sütunlar kullanır.
Bu tür izleme, boyut tablosundaki bir veya iki sütun için kullanılabilir. Bunu aynı tablonun birçok üyesi için kullanmak yaygın değildir. Genellikle Tür 1 veya Tür 2 üyeleriyle birlikte kullanılır.
Tür 6 SCD
Tür 6 SCD, Tür 1, 2 ve 3'i birleştirir. Tür 2 üyesinde değişiklik olduğunda, uygun StartDate ve EndDate ile yeni bir satır oluşturursunuz. Tür 6 tasarımında, geçerli değeri o varlığın tüm sürümlerinde de depolarsınız, böylece geçerli değeri veya geçmiş değeri kolayca raporlayabilirsiniz.
Satış bölgesi örneğini kullanarak Region sütununu ve HistoricalRegion
içine CurrentRegion
bölersiniz. her CurrentRegion
zaman en son değeri gösterir ve HistoricalRegion
ve arasında StartDate
EndDate
geçerli olan bölgeyi gösterir. Bu nedenle, aynı satış temsilcisi için her kayıtta CurrentRegion
en son bölgenin doldurulması gerekirken HistoricalRegion
, Tür 2 SCD örneğindeki bölge alanıyla tam olarak aynı şekilde çalışır.