13 Ağustos 2024

DWH-ETL-BI Dönüşüm Sürecinde Neler Yapılmalı?

 

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 😊