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