13 Ağustos 2024

ODI VS SSIS

 

ODI VS SSIS

Piyasada en çok kullanılan iki ETL toolunun birbirlerine karşı artı ve eksilerinden bahsetmek istiyorum.İkisinide aktif projede kullanmış biri olarak tamamen benim değerlendirmelerim olacak o yüzden baya taraflı bir yazı bu,buna dikkat ediniz 😊

Bilmeyenler için SSIS Microsoft’un ODI ise Oracle’ın ETL araçlarıdır.

Öncelikli SSIS daha fazla şirkette kullanılıyor fakat büyük şirketlerin çok tercih ettiği bir ETL aracı değil.ODI ise tam tersi genellikle büyük firmaların tercih ettiği bir ETL aracıdır.

Her firma gibi SSIS’da ODI’da kendi teknoloji gruplarıyla daha efektif çalışmaktadır o yüzden SSIS ile SQL Server bir DWH,ODI ile Oracle bir DWH daha iyi olacaktır.

SSIS ile Oracle DB’lere veri basmak isterseniz ek modüller gerekiyor ayrıca Mysql gibi diğer kaynaklar için ODBC driverdan gitmek gerekiyor ki bu da çok efektif olmuyor özellikle türkçe karakter sorunları çok yaşanıyor.

Fakat Excel gibi ODI’ın zorlandığı kaynaklarda daha rahat çalışabiliyor.

ODI ise SQL Servera veri basarken Bulk Insert KM’si ile rahat oluyor ama bu da ortalama kullanıcılar için zorlayıcı olabiliyor ve excel için paralı driverlar gerekiyor direk bağlantısı yok.

SSIS’ın özellikle Azure ile ilgili kendi teknolojisi olduğundan hazır componentleri var ama ODI’da bunlar ne yazık ki zayıf kalabiliyor.

Burada şunu belirtelim hemen SSIS olsun ODI olsun kaynaklara bağlanmak artık çok büyük bir problem değil en kötü bir bat veya sh dosyası içinde python ile bunu çözersiniz benim kastettiğim gömülü uğraştırmadan yapabilieceğiniz şeyler.

SSIS C# ve Visual Basic ile rahat kod yazabilirsiniz ama ODI’de Java veya Jython(Java üzerine Pyhton API) ile bunu çözebilirsiniz.

SSIS bir repository(DB) üzerine kurulu değil bu çok büyük bir eksi.Bu yüzden hangi tablo nerede kullanılmış takip etmek çok zor veya klasik ETL toollarında olan tabloların Metadatalarını tanıtma gibi bir özellik yok ilgili package içinde herşeyinizi yapıyorsunuz ve orada kalıyor.Fakat ODI bir repsoitory’e sahip bir tablonun bir mapping(package)’ın nerede kullanıldığını rahatlıkla bulabiliyorsunuz.

Repository olarak bitbucket gibi ortamlar kullanılıyor SSIS’da ama buda dosyanın yeni versiyonu sende var mı yok deploy etmeyi unuttum vs bir sürü sorun çıkartıyor bence.ODI’da bu tip sorunlar yok sadece regenerate ediyoruz ve bitiyor.

ODI’da KM(Knowledge Module) var ki bu özellik hiç bir ETL toolunda yok inanılmaz birşey.Yaptığı şey de SSIS’daki Control Flowu tüm mappinglerde anında değiştirebilme özelliği inanılmaz bir özellik gerçekten.Şöyle düşünün normalde SSIS’de bir package’da Control flow içinde önce truncate et,sonra temp yarat,veriyi oraya aktar,ana tabloya insert et,tempi uçur,indexi rebuild et vb bir çok adımınız olduğunu düşünün.Bunu tüm tablolarınız için her package’de tek tek yaratmanız gerekir.Ve ekstra bir adım eklemek isterseniz 1000 tane package’ınız varsa 1000 kere bu işlemi yaparsınız ama ODI’da seçili KM’de stepi ekle otomatik 1000 tanesi değişir.

Kendi içinde gömülü bir Monitoring ve Schedule özelliği yoktur bu sebeple Job Agent’a bağımlı kalırsınız SSIS’da ODI’da bunlar gömülüdür ve monitoring’i KM sayesinde çok kolaydır hangi stepte çalışıyor rahatlıkla görürsünüz.

ODI’daki KM herşeyi DB’de çalışacak koda dönüştürür ki bu muazzam bir test imkanı sağlar.SSIS’da kullandığınız tasklar bu özelliği vermez.

 

Genelde SSIS kullananlar Execute SQL Task içine kodu yazıp geçerler bunu ODI’da procedure ile yapabilirsiniz ama çok tercih edilmez bu da Lineage ve okunurluğu arttır.

ODI’ın kurulumu zordur delirtebilir bazen sizi ama SSIS çok daha kolaydır.

SSIS’ın öğrenmesi ODI’a göre çok daha kolaydır,hızlı öğrenip iş yapmaya başlayabilirsiniz.

SSIS’ın community’si güçlü ve kalabalık doğal olarak bu yüzden yaşandığınız sorunlara cevap bulabilirsiniz ODI için aynısını söyleyemeyeceğim açıkçası.

Lisans konularına çok hakim olmasam da SSIS,ODI’ın 10da 1 flndır maliyet olarak sanırım 😊

SSIS’i ADF üzerinde kullanabiliyorsunuz cloud geçişi kolay ve ayrıca SSIS kullanan biri için ADF öğrenmesi gerçekten çok kolay,çok benzerler çünkü.

SSIS’de loop oluşturmak ODI’a göre daha kolay diyebilirim ODI kasabiliyor bazen 😊

SSIS’de unicode hatalarından kafayı yiyebilirsiniz beni en çok zorlayan hep bu oluyor çözümü var elbette ama hiç bir ETL toolundan bu sorunu yaşamıyorum SSIS hariç 😊

 SSIS ETL aracı iken ODI ELT arıcıdır.Yani sizin SSIS’da yaptığınız dönüşümler ETL makinesinde olurken ODI’da DWH makinesinde olur.Bu verinin 2 kere taşınmasından dolayı yavaşlık demektir.Elbette SSIS ile ELT yapılabilir ama o zaman klasik T-SQL işlemlerini SSIS’a gömmüş oluruz.

En son şunu not düşeyim her ikiside güzel toollar ama ODI kompleks olduğundan ve diğer ETL toollarıyla benzer veya onlardan ileri çok noktası olduğundan ODI öğrendiğinizde diğerlerini öğrenmeniz inanılmaz kısalacaktır.

 

Unuttuğum çok şey vardır ama sanırım bir fikir vermiştir.Umarım faydalı olmuştur 😊

Hiç yorum yok:

Yorum Gönder