Vaka Çalışması · Perakende
Derimod veri ambarı: AX, Excel ve CRM'den tek analitik veritabanına
Derimod'daki diğer projelerin üzerine oturduğu katman. AX ERP'nin işlem seviyesindeki verisini, ekiplerin Excel'lerini ve CRM'i SQL Server üzerinde tek bir analitik veritabanında birleştirdik: şema ve adlandırma standardı, prosedür kayıt ve log mekanizması, SSIS ile günlük akış, partition switch ile kesintisiz yükleme, RowHash ile delta tespiti. Dashboard'lar da Optail de bu ambardan besleniyor.
- 3
- Kaynak sistem
- 7
- Şema
- Switch
- Yükleme
- RowHash
- Delta
AX, Excel ve CRM tek modelde
Departman bazlı; her projenin yeri belli
Staging'de hazırla, tek hamlede tak; rapor kilitlenmez
Yalnızca değişen kayıt alt süreçlere akar
Problem
Derimod’da veri AX’ın veritabanında, işlem seviyesinde duruyordu: her satış fişi, her stok hareketi, her transfer emri. Üzerine bir karar sistemi kurmak için bu veri önce daha sade bir mimariye taşınmalıydı. Ekiplerin bütçe, plan, kapasite ve kural bilgisi ise Excel’de; müşteri verisi CRM’deydi. Üç kaynağın “satış” dediği şey aynı değildi, aynı ürün üç sistemde üç kodla duruyordu.
Ağustos 2023’te işe bu katmanla başladık; Optail ve dashboard’lar bu katman hazır olana kadar bekledi.
Kurallar önce
Tablo tasarlamadan önce bir düzen dokümanı yazdık. İki veritabanı var: Analitik canlı ortam, DevAnalitik ise Lumtify’ın geliştirme ve test alanı. Projeler ve veri departman şemalarıyla ayrıldı: alokasyon, planlama, mağazacılık, e-ticaret, lojistik merkezi, tedarik zinciri, staging. Bir transfer projesinin tablosu alokasyon şemasında durur; kimin verisi olduğu adından okunur.
| Kural | Karar |
|---|---|
| Tablo adı | Önek yok, alt çizgi yok; her kelimenin ilk harfi büyük: ReplenishmentParametre |
| Kolon | Türkçe karakter yok, boşluk yok; Unicode gerekmiyorsa varchar, gerekiyorsa nvarchar; MAX yerine gereken uzunluk |
| Prosedür / view | sp ve vw öneki; her prosedür spList tablosuna kaydedilir: ne işe yaradığı, ne zaman yazıldığı |
| Log | Her prosedür adımlarını spLog’a yazar: hangi adım, ne zaman. Gece akışı yavaşladığında hangi adımda yavaşladığı görülür |
Bu kurallar üç yıl sonra da geçerli; Derimod’un kendi ekibinin yazdığı prosedürler de aynı listede.
Akış
SSIS paketleri kaynaklardan veriyi düzenli aralıklarla alır, staging’e yükler, doğrular ve ana tablolara taşır. Veri doğrulaması Derimod’un bilgi işlem, planlama ve iş zekası ekipleriyle birlikte yapıldı: ambarın ürettiği satış rakamı, ekiplerin güvendiği rakamla eşleşene kadar tablo “bitmiş” sayılmadı.
İki tasarım kararı zamanla belirleyici oldu.
Partition switch. Satış ve stok gün bazında bölümlenmiş durumda. Yeni gün staging’de hazırlanır, ana tabloya ALTER TABLE … SWITCH ile takılır. Bu bir metadata işlemi, milisaniyeler sürer. Yükleme sırasında raporlar kilitlenmez, sabah dashboard’lar açıldığında veri hazırdır.
RowHash ile delta. Switch ile ezme yapıldığı için Change Tracking ve CDC devre dışı kalır. Bunun yerine her satırda iş kolonlarından hesaplanan, kalıcı (persisted) bir RowHash kolonu var; hash, bulk yükleme sırasında hesaplanır, ayrıca maliyet açmaz. Staging ile canlı tablo yalnızca (anahtar, RowHash) çifti üzerinden karşılaştırılır; bunun için dar bir indeks yeterli, geniş satırlara inilmez. Değişen ve yeni kayıtlar delta tablosuna düşer; Optail’in ve dashboard’ların alt süreçleri yalnızca bu deltayı işler. Tarih ve ondalık kolonlar sabit formata çevrilerek hash’lenir; aksi halde aynı değer farklı hash üretip sahte değişiklik doğurur.
Excel içeride. Ekiplerin yıllardır Excel’de tuttuğu plan ve kural bilgisini yok saymak yerine tanımlı bir formatla ambara bağladık. Master plan, hariç tutulacak ürün listeleri ve mağaza grupları Excel’den gelir, tabloya oturur ve Optail’in girdisi olur.
Mimarideki ana kararları Microsoft’a da danışarak doğruladık.
Üzerine ne kuruldu
Ambar iki şeyi besliyor: 20’den fazla Power BI dashboard’u ve Optail’in senaryo tabloları. Optail’in kendi veritabanı (baz veriler, senaryo, parametre ve sonuç tabloları) ambardan okur; her senaryo benzersiz bir kimlikle girdisini ve çıktısını saklar, geçmiş bir senaryonun hangi parametrelerle çalıştığı yıllar sonra da görülebilir. 2025’te CRM ve kampanya datamart’ı da aynı ambara eklendi.
Neden böyle
- Standart, tablodan önce gelir. Adlandırma ve şema kuralı ilk hafta konmasaydı üçüncü yılda kimin tablosunun ne olduğu bilinmezdi.
- Delta ucuz olmalı. Hash’i yükleme maliyetine gömmek, her gece tüm tabloyu karşılaştırmaktan daha hızlı ve daha güvenli.
- Kaynak değişince ambar emer. AX’ta bir alan değiştiğinde dashboard’lar ve Optail bunu bilmez; değişikliği ambar katmanı karşılar.