Yavaş değişen boyut türleri arasında seçim yapma

Tamamlandı

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.

An example Type 1 SCD row that updates CompanyName and ModifiedDate.

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 StartDateEndDate) 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.

An example Type 2 SCD row that shows a new record for Region change.

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.

An example Type 3 SCD row that shows an updated CurrentEmail column and an unchanged OriginalEmail column.

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 HistoricalRegioniçine CurrentRegion bölersiniz. her CurrentRegion zaman en son değeri gösterir ve HistoricalRegion ve arasında StartDateEndDategeç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.

An example Type 6 SCD row that shows a new record for Region change with CurrentRegion updated for old and new row.