3 Kasım 2014 Pazartesi

IBM InfoSphere Datastage Job Schedule Etme

Schedule etme işi Director Client üzerinde yapılır. Director Client üzerinde schedule etmek istediğimiz paralel veya sequence job’a gelip sağ tıklıyoruz.
















Add To Schedule dedikten sonra açılan ekranda schedule zamanını seçiyoruz ve OK diyoruz.














Job’ı schedule ettikten sonra eğer schedule’ı iptal etmek  veya yeniden schedule etmek istersek  şu saat şekline tıklıyoruz.



















Açılan ekranda schedule edilmiş job’ın üzerine gelerek sağ tıklıyoruz ve aşağıdaki gibi reschedule ve unschedule seçeneklerini görüyoruz. Bu şekilde schedule da değişiklik yapabiliyoruz.

















IBM InfoSphere Datastage SEQ Job'ı Hazırlama

Parallel job açtığımız gibi klasöre sağ tıklayoruz ve New Sequence Job diyoruz.















Daha sonra bu seq job’ı içerisinde çalışmasını istediğimiz Parallel yada başka sequence joblarını sürükleyip job’ın içerisine bırakıyoruz. Hangi sırada çalışmasını istiyorsa o şekilde paralel ve seri olarak jobları sıralıyoruz. 
















Job bitiminde ve içerisinde herhangi bir adımdan sonra bize mail gelsin istiyorsak Job içerisine Notification Activity ekliyoruz.  Notification Activity içerisine çift tıklayarak açıyoruz ve gerekli bilgileri yazıyoruz. Senders email adresi olarak datastage sunucusunu yazıyoruz ve alıcılar olarak mail gitmesini istedimiz kişilerin mail adreslerinı yazıyoruz.





















Job’ı herhangi bir sebeb yüzünden kesmek istersek örneğin bir adım çalışmadığında yada düzgün çalışmadığında Job’a Terminator Activity ekleriz. Bunun için herhangi bir bilgi girmemize gerek yok. Sadece hangi adımdan sonra Terminate edileceğini bilmesi için o adımdan  Terminator Activity’ye link çıkarılması yeterlidir.
Herhangi bir Job Activity’i çift tıklayarak açıyoruz. General sekmesinde Activity’ye vermk istedimiz ismi yazıyoruz ve Job sekmesine geliyoruz. Burada Execution Action ‘ı run yerine Reset if requered, then run seçiyoruz. Bu şu işe yarıyor seq job’u çalıştırdığımızda eğer bu activity Abort olursa bu seq job’ı tekrar çalıştırmak istediğimizde bu parallel job’ı açıp derlememiz gerekiyor fakat bunu seçtimizde derleme işlemini yapmamıza gerek kalmıyor. Seq job parallel jobları resetliyor ve yeniden çalıştırıyor.
Parallel job’da kullanılan parametrelerde bu sekmede görünür eğer bu parametrelerden birine başka bir değer vermek istersen buradan karşısına yazarak o değeri verebiliriz.




















Daha sonra Trigger sekmesine geliyoruz. Bu sekmede o activity ‘den çıkan tüm linkler bulunur. Expression Type’a tıkladığımızda o çıkış linkine zaman gidileceğini seçebiliriz.
Activity Job ‘ı düzgün çalışmışsa diğer adıma git demek istiyorsak OK-  Activity Job ‘ı Abort olduysa git Failed – gibi seçebiliyoruz. 




















Sequencer’a çift tıklayıp açtığımızda şu şekilde bir ekran görüyoruz. Burdan da sequencer’a gelen linklerin durumuna göre job’ın devam edip etmeyeceğini seçebiliyoruz. Yani hergangi biri hata aldıysa devam et yada hepsi hata aldıysa devam et şeklinde yada tersi olarak hepsi OK ise yada herhangi biri OK ise devam et şeklinde seçebiliyoruz.


















Parallel job’da olduğu şekilde de seq job’ı derleyip çalıştırıyoruz.

IBM InfoSphere Datastage ile Procedure Call Job'ı Hazırlama

Bu job’da db üzerinde yazılmış procedure çağrılır. Parallel job açılır ve procedure hangi db üzerinde ise onun bağlantı bilgileri aynı şekilde job’a eklenir




















Parameter set eklendikten sonra procedure’ü çağıracağımız Stored Procedure parallel job’a eklenir.
















Stored Procedure’den link çıkarılarak Peek’e gidilir. Bunun sebebi Stored Procedure tek başına çalışmaz bir input veya output linkine ihtiyaç duyar. Bu yüzden job’a Peek ekliyoruz. Daha sonra Stored Procedure’e çift tıklayıp açıyoruz.  Syntax sekmesine geliyoruz.
















Procedure Name alanına çağıracağımız procedure’ün adını yazıyoruz ve sonrasında Generate procedure call tik’ini kaldırıyoruz.  Ve çağıracağımız procedure paket içindeyse paket bilgisiyle beraber, procedure için parametre verilmesi gerekiyorsa onlarla birlikte Procedure call syntax de yazılmalıdır. 



















Bunları yazdıktan sonra General sekmesine geliyoruz. Stage name (Stored Procedure’e vereceğimiz isim) ve bağlantı bilgilerini yazıyoruz.


















Bu bilgileri de yazdıktan sonra derleyip çalıştırıyoruz. (Derleyip çalıştırmanın nasıl olduğundan bir önceki yazımda bahsetmiştim..)

IBM InfoSphere Datastage ile Datasource Aktarım Job'ı Hazırlama

Datastage ile basit bir şekilde bir ordamdan başka ortama data source tablosu veya datası aktarmak için şu adımları yaparız;

Step 1: Parallel Job açma;
















Step 2: Source ve target parameter setleri  alma;
















Job properties’i açtıktan sonra  açılan pencereden Parameter sekmesini açıyoruz.  Bu sekmede aşağıda yer aldığı gibi Add Parameter Set’ı tıklıyoruz ve açılan Open penceresinden source ve target ortamlarımız için oluşturduğumuz parameter setleri seçiyoruz.



















Parameter setleri ekledikten sonra OK deyip çıkıyoruz. Ve Parallel job’ımıza dönüyoruz.


















Step 3: Oracle Connector ile ortamlara bağlanma;


Datastage de sağ tarafta bulunan Palette view’inden Oracle Connector’u buluyoruz ve fare ile Connector’ü sürükleyip Job’ın içine bırakıyoruz. Source ve target sistemlerin ikiside oracle olduğu için iki tane koyuyoruz. Eğer source , target yada her iki ortamda as400 olacaksa Connector olarak ODBC Connector kullanılır.  
















İki ortamı birbirine link yardımıyla bağlıyoruz. Source ortam üzerine mouse sağ click ile tıklayıp bırakmadan sürükleyip target ortam ortam üzerine bıraktığımızda iki ortamı bağlamış oluyoruz.

Step 4: Source ve  target connector  bilgilerini girme;


Source Connector’e çift tıkladımızda Properites sekmesi açılır burda bağlantı bilgileri ve hangi tablo alınacaksa şeması ile adı yazılır. Job’ a parametreleri daha önce eklediğimiz için bize sadece seçmek kalıyor. Server’in sağ köşesine tıkladığımızda aşağıdaki gibi bu job için kullanabileceğimiz parametreler gelir.

















Step 5 :Source sistemden tablo alma veya select çekme;


Source sistemden select çekeceksek bunu Select statement’ yazıyoruz.  

















Select’e yazdığımız tüm kolonları Columns sekmesinde tipi ve boyutuyla tanımlamamız gerekir. Alanların Nullable özelliğini null gelme ihtimali olan kolonlar için ‘Yes’ yapmamız gerekir aksi halde null gelen bir değerde aktarım Abort olur.


















Eğer bir Select statement yazmayacaksak sadece tek bir tablo aktarımı yapmak istiyorsak Generate SQL at runtime özelliğini ‘Yes’ olarak değiştiriyoruz. 

















Değiştirdikten sonra altında bulunan Table name kısmına almak istediğimiz tabloyu şeması ile beraber yazıyoruz. 
















Komple tabloyu aktarmak istediğimizde tablonun kolonlarını tek tek Columns sekmesine yazmak yerine tabloyu datastage ‘e import ediyoruz.  Columns sekmesine geliyoruz ve Load ‘a tıklıyoruz.

















Tıkladıktan son açılan pencerenin  boş olan biryerine sağ tıklıyoruz ve ve aşağıdaki gibi Import Table Definition -->  Orchestrate Schema Definitions diyoruz.
















Açılan pencerede aktaracağımız tablo adını şeması ile beraber yazıyoruz, ve source bağlantı bilgilerini yazıyoruz. DBMS Type source sistem oracle database’i olduğu için Oracle seçilir ama AS400 den tablo aktarırken ODBC seçilmesi gerekiyor. Database server adı (datastage de tns’in tanımlarken verilen server name olmalıdır bazı ortamlar için bu farklı verilmiş olabilir.) , user name ve password bilgileri yazıyoruz ve daha sonra Next diyouz.
















Buradan sonra birkaç ekrana daha Next diyoruz bu ekranlarda tablo bilgileri, import edeceği klasör vs. gösteriliyor. Finish diyip bitiriyoruz. Daha önce açtığımızı ekranda import ettiğimiz tabloyu buluyoruz. Tablo Oracle altında import ettiğimiz ortam adıyla aynı isimde olan klasör altında bulunur. Tabloyu seçip OK diyoruz. 


















Bu ekranda import ettiğimiz tablonun kolonları gelir. Tablonun tüm kolonlarını veya sadece kullanmak istediğimiz kolonlarını seçip OK diyoruz.


















Daha sonra Column sekmesinde görünen kolon bilgileri üzerinde gerekliyse değişiklik yapabiliriz. OK deyip kaydediyoruz. 















Step 6: Target sisteme insert yapma;


Source sistem ile ilgili yapılacaklar bitti şimdi taget sistemi çift tıklayıp açıyoruz. Source için yaptığımız gibi aynı şekilde bağlantı bilgilerini yazıyoruz yani target parametrelerini seçiyoruz.  Ve insert etmek istediğimiz tablo adını yazıyoruz şeması ile beraber.  Son olarak insert etme şeklimizi seçiyoruz. Table action’ yapmak istediğimiz neyse onu seçiyoruz. Target sistem için kolon tanımlaması yapmamıza gerek yok source sistemden otomatik olarak kolon tanımlamalarını alır.
















Job’ı  save ediyoruz.  Parallel bir job oluşturduğumuzda Decimal separator  default olarak . (period) olarak seçili gelir fakat Oracle bir sisteme insert yaparken Decimal separator ,(comma) olarak değiştirilmelidir aksi halde job hata alır ve insert yapamaz.  AS400 bir sisteme insert yapılmak istenirse Decimal separator değiştirilmemelidir . (period) olarak kalmalıdır.  Job properties’i açıyoruz  Default sekmesine geliyoruz ve Decimal separator’ü değiştirip OK diyoruz. 
















Step 7: Job’ı derleme ve çalıştırma;


Job’ı Compile ediyoruz ve sonra çalıştırıyoruz. Job hata alırsa yeniden çalıştırmak için öncelikle job’ın tekrar compile edilmesi  gerekir.



















IBM InfoSphere Datastage ile Parameter Set Oluşturma

Datastage de parameter set oluşturmak  bd bağlantılarını yaparken  bağlantı parametrelerini projeye tek tek eklemek  yerine gerekli parametreleri tek seferde seçmemizi sağlar. Parameter set oluşturmak için şu yolu izleriz: Data Elements klasörü altında Parameter Set klasörüne sağ tıkladığımızda şu şekilde açılır;

















Açılan pencereye oluşturacağımız parameter set adını yazdıktan sonra  Parameter sekmesine geliyoruz ve Add Environment Variable’ı tıkladığımızda daha önceden oluşturduğumuz parametreleri burdan görebiliyoruz. Bu şekilde parameter set içerisine kullanacağımız parametreleri ekleriz.

















Parametreleri oluşturduktan sonra parametre değerlerini $PROJDEF olarak değiştiriyoruz. Bu şekilde yaparsak Admin ekranından parametrenin değerini değiştirdiğimizde burada bir değişiklik yapmamıza gerek kalmaz, değişiklik otomatik olarak buraya yansır.