DWH-ETL-BI Dönüşüm
Sürecinde Neler Yapılmalı?
Yakın zamanda böyle bir projenin içinden alnımızın akıyla
çıktığımız için taze bilgilerle bu yazıyı yazmak istedim😊Dönüşüm
projeleri çok fazla başarısızlığa uğrayabiliyor ve bazen nereden
başlanmalı,hangi adımlar takip edilmeli gerçekten çok fazla kafa karıştırıcı
olabiliyor.
Benim lead etme şansı yakaladığım projede hem veritabanını,hem
ETL aracını,hem BI aracını değiştirdik😱 😊
Böyle büyük bir dönüşüme girecekseniz eski ve yeni
teknolojiye gayet hakim olmalısınız eğer eski teknolojiye hakim değilseniz
muhakkak ya ekibe bilen birini alın ya da bir süre bunun eğitimini alın.
Öncelikle çoğu projede bunlardan sadece biri değiştirilir
ama bazen böyle köklü dönüşümlere ihtiyaç duyulabiliyor kötü-eski
teknolojilerden yenilerine geçmek için.Bu durumda nereden tutsanız elinizde
kalır bir durum ortaya çıkıyor.En sağlıklısı muhakkak gibi önce işleyişi
öğrenmek.Bunun için öncellikle DWH’daki tabloların yapısını öğrenmeniz
lazım.Burada şunu söylemek lazım eğer %100 hakim değilseniz süreçlere ve
firmaya var olanı 1-1’e yakın geçirin.Çünkü birde işin içine yeniden DWH
modelleme sokarsanız hem ETL hem BI süreçleriniz değişeceğinden çok ciddi sorun
yaşayabilirsiniz.
Tabloları incelediğinizde eleyebildiğiniz kadarını eleyin
bunu nasıl yapabilirsiniz elbette ETL ve BI süreçlerinde kullanılmayan
tabloları tespit ederek.Dolayısıyla öncelikle tüm katmanlardaki tablolarınızı
ve bunların ETL,BI,SP,View gibi yerlerde kullanılıp kullanılmadığını yani
Lineage dediğimiz kavramı iyice analiz etmeniz lazım.
Tablo,View,MV,SP’lerinizin listesini çıkardıktan sonra
bunların çalışma sıklığı,süresi,yükleme methodlarını ve adetlerini almanızda
büyük fayda var.Özellikle bizim örneğimizde CDC yapılabiliecekken herşey
truncate-insert yapılmıştı bu anlamda çok ciddi süre kazandık.
Özellikle factlerin nasıl sorgulandığına bakarak
aylık,günlük partitionlar ve indexlere çok ciddi özen göstermeniz
lazım.Özellikle partition sonradan eklenemediği için tabloyu yaratırken buna
ekstra dikkat etmenizde fayda var.Örneğin günlük snapshot tutulan tablolar
vardı ama aylık partitionlanmıştı 😊 bunların hepsini günlük partition olarak
yarattık yeni DWH’da.
Tabloları yarattık ama tablolar boş.ODS katmanı için bunu
oluşturmak çok kolay zaten kaynakda var rahatlıkla alabilirsiniz.Fakat
özellikle snapshot factlerde tablolarda bunu nasıl yapacağız?Tabi ki bu sefer
eski DWH’ınız source olacak ve yeni DWH’a buradan taşıyacaksanız.Özellikle
geçiş yaptığınız güne kadarki veriyi
eski DWH’dan almaya özen gösterin çünkü sizin yeni yazdığınız mappinglerde ne
kadar test etseniz de hatalar çıkabilir ama eski DWH zaten kabul gördüğü için
sizin sistemde eski rakamlar gözükecek geçiş gününe kadar hasar minimuma
düşecek.
DWH tablolarını yarattınız ve ETL süreçlerinizi yazdıktan
sonra her iki sistemin testleriniz bitene kadar beraber çalışmasına dikkat
edin.Yani eski DWH’da dolsun yenisinide fakat yenisi elbette yeni ETL
sürecinden dolsun o tablo için yazdığınız.Bu durumda yeni ile eskiyi
kıyaslayabilirsiniz.Buda hatalarınızı görmenizi inanılmaz
kolaylaştıracaktır.Çünkü ETL aracı dönüşümlerinde birinde var olan fonksiyon
öbüründe aynı biçimde çalışmayabilir.Örneğin Oracleda NULL ile string
birleştirince string dönerken SQL Serverda NULL geliyormuş bu beni patlatmıştı 😊
ODS tablolarınız hiç bir zaman tutmaz yeni ve eski arasında
buna takılmayın çünkü çalışma saati farkları vardır tablonun countunu alıp
tutmuyor demeyin özellikle dünün verisi olarak filtreleyin tuttuğunu
görürsünüz.
Mümkünse sp’lerinizi ve MV’lerinizi ETL aracına taşıyın hazır dönüşüm yapıyorken diğer türlü
süreçleriniz arasında kopukluk oluşuyor bu da etki analizi yapmak istediğinizde
sizi çok zorluyor veya hatalara neden oluyor.Ayrıca çoğu firma ne yazık ki ETL
araçlarını sadece SQL query gömüp çalıştırmak için kullanıyor bu hem bir
standartlaşmayı zorlaştırıyor hem etki analizlerini zorlaştırıyor hem okuma
zorluğu getiriyor.O yüzden vaktiniz var ise SQL’lerinizi ETL mappinglere
dönüştürün.
Özellikle eski DWH’dan veri alırken çok canınız sıkılacak
sebebi data boyutları inanılmaz büyük olacaktır.Bu durumda günlük olarak veri
almak daha sağlıklı olacaktır.Bunun için ETL aracınızda muhakkak bir LOOP
yapısı kurun ve eski tüm tabloları istediğiniz tarih aralıklarında çalıştıracak
şekilde parametrik bir yapı kurmaya özen gösterin.Başka türlü almaya çalışmak
eziyet olacaktır manuel her gün için çalıştırmak.
Bu süreç elbette yukarda anlatıldığı kadar kolay olmayacak
ama sorunsuz tüm ETL sürecimiz bitti tablolarımız doluyor ve eski DWH ile yeni
DWH tablolarındaki veriler tutuyor son 1 haftadır.Bu durumda artık BI tarafına
geçebilirsiniz.Öncesinden geçeilirsiniz datalar tutmasa bile çünkü data
düzelince raporlar otomatik düzelir zaten ama ekibiniz küçük ise ETL bitince
BI’a geçin.
İlk işiniz elbette raporları önceliklendirmek olsun.
Diyelimki Tableau’dan Power BI’a geçiiyorsunuz.Bu durumda
önceliklle umarım çok az fonksiyon kullanılmıştır raporlarda.Çünkü modeli
kurmakdan ziyade formülleri oluşturmak yoruyor.Özellikle birebir karşılıkları
olmayan formüler gerçekten çok can sıkabiliyor.
Burada şunu da söylemek lazım ne kadar çok formül
kullanıyorsanız modelinizde birşeyler o kadar yanlıştır.Muhakkak formül
kullanmamız gereken durumlar var bunun farkındayım ama bunun dışındakiler model
problemleridir çoğu zaman.Hemen bir örnek verelim.Diyelim ki İsim Soyisim
birleştirip bir sütun oluşturuyorsunuz veya iki measurı bölüp diğeri ile çarpıp
topluyorsun vb bunlar aslında direk Dim veya Fact üzerinde olması gereken
alanlar her raporda bununla tekrar uğraşmamalısınız.Siz uğraşsanız bile
arkadaşınız çarpmayı unutabilir ve hatalara sebep olabilir.
Bu tip modele girmesi gereken sütunlarıda modele ekledikden
sonra raporunuza geliştirdiniz ve görsel benzemiyor buna kesinlikle
takılmayın!.
Görsellik ne kadar önemli olsada içerik daha önemlidir.Yakın
görseller ile işin içinden çıkıp benzer veya güzel görselleri faz-2 olarak
yapacağınızı söyleyebilirsiniz.
Hazır raporları oluşturuyorken eski BI toolundan kullanım
metriklerine bakın kullanılmayın raporları en sona atın hatta hiç oluşturmayın
soruldukça oluşturun.Çünkü hepimiz biliyoruzki bir noktadan sonra rapor
mezarlığı oluyor kimsenin bakmadığı ama bize bakım maliyeti çıkaran bir çok
rapor oluşuyor.
Yetkilendirme konuları unutabiliyor yeni geçişlerde bunu
unutmayın herkese açmayın raporları hassas içerikler olabilir içinde.
Peki en iyi tool nedir derseniz en iyi bildiğinizdir
açıkçası Informatica-ODI veya ADF harika toollar ama bilmedikten sonra sizin
için kompleks sinir bozucu toolardan farkı kalmayacaktır bu elbette hem DWH
seçimi hem BI seçimi içinde geçerli.Ekibinizin en hakim olduğu ve piyasada en
geçerli toolları seçmeye özen gösterin.
Bazı özellikler eskisinde olup yenisinde olmayabilir
özellikle ETL süreçlerinde Python’a bulaşmakdan kaçınmayın artık bizim
süreçlerin olmazsa olmazı herşeyi toolla yapacağım diye günlerinizi boşa harcamayın.
Bir çok hata çıkacak karşınıza çözemeyeceksiniz, bu iş biter
mi ,patlayacağız vb bir çok kez düşünebilirsiniz ve bitecek,hepsini
çözeceksiniz stres yapmayın halledersiniz 😊