SAP (System Applications and Products)

SAP (System Applications and Products)
Bu yazımızda SAP'nin piyasaya çıkış serüveni ile birlikte temel olarak dayandığı mimariye değineceğiz. SAP sistemlerini tanımak ve genel hatları ile mimarisini anlamak için önsöz niteliğinde bir yazı ile başlayalım istedik.
SAP 1972 yılında, IBM ‘de çalışan beş kişi ( Dietmar Hopp, Hans-Werner hector, Hasso Plattner, Klaus Tschira ve Claus Wellenreuther) tarafından, Almanya ‘nın , Mannheim kentinde, ufak bölgesel bir şirket olarak kuruldu. Kurulduğu 70 ‘li yıllarda R/1 ve 80’li yılarlıda kapsayan R/2 sistemlerini geliştiren SAP, 1980 ler de geldiğinde hızla büyüdü ve Almanya ‘nın Heidelberg yakınlarında bulunan Walldorf ‘a taşındı. O yıllarda, Almanya ‘da ilk yüze giren Endüstri firmalarından çoğu SAP müşterisiydi. (ICI, BASF, John Dere) fakat büyüme sadece Almanya sınırlı değil, Almanya dışında da devam ediyordu. 80 ‘lerde gelişmesi devam eden R/2 sistemi, çok uluslu müşteripotansiyalini, dil, para, para birimi, ülkelere özgü yasal koşulları dikkate aldı. Bu çok uluslu yaklaşımı bugünde devam etmektedir. 1980 ‘lerin ortasında SAP ilk satış grubunu Almanyanın dışında, Avusturya ‘da başlattı. Geliri 52 milyon doları geçti ve büyük bilgisayar fuarlarında varlığını göstermeye başladı. 1988 içerisinde, SAP GmbH, SAP AG oldu ve o yıl Frankfurt ve Stuttgart borsaları üzerinde ticaret yapmaya başladı.
SAP başarılarını sürdürmeye devam etti ve 1990 ‘larda, gerçek bir uluslararası iş anlayışı geliştirdi. R/3 sistemini 1990 ‘larda tanıttı, bu ticari şirketler için bilgi işlem alanında dev bir adım oldu. Bu dev adımla birlikte kod yazma, uygulamalar, arayüzlere son kullanıcı daha rahat ulaşabilir, konfigre edebilir ve kod geliştirebilir oldu.
SAP R/3, üç katmanlı sunucu mimarisinden esinlenmişti. R/3 sistemininde esinlendiği bu mimari , temelde verileri bilgisayardan talep ederken bilgileri bölerek alır ve depolar. Başka bir deyişle üç katmanlı “three-tier” mimarisi ;
3 ana kısımdan oluşur, bunlar ; - Server yada Client - İş mantığı - Veritabanı ve bu veritabanını yönetimi ile ilgili program. Tipik bir three-tier uygulamada, uygulama kullanıcısının iş istasyonu; kullanıcıya arayüz sağlayan (GUI) programı, uygulamaya özel giriş formlarını ve etkileşimli pencereleri içerir. (Yerel veriler veya iş istasyonunun kullanıcısına özel veriler de yerel sabit diskte saklanır).İş mantığı, bir yerel alan ağ sunucusu veya başka bir paylaşımlı bilgisayarda bulundurulur. İş mantığı, iş istasyonlarından gelen istemci istemlerine sunucu olarak karşılık verir. Hangi verilerin gerekli olduğuna (ve nerede bulunduğuna) karar verir ve bir mainframe de bulunan 3. katman programı ile (bu kez) istemci olarak ilişki kurar.
3. katman, veritabanını ve bu veritabanına okuma ve yazma erişimini yöneten programı içerir. Bir uygulamanın oluşumu daha karmaşık olmakla birlikte, bu 3 katmanlı görüş büyük ölçekli bir programdaki parçalar için uygun bir düşünce yapısı oluşturur. Three-tier bir uygulama istemci-sunucu modelini kullanır.
Her üç katman, farklı programlama dilleri ile çalışan farklı takımlar tarafından paralel olarak geliştirilebilir. Bir katmanın programı, diğer katmanlar etkilenmeden değiştirilebilir veya taşınabilir. Böylece, bir kuruluş için yeni ihtiyaçlar doğduğunda değişiklik yapmak kolay olur. Varolan uygulamaların tamamı veya bazı kritik kısımları geçici veya sürekli olarak saklanabilir ve eklenen yeni bir katmanın içine katılabilir. Bu 3 katlı mimari temel esasına dayanarak R/3 ;
Veri tabanı katmanı organizasyonun iş bilgilerini yönetir. Bu ana bölümlerin ana verileri ,bölümlerin ortak verileri ve veri tabanı yapısını tarif eden meta verileridir. Bütün verileri işlemek ve tanımlamak için SQL ( Structured Query Language –Yapısal Sorgu Dili) adlı endüstri standardı kullanılır. Belirli bir Pazar payına sahip ve organizasyonel amaçlar için uygun bütün ilişkisel veri tabanı yönetimi sistemleri (DBMS) SAP R/3 tarafından desteklenir.
İlişkisel veri tabanı üzerine yerleştirilmiş uygulamalar ikinci katmanı oluşturur. Bunlar veri tabanı katmanından aldıkları bilgilerle çalışır ve sonuç verilerini yine bu katmana yazarlar .R/3 sistem uygulamaları da ,ABAP programlama dili ile yazılan özel olarak yazılmış uygulamalar gibi... bu katmanda çalışır. Uygulamalar veri tabanından istediği gibi çağrılır,uygulama katmanına yüklenir ve burada çalıştırılır. Kullanıcı ara yüzü olarak da bilinen sunum katmanı diğer adıyla prezantasyon katmanı ,kullanıcıya en yakın şekilde yerleştirilmiştir .Kullanıcının her gün kullandığı grafik ara yüz bu katmanın bir parçasıdır.SAP uygulamaları ABAP/4 adlı ,SAP tarafından geliştirilmiş dördüncü nesil bir dille yazılır . İşletmenin ihtiyaçlarını karşılamak için gerekli değişiklikler bu dil yardımıyla yapılır. SAP, AR-GE ‘ye kurulduğu gün itibariyle önem vermiş, günümüzde bu öneme devam etmektedir. Geliştirmeleriyle bugün dünyanın neredeyse her ülkesinde başarıyla hizmet veren çokuluslu bir firmadır…
IBM'den çevre dostu veritabanı sistemi
IBM'den çevre dostu veritabanı sistemi
IBM’in yeni DB2 veritabanı sürümü, veri saklama altyapılarından kaynaklanan karbon salınımını %75’e varan oranda azaltarak, küresel ısınmayla savaşıyor.
IBM, yeni DB2 veritabanında yüksek ölçekli sıkıştırma teknolojisini kullanarak, aynı sabit disk üzerinde 4 kat fazla veri saklamayı mümkün kılıyor. Bu sayede, sürekli çalışan sabit disklerin harcadığı ve ünitelerin soğutulması için kullanılan enerjiyi %75 oranında düşürüyor. DB2, kurumlarda sürekli depolanması ve erişilmesi gereken verilerin yol açtığı karbon salınınımını da aynı oranda azaltıyor. DB2’nin 9.7 sürümü, Haziran ayında satışa sunulacak.
Şirketler tarafından üretilen bilginin katlanarak artması, veri altyapısı üzerinde çok büyük bir yük oluşturuyor, daha fazla verinin depolanması ve yönetilmesi, güç ve soğutma gereksinimini artırıyor.IBM Türk Yazılım Ürünleri Satış Müdürü Server Tanfer, “Dünyada her gün yaklaşık 15 Milyon Gigabyte bilgi üretiliyor. Sistem disklerinin enerji gereksiniminden yola çıkarak küçük bir hesap yaparsak, sadece 1 yıl içinde üretilen bilgiyi saklayıp erişmek istediğimizde, diskler saatte 0.4 KW elektrik yakan 1.375.000 haneden oluşan bir şehrin tükettiği kadar elektrik ve soğutma enerjisi isteyecektir. Çoğu şirketin verilerini 1 yıldan daha uzun süreler sabit disklerde sakladığını da unutmamak gerekir. DB2 veritabanının ‘deep compression’ adını verdiğimiz benzersiz veri sıkıştırma teknolojisi, aynı disk üzerinde çok daha fazla veri saklayarak toplam disk ve enerji ihtiyacını önemli ölçüde düşürüyor.” dedi.
Kod adı “Cobra” olan yeni DB2 sürümü, işyükü optimizasyon özelliği sayesinde, mali kapanış dönemleri gibi kısıtlı sürelerde büyük iş yüklerinin tamamlanması gereken durumlarda performansıyla öne çıkıyor. İş yükünün tipine göre kendi kendini en yüksek performansa göre ayarlayan DB2, bu ayarları yapacak uzman istemediği için önemli işgücü tasarrufu da sağlıyor. IBM müşterileri, yazılım geliştiricileri ve çözüm ortakları, IBM'in Erken Erişim Programı’ndan yararlanarak piyasaya çıkmadan önce DB2 9.7'yi test edebiliyor.
Veriambarı Yazılım Geliştirme Sürecinde Test
Veriambarı bir organizasyonun elektronik olarak saklanan datasının deposudur.Veri
ambarları raporlama ve analizi kolaylaştırmak için dizayn edilmişlerdir. Veriambarları analiz ve ilişkili verilerin sorgulanabildiği sistemlerdir.Birden fazla kaynak sistemin işleme tabi tutulmasıyla oluşmuştur.Ayrıca bu şekilde anlık işlemlerin gerçekleştiği veritabanlarındaki tutarsızlıkların ve kirli verilerin filtrelenerek analiz ve raporların etkilenmemesi sağlanmıştır.
Veri ambarının yapısı genel itibariyle şu aşamalardan oluşur;
1.Kaynak sistem:Günlük işlemlerden gelen kayıtların(transactionların)kaydedildiği
veritabanlarıdır.Bu veritabanları genelde tek bir işlev için normalize edildikleri için bunların hem raporlamada hem de işlemler için kullanılmaları verimi düşürür.
2.ETL(Extract-Transform-Load):ETL sürecinin ilk parçası olan extract aşamasında veri kaynak sistemlerden
ortaya çıkmaktadır.Bu şekilde farklı kaynaklardan gelen datalar üzerinde daha etkin ve kolay şekilde sorgulama yapılabilmektedir.
Veriambarları iş zekası çözümlerinde de kullanılmaktadır.İş zekası daha iyi iş kararları verebilmek amacıyla kullanılmaktadır[2].Veriambarları günümüzde birçok sektörde kullanılmakla birlikte özellikle rekabetin yoğun olduğu telekomünikasyon sektöründe kullanılmaktadır.Burada abonelere sunulan kampanyaların sonuçları,verilen bonusların kullanılma durumu gibi çeşitli işlevlerin yanında özellikle numara taşıma sonrası abonenin gidebileceğini tahmin eden algoritmalar da kullanılmaktadır.
Günümüzün bilgi çağı olmasından dolayı sürekli artan veri miktarının saklanması için veritabanları sürekli artmıştır.Ancak bu veritabanlarında bulunan veriler raporlama ve analiz için kullanılmaya uygun değildir.Bu verileri raporlama ve analizde kullanabilmek için buradaki ham bilginin kulanılır şekile dönüştürülmesi gerekmektedir.
Genel itibariyle veri tabanları hızlı ve etkin veri girişi,çıkışı ve güncellemesi için tasarlanmışlardır.Ancak bu yapılarda analiz ve raporlama için gereken algoritmaları çalıştırarak analiz ve raporlamaları gerçekleştirmek çok zordur.Bu nedenle yeni bir veritabanı oluşturularak bu yeni veritabanına sadece analiz ve raporlamada kullanılacak verilerin taşınması gerekliliği çekilir.Genellikle veriambarları birden fazla farklı kaynak sistemi kullanmaktadır.
Bu kısımın esasında çekilen verinin beklenen yapıya uygun olup olmadığının kontrol edilmesidir.Eğer değilse veri veriambarına alınmaz.
ETL sürecinin ikinci ayağı olan transform(dönüştürme)aşamasında ise birçok kural ve fonksiyonun extract edilen veriye uygulanmasıdır.Bu sayede iş ve teknik taleplei karşılayan hedeflenen veri kaynaktan türetilmiş olmaktadır.
ETL sürecinin son ayağı olan load(yükleme) aşamasında ise veri veriambarına yüklenir.Ancak bu işlem iş isteklerine göre değişebilmektedir.Mesele kimi işletmelerde mevcut veriye eklenerek giderken,bir kısmında haftalık olarak yenilenmekte ya da tarihsel olarak yeni data eklenmektedir.
1.Metadata: Veri hakkındaki bilgilere metadata denilmektedir.Veriambarında bulunan herbir veri elemanının anlamını,hangi elemanın hangi elemanlarla ilişkisi olduğunu,bu ilişkinin hangi şekilde gerçekleştiğini ve kaynakta bulunan veri ile hedefteki veri gibi bilgileri kendine tutmaktadır.
2.Front-end:Kullanıcı tarafında raporlama ve analizde kullanılmak üzere çeşitli araçlar kullanılarak veriambarına erişmesidir.
2.YAZILIM TEST
Bir program veya sistemin özelliğinin veya yeteneğinin değerlendirilmesi ve beklenen
sonuçlarım gözlemlenebilmesi için yapılan aktivitelere yazılım testi denilmektedir [3].
Yazılım testi genel itibariyle müşteri talepleri doğrultusunda geliştirilen bir yazılımın, kalite düzeyi müşteri tarafından belirlenen maliyet analizi göz önüne alınarak,müşterinin beklediği kalitede olup olmadığının belirlenmesi sürecidir.Yazılımlardaki hatalar geliştirici,analist gibi insan kaynaklı olmakla birlikte donanımsal kaynaklı da olabilmektedir.Bütün yazılım hatalarıkodlama hatası olmayabilir.Pahalı hataları meydana getiren ortak kaynak ihtiyaç analizleridir.Beklenilmeyen ihtiyaçlar yazılım dizaynırı tarafından ele alınmaz[4].
Yazılım geliştirme süreçlerine testin eklenmesinin nedeni yazılım geliştirme süreci sonucunda ortaya çıkan hataların müşteriye geri dönülmesi zor durumlara bırakmamasını sağlamaktır.Çünkü yazılımlarda bulunan bir hata canlıya alındığında yazılımın yaptığı işe göre bir şirkete itibar,para ve müşteri kaybına neden olabilmektedir.Tüm bunların önüne geçebilmek için test süreçlerini yazılım sürecinin içerisine yerleştirmek gerekiyor.
Yazılım doğrulama(verification) ve onaylama(validation)’nın birleşiminden oluşur.
Doğrulama:Yazılımı doğru yaptık mı?
Onaylama:Doğru yazılımı yaptık mı?
Yazılım test süreçlerini aşağıdaki şekilde sınıflandırabiliriz;
Sistem bilgisine göre;
1.Black box test;
2.White box test;
3.Gray box test:
Yazılım yaşam döngüsünde çalıştırılma zamanına göre;
1.Unit test
2.Entegrasyon testi
3.Sistem testi
4.Kullanıcı onay testi
Testleri amaçlarına göre de sınıflandırabiliriz;
1.İşlevsel test:Yazılımın işlevsel yönünün irdelendiği testlerdir.Burada verilen bir girdinin
analize göre beklenilen çıktının verilip verilmediği test edilir.İşlevsel test yazılım yaşam
döngüsünün tüm anlarında yapılan testlerde kullanılabilir.
1.1.Yükleme testi(Installation test) : Kullanıcının ilk etkileşimi yazılımı yükleme sırasında oluşmaktadır.Farklı platformlarda yazılımın sorunsuz şekilde yüklenebildiği kontrol edilmelidir.Kullanıcı kurulumda sorun istemediği için çok önemli bir testtir.
1.2.Regresyon testi(Regression Test) : Regresyon testlerinin amacı yapılan bir hata düzeltmesinin veya bir değişikliğin halihazırda sorunsuz çalışan kısımları etkilemediğinin görülmesidir.
1.3.Yükseltme ve uyumluluk testi(Upgrade and backward compatibility testing) : Her yazılımın sürekliliğini sağlamak için yükseltme sürümleri yapılır.Ancak bu sürümlerin önceki
sürümlerlerle uyumlu olması gerekmektedir.Bu nedenle bunun testinin yapılması gerekir.Bu teste uyumluluk testi adı verilir.
Yükseltme testinde ise kullanıcının efor sarfetmeden ve sistemini bozmadan bir yazılım yükseltmesi yapması beklenir.Bunun kontrolü için de yükseltme testi yapılır.
1.4.Erişilebilirlik testi: Kullanıcıların görsel,işitsel veya bedensel engelleri olabilir.Yazılımın bu kullanıcılar için çeşitli kolaylık sağlaması gerekmektedir.Bu nedenlede bu özelliklerin fonksiyonel testler sırasında kontrol edilmesi gerekmektedir.
1.5.Uluslararasılalıştırma ve yerelleştirme testi : Yapılan yazılımların diğer ülkelerde satışa sunulacak ise yazılımın bu ülkeler için uyumlu olması gerekmektedir.Bunun için yazılımın GUI’si,mesajlar,uyarı ekranları vb. Kısımlarının yerel dille yazılmış olmalıdır.Ayrıca bu değişiklikler yazılımın düzgün çalışmasını engellememelidir.
2.İşlevsel olmayan test: Test aktivitelerine odaklanılan,yazılımın işlevsel olamayan yönünü
irdeler,
2.1.Performans,yükleme ve stres testleri : İşlevsel testlerden sonra yapılan bir testtir.Genel itibariyle bir kodlamanın hataları düzeltilmesinden sonra yapılır.Genel olarak web uygulamalarında kullanılır.Burada belli bir yük altında iken sistemin cevap zamanı ve kullanımı testleri yapılır.
2.2.Kullanılabilirlik testleri : Bir sistemin ne kadar kolay kullanılabilir ve öğrenilebilir olduğuyla ilgili testlerdir.Bu testler sayesinde müşteri memnuniyetiyle satışlar artar,destek için ayrılan kaynak azalır.
2.3.Güvenlik testleri : Güvenlik testindeki birincil amaç güvenlik açıklarını tespit etmek ve bunları tamir etmektir.Güvenlik testi genellikle kodlama ve yükleme yapılıp operasyonel hale geldikten sonra yapılır. Bu test diğerlerinin aksine periyodik olarak ağ güvenliği için sistemin tüm güvenlik açıklarını tespit etmek için kullanılır.
3.VERİAMBARI PROJESİNDE TEST PROSEDÜRLERİ
Şirketimizin yapmış olduğu veriambarı projesinde kullanılan veri miktarı çok fazla olduğu için veriambarlarında kullanılan PL/SQL kodlarıyla verinin işlenmesi yetersiz kalmaktaydı.Bu nedenle ABINITIO adında ETL (Extract,Transform,load) aracı kullanıldı.Bu aracın özelliği parametrik şekilde ayarlanarak paralel işlem yapabilmesidir.Bu nedenle çok büyük verileri kolaylıkla kısa zamanda işleyebilmektedir.
Bu araç tablo bazlı işlem yapmamaktadır.Yani bir veri işlenmeden önce tablodan dosyaya inilmeli sonrasında raporlamada kullanılmak üzere işlem sonrasında tekrar veriler dosyadan tablolara çıkılmaktadır.
Bu aracın bir diğer özelliği yarı görsel olmasıdır.Geliştirme hem görsel komponentler kullanılarak hem de kodlama yapılarak halledilmekteydi.
Bu projede yapılan geliştirmelerin testleri yukarıda bahsedilen testlerin tamamı yapılamamıştır.Nedeni de sürenin kısıtlı olması ve bu nedenle bazı sorunlar geliştirme canlıya alındıktan sonra çıkmakta ve canlıda düzeltilmekteydi.
Yapılan testleri anlatacak olursam;
1.Yapılan geliştirme test grubuna ulaştığında öncelikle run olup olamadığı testi yapılmaktaydı.Yani giriş dosyaları veildiğinde dml hataları varmıydı,geliştirmenin çıkışında data oluşup oluşmadığıyla ilgili genel yapıyla alakalı testler yapılmaktaydı.Bu kısımda işlevsel testimizi halletmiş oluyorduk.
2.Canlıdan alınan güncel verilerle geliştirme run edilmekteydi.Bu şekilde oluşan çıkış verileri ‘Veri Kalitesi’(Data Quality) testlerinde kullanılmak üzere tablolara yüklenmektaydi.Daha sonrasında bizler giriş veri tablolarını verilen analize göre SQL kodlamasıyla çıkış veri tablosunu oluşturmaktaydık.Son aşamada ABINITIO geliştirmesinin çıkış verisiyle,bizim yaptığımız SQL kodunun çıkış verisi SQL’in ‘MINUS’ özelliği kullanılarak çıkış verisinin doğruluğu test edilmekteydi.
3.Incremental run yapılarak geliştirmenin bir sonraki gün gelecek yeni insertleri,updateleri ve delete datalarını işleyip işleyemediğinin testini yapıyorduk.
4.Extraction ve load shell script kodlarının doğru şekilde tablolardan verileri çekip,tablolara düzgün şekilde yüklemesinin testini yapıyorduk.
5.Canlıda olan bir geliştirmede hata bulunduysa düzeltmesi yapıldıktan sonra tüm geliştirme tekrardan bütünlüğünün bozulup bozulmadığıyla ilgili teste tabii tutulmaktaydı.
6.Performans testlerinde yapılan geliştirmelerde işlem tekrarlarının azaltılması yönünde yapılan geliştirmeler gözden geçirilmekte ve geliştiriciye bununla ilgili geri dönüş yapılmaktaydı.
Yukarıda bahsettiğim gibi yapılan testler daha fazla çeşitlendirilebilirdi.Ancak bir proje dahilinde kısıtlı zaman içerisinde yapıldığından dolayı test çeşidi olarak bu kadar yapılmıştır.
Okan Beşli
İ.Hakkı ÇAVDAR
Avea BT Sistemleri Uygulama Geliştirme Direktörü Cahit Terzioğlu
Merhaba,
ETL süreçlerini ve faydalarını iyi analiz edebileceğimiz bir yazı paylaşıyoruz.Bunun için Avea BT Sistemleri Direktörü Cahit Beyle roportajdan bir bölüm yayınlayalım.
Avea BT Sistemleri Uygulama Geliştirme Direktörü Cahit Terzioğlu
"IBM Information Server DataStage ürününü işimizin kritik bir bileşeni olarak görüyoruz"
Operasyonal sistemlerinden analiz sistemlerine hızlı, düzenli ve uygun formatta veri akışını sağlamada bir ETL aracından faydalanmaya karar veren Avea BT ekibi, veri entegrasyonu ihtiyaçlarına yanıt verecek en uygun çözüm olarak IBM Information Server DataStage yazılımını seçti. Türkiye'nin önde gelen mobil iletişim operatörü olan Avea'nın BT Sistemleri Uygulama Geliştirme Direktörü Cahit Terzioğlu, son derece rekabetçi olan mobil iletişim pazarında iş başarısı için datawarehouse sistemlerinin sağlıklı sonuçlar üretmesi gerektiğini, bunun için de DataStage gibi bir veri entegrasyonu aracı kullanmanın zorunlu olduğunu belirtiyor.
"Avea'da, operasyonel anlamda diğer sektörlerle karşılaştırılamayacak büyüklükte ve sayıda veri oluşuyor ve sürekli bir değişim söz konusu. Verinin analiz yapılabilecek bir seviyeye getirilmesi oldukça zahmetli bir işlem. Bu nedenle seçeceğimiz veri entegrasyonu aracının hızlı bir şekilde geliştirmeye, konfigürasyona açık olması, büyük datayla çalışmayı becerebilecek bir altyapı sunması gerekiyordu. DataStage, bizim bu tür beklentilerimizi tamamen karşıladı."
Okan Karaduman
AVEA Teknoloji İş Zekası ve Kurumsal Sistemler Müdürü
Avea'nın şirket profili ve faaliyet alanı hakkında bilgi alabilir miyiz?
CAHİT TERZİOĞLU: Avea, 9 milyon abonesi ile Türkiye'nin en genç ve yenilikçi mobil iletişim operatörüdür. "Avea" markası ile gerek kurumsal gerekse bireysel hizmetlerimizle hızla büyümekte, gerek teknoloji ve altyapıya, gerekse yönetim ve çalışanlarımıza sürekli olarak yatırım yapmaktayız. 1.900 çalışanı, 165 ülkede 371 operatörle serbest dolaşım anlaşması bulunan bir şirket olarak, müşteri ihtiyaçlarını birincil önceliğe yerleştirip, onlara en kaliteli hizmeti sunan öncü şirket olma vizyonu ile müşterilerimize son teknolojinin yanı sıra yenilikçi ve kaliteli hizmetler sunmaktayız.
Veri entegrasyonu konusunda IBM Information Server DataStage uygulamasını kullanıyorsunuz. Sizden öncelikle proje öncesi durumunuz ve ihtiyaçlarınızı öğrenebilir miyiz?
CAHİT TERZİOĞLU: Proje öncesinde bir veriyi datawarehouse sistemimize aktarma konusunda klasik yöntemlerimiz vardı. Bu yöntem dolayısıyla, operasyonel anlamda yazılımın yürütülmesi, üretilmesi aşamasında oldukça zorlanıyorduk. Verilerimizi daha hızlı ve datawarehouse sistemine uygun formatta, zamanında ve düzgün bir sıralamayla aktarabilmek için araştırmaya başladık. Amacımız, operasyonel yükü mümkün olduğu kadar ortadan kaldırmaktı. Kullandığımız yöntem bizim için çok yetersiz hale gelmişti. Endüstri standartlarına uygun ETL araçlarından birini seçmemiz gerekiyordu.
Çözüme nasıl karar verdiniz?
CAHİT TERZİOĞLU: Pazardaki güçlü alternatifleri araştırdık. Bir değerlendirme sürecinden geçtik ve değerlendirmenin sonucunda da en iyi çözümün DataStage olacağına karar verdik. Oldukça da hızlı bir şekilde DataStage'i devreye sokarak, hem gerekli düzenlemeleri yaptık hem de zamanında ve düzgün bir veri akışını sağladık.
Geçiş süreciniz hakkında bilgi verebilir misiniz?
OKAN KARADUMAN: Öncelikle "Unrated CDR" yani "ücretlendirilmemiş veri kaydı" olarak adlandırdığımız, hacimsel anlamda yoğun olan bölümden başladık. Daha sonra datawarehouse sistemimizi besleyen diğer sistemlerimizi de bu çalışmaya dahil ettik. En zorlu sürecimiz veri kaydının içeriye yüklenmesiydi. İlk önce "ücretlendirilmemiş" ardından da "ücretlendirilmiş" veri kayıtlarını içerecek biçimde projemizi sürdürdük.
Verilerinizi doğuran operasyonel uygulamalarınızdan söz edebilir misiniz?
CAHİT TERZİOĞLU: Ücretlendirilmemiş veri kayıtlarımız ?mediation' ortamımızdan geliyor. Mediation, network tarafında her türlü ses, data, SMS gibi kayıtları ve bunlardan üretilen verileri faturalama ve diğer ilgili sistemlerimize aktarmak üzere merkezi olarak toplayan ve yönlendiren bir alan. Ücretlendirilmiş veri kaydı ise bir ?billing' uygulaması üzerinden akıyor. Çok büyük bir hacimden söz ediyoruz, çünkü toplam müşteri sayımızın yaptığı tüm konuşmaların sonucunda ortaya çıkan, günlük hatta saatlik veri kayıtları bunlar.
Bütün bu yapıyı düşünürsek, DataStage'den beklentileriniz nelerdi?
OKAN KARADUMAN: Sözünü ettiğimiz bu operasyonel sistemden, analitik sisteme, yani datawarehouse sisteme veri akışı için DataStage'i kullanıyoruz. Datastage, akan veriyi alıp, formatlayıp, datawarehouse sistemine yüklüyor. Operasyonel tarafta diğer sektörlerden çok daha fazla veri oluşuyor ve sürekli bir değişim söz konusu. Çünkü müşterilerimize devamlı yeni teknolojik hizmetler sunuyoruz ve bu hizmetler yeni kayıtlar anlamına geliyor. Bizim veri entegrasyonu anlamında bu değişime çok hızlı uyum sağlamamız gerekiyor.Verinin analiz yapılabilecek bir seviyeye getirilmesi oldukça zahmetli bir işlem. Bu nedenle seçeceğimiz ETL aracının hızlı bir şekilde geliştirmeye, konfigürasyona açık olması, büyük datayla çalışmayı becerebilecek bir altyapı sunması gerekiyordu.
Gün içinde hatta saatler içinde oluşan verilerimiz, bazı şirketlerin yıllık verilerine eşdeğer olabiliyor. Bizim bu datayı zamanında, analiz ortamına atıp, analizini yapıp, sonuçları pazarlama, finans, satış departmanlarımızla paylaşmamız söz konusu. Bu sonuçların hızla paylaşılabilmesi, içinde bulunduğumuz yoğun rekabetçi pazarda hayati önem taşıyor. Bu bilgiler ilgili departmanlarımıza zamanında ulaşmazsa hiçbir değer ifade etmiyorlar. Bu yüzden DataStage bizim için önemli.
DataStage'in özelliklerini değerlendirebilir misiniz? BT departmanları açısından düşünürsek, ne gibi avantajlar sağlıyor?
OKAN KARADUMAN: Birincisi standardizasyon getiriyor. DataStage'i ayrı bir makineden sistemimizi durdurmadan yönetebiliyoruz. Bu süreçte doğrudan datawarehouse sistemindeki veri tabanları üstünde güncelleme yapmıyor, bu tranformasyonu kendine ait olan sunucuda gerçekleştiriyor ve sadece yükleme aşamasında datawarehouse uygulamasına erişiyor. Bu da uygulamanın kesintisiz hizmet vermesini sağlıyor. IBM Information Server ürünlerinin bizim henüz kullanmadığımız ama faydalı olduğunu gördüğümüz özelliklerini de önümüzdeki yıl devreye almayı düşünüyoruz. Örneğin, veri kalitesinin sağlanması ve kirliliğin arındırılmasına ilişkin avantajlar sunduğunu biliyoruz. Sonuç olarak, DataStage'in bundan sonra yürüteceğimiz projelerimizde de, verilerimizi hızlı bir şekilde uygun formata ve uygun sıralamaya getirerek, veri kalitesini sağlayarak destek olmasını bekliyoruz.
IBM ve IBM Çözüm Ortağı OBase ile ilişkilerinizi ve müşteri memnuniyetinizi değerlendirebilir misiniz?
CAHİT TERZİOĞLU: OBase, uzun zamandır işbirliği içinde olduğumuz bir firma ve yetkinliklerine güveniyoruz. Bu projede de başından bu yana daima yanımızda oldular. DataStage ürününün IBM gibi, lider bir teknoloji firması tarafından sunuluyor olmasından da çok memnunuz. Tamamen bir tesadüf olarak datawarehouse donanım platformumuzun da IBM ürünlerinden oluşması dolayısıyla bu memnuniyetimiz daha da artıyor. IBM'le şirketimizin kurulumundan bu yana sıkı bir işbirliğimiz var. Bizim için ürünlerin sürdürülebilirliği son derece önemli ve IBM ile de bunu sağlayabileceğimizi biliyoruz.
Veri, Veritabanı, Başarılı Veritabanı Uygulamaları İçin Dört Öneri
Hasan Tonguç Yılmaz bey’in Turkcell bloğunda yeralan yazılarını izniyle paylaşıyor olacağız.Öncelikle tanımayanlar için Tonguç Yılmaz kimdir kendi yazılarından tanıyalım.
Liseyi Muğla / Fethiye Lisesi‘nde, Lisans eğitimini İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü (1994), İstanbul Bilgi Üniversitesi İşletme Yönetimi (Yüksek Lisans – 1999) ve Işık Üniversitesi Sosyal Bilimler Fakültesinde (2003) almıştır. 1996′da TekstilBank Bilgi İşlem bölümünde Veritabanı ve Sistem Yöneticisi olarak görev almıştır. 2000 yılından bu yana Turkcell’de ORACLE geliştiricisi olarak birçok görev almıştır ve 2009 Eylül ayında Turkcell – Gelir Odaklı İş Zekası takımında göreve başlamıştır. 2008′den beri Turkcell Veri madenciliği departmanında Oracle ETL geliştiricisi olarak görevine devam etmektedir.
Şimdide Başarılı Veritabanı İpuçlarına bir bakalım..
İster iş zekâsı veya bir veri ambarı projesi, ister müşteri ilişkileri veya bir kaynak yönetimi projesi olsun, konunun ana fikri bence veridir. Hazırlanan uygulamalar verinin manalandırılması için gerekeni yapmak için birer araçtır.
Veriler ise veritabanında yaşar, dolayısı ile başarılı bir veritabanı uygulaması hayata geçirmek için çalıştığınız veritabanının mimarisini ve özelliklerini doğru anlamak önemlidir.
Günümüz veritabanları lisansları içinde birçok hazır paket ile birlikte geliyorlar, müşterilerinizin isteklerini ve ihtiyaçlarını rekabete karşı hızla gerçekleştirmek için parasını ödediğiniz bu seçeneklerin neler olduğunun farkında olmak ve bu özellikleri kullanmak size önemli rekabet avantajı sağlar.
Yukarıdaki tespitlerimden yola çıkarak çalıştığınız veritabanına ve o veritabanının SQL diline hâkim olmanın önemine dört konu başlığı altında değinmek istiyorum:
1. Piyasadaki veritabanlarının sadece fiyatlandırmalarında değil, temel özelliklerinde bile ciddi farklılıklar gösterebileceğinin farkında olmanız gerekir.
Bu nedenle başarılı bir “veritabanı uygulaması”, veritabanı bağımsız araçlar ve yaklaşımlar ile bence gerçeklenemez. Veritabanı bağımsız uygulama geliştirme yaklaşımı, uygulamayı geliştiren şirketlerin daha fazla satış yapma potansiyeli olmasını desteklerken, müşterilerinin ciddi lisans maliyetleri ile sahip oldukları veritabanı kabiliyetleri ile ilgilenmez.
2. Verilerinizi işlemek için veritabanının ana dili olan SQL dilini anlamak ve verimli kullanmak gerekir. Dolayısı ile öncelikle SQL dilinin okullarda öğretildiği gibi sadece SELECT, UPDATE, DELETE ve INSERT cümlelerinden ibaret olmadığının farkında olmalısınız.
Bu farkındalık için bir süre okuma, araştırma ve geliştirme yapmanız gerekecek, bağlantısını verdiğim bu Türkçe video eğitim sizin Oracle SQL dili kabiliyetlerini anlamanız için iyi bir başlangıç olacak (teknik kısımların başlaması için 6,5 dakika kadar sabretmelisiniz ).
http://vimeo.com/2444390
3. Uygulamalarınızı tasarlarken ve gerçeklerken, veriyi işleyen kısımların satır-satır çalışmak yerine kümeler üzerinden çalışmasını sağlamalısınız. Tek bir SQL cümlesinin küme mantığı ile yapabileceği bir işi, hiç bir üst katman aracında daha verimli gerçekleyemezsiniz.
-- PL/SQL imleç: satır-satır işleme örneği
begin
for x in (select * from t1)
loop
insert into t2 (c1,...) values (x.c1,...);
end loop;
end;
-- SQL: küme işlemi örneği
insert into t2 ( c1, ... )
select c1, ....
from t1
where ....;
4. Uygulamalarınızı geliştirirken sorunlar yaşadığınızda veya sorularınız olduğunda kime güvenmelisiniz? Günümüzde Google üzerinden aratma yaparak bulamayacağımız cevap yok diyebiliriz, ama dönen bilgiler çok okunur olsalar da cidden güvenilir içeriğe sahipler denebilir mi?
Bu noktada sayılarla desteklenmiş olsa bile, hiç bir “uzman”ın size önerisini hemen satın almamanızı öneririm. Canlı ortamı temsil edecek nitelikteki kendi deneme ortamınızda(işletim sistemi sürümü, Oracle veritabanı sürümü, parametreleriniz, tablo ve dizin seçimleriniz, veri dağılımınız vs. size özeldir) önerilenleri mutlaka önce denemeli ve sonuçlarını çözümlemelisiniz.
Bu yazıda özetlemeye çalıştığım duruşum çevrenizdeki birçok kişi J2EE, SOA vs. gibi yeni teknolojileri karizmatik esas amaçlarmış gibi pozisyonlarken size eski hatta garip gelmiş olabilir, dolayısı ile tartışma potansiyeli yüksek olduğunu düşündüğüm bu yazımı sonlandırmadan önce siz okuyucuların değerli yorum ve tecrübelerini merakla beklediğimi belirtmek istiyorum.
Not: Aman SQL diline balık çizdirecek kadar kendinizi kaptırmayın, bu kadarı da cidden fazla
SQL> set pagesize 0
SQL> set linesize 3000
SQL> select y "&_DATE" from dual model return updated rows
2 dimension by (999 x) measures (lpad('x',200) y, 0 z)
3 rules iterate (80)
4 (
5 y[for x from -10 to 10 increment 1] order by x=y[cv(x)]
6 ||case when iteration_number<2 then 'X' when iteration_number<12 then
7 case when abs(cv(x))between 10-iteration_number and 11-iteration_numb
er then 'X' else ' ' end
8 when -.1+sqrt(power(iteration_number/3-14,2)+power(cv(x),2)) between 8.
5 and 10 then 'X'
9 when iteration_number=55 and cv(x)=-3 then 'O'
10 when iteration_number between 35 and 40 and cv(x)=3 then '/'
11 else ' '
12 end
13 )
14 order by x;
old 1: select y "&_DATE" from dual model return updated rows
new 1: select y "03/09/2009" from dual model return updated rows
XX XXXXXXXXX
XXX XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX XXXXXXXXX XXXXXXXXX
XX XX XXXXXXX XXXXXXX
XX XX XXXXXX XXXXXX
XX XX XXXXXX XXXXXX
XX XX XXXXX XXXXX
XX XX XXXX O XXXX
XX XX XXXX XXXX
XX XX XXXXX XXXXX
XX XXXXXXX XXXXX
XX XX XXXXX XXXXX
XX XX XXXX XXXX
XX XX XXXX ////// XXXX
XX XX XXXXX XXXXX
XX XX XXXXXX XXXXXX
XX XX XXXXXX XXXXXX
XX XX XXXXXXX XXXXXXX
XXXX XXXXXXXXX XXXXXXXXX
XXX XXXXXXXXXXXXXXXXXXXXXXXXXXX
XX XXXXXXXXX
21 rows selected.
SQL>
Kullanılan Kaynaklar
Good SQL Practices, Stephane Faroult
http://www.roughsea.com/vids/SQL_Best_Practices.html
Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions, Thomas Kyte
http://asktom.oracle.com
The Burden of Proof, Jonathan Lewis
http://www.google.com.tr/url?sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fnocoug.org%2Fdownload%2F2003-08%2Fburden_of_proof.ppt&ei=TKifSrr8DIr-mwOenKTqDw&usg=AFQjCNGpiFj1zI49P74qUAFuiQadPq-Q8g&sig2=DXTke412DfL0ySavQl5NBg
Obfuscated SQL contest, Oracle Community – Database Developers Group
http://www.oraclecommunity.net/forum/topic/show?id=1988559%3ATopic%3A3577
http://blog.turkcell.com.tr/2009/09/18/veri-veritabani-basarili-veritabani-uygulamalari-icin-dort-oneri/