Oracle Data Integrator Objects: OdiGenerateAllScen & OdiExportAllScen araçlarını nasıl kullanabiliriz ne gibi seçenekleri vardır birlikte inceleyelim.
Farz edelim ki ODI üzerinde iki farklı proje(Project_1 ve Project_2) var ve bunların düzenli yedeğinin alınması gerekiyor.
Bir projede yedeğini alabileceğimiz bileşenlere örnek olarak: datastore’lar, mapping’ler, prosedürler vb. bileşenler.
Project_1, içerisinde 3 ayrı paket barındırıyor.
- WORK_Package_X
- WORK_Package_Y
- WORK_Package_Z
Buna ek olarak WORK_Package_X paketinin senaryosu oluşturulmuş ve içerisinde her gece 00:30 da çalışması için ayarlanmış bir çizelgesi (Schedule) var.
Bu bilgiler doğrultusunda yeni bir proje oluşturacağız. Oluşturacağımız yeni proje içerisinde diğer projelerin yedeklerini alan bir mekanizma olacak.
Designer menüsü üzerinden New Project ’ i seçiyoruz.
Name: BACKUP_PROJECTS yazıp kaydetmemiz yeterli olacaktır.
BACKUP_PROJECTS’in içerisine girip yeni bir paket oluşturuyoruz.
New Package -> Name: Export_Project_1
Paket içerisine bir tane OdiGenerateAllScen aracı ekliyoruz. (Sürükle bırak metodu ile eklenmesine izin verilmiyor.) Eklemek için önce aracın üzerine bir kere tıklıyoruz, ardından fare imleci + halini alacaktır. Son olarak paket içerisinde boş bir alana tıklamanız yeterli olacaktır.
OdiGenerateAllScen aracının üzerine bir kez tıklayarak özelleştirmeye başlıyoruz.
Step Name : OdiGenerateAllScen Project_1
Parameters :
Project : Project_1
Mode : Replace
Generate Package Scenarios : Yes
Generate Interface Scenarios : Yes
Generate Procedure Scenarios : Yes
Generate Variable Scenarios : Yes
Generate Mapping Scenarios : Yes
Yukarıdaki parametreler proje içerisinde nelerin senaryolarını Generate edeceğimizi seçme imkanı veriyor.
*Mode değerinin ne işe yaradığını ilerleyen aşamalarda bahsedeceğim. (Önemli)
Yine aynı şekilde bir de OdiExportAllScen aracı ekliyoruz.
Step Name:
OdiExportAllScen Project_1
Parameters:
Source Project : Project_1
Target Directory : /home/oracle
XML Charset : ISO-8859-9
Charset : ISO8859_9
Export Package Scenarios : Yes
Export Interface Scenarios : Yes
Export Procedure Scenarios : Yes
Export Refresh Variable Scenarios : Yes
Export Mapping Scenarios : Yes
Chipher Text Export Key(Optional) : Hobbit1#
Yukarıdaki parametreler proje içerisinde nelerin Export edeceğimizi seçme imkanı veriyor.
Source Project : Hangi projeyi export edeceğiz ?
Target Directory : Hangi dizine export alacağız?
Charset : Hangi karakter setini kullanacağız?
** ISO-8859-9, export edilen xml dosyasının Türkçe karakterleri desteklemesini sağlar.
Chipher Text Export Key : Export alınan dosyanın şifresi. (İsteğe Bağlı)
Önce proje tüm senaryoları Generate edip sonrasında Export ediyoruz ki en güncel haliyle yedek almış olalım. Sırada ki işlem paket içerisinde First Step adımının belirlenmesi ve ikinci adım olarak Export işlemini göstermek. Paket içerisine sürüklediğiniz ilk işlem First Step diye adlandırılır.
Ara işlemler yaparken ilk attığınız işlemi sildiğinizde, odi yeniden First Step belirlemenizi ister. Bunun için istediğiniz işlemin üzerine gelip Sağ Tık yaptığınızda First Step olarak belirleme imkanın verecektir. Ayrıca First Step diye adlandırılan işlem üzerinde Yeşil bir ok göreceksiniz.
İkinci Adımı Belirleme: Önce en üstte bulunan işaretine tıklıyoruz. Ardından Genarete işlemini bir kez tıklayarak seçip Export işlemine doğru fareyi hareket ettiriyoruz.
*Noktalar ile çizilen kısmi yön size bu konuda yardımcı olacaktır.
Aynı işlemleri Project_2 için tekrarlıyoruz.
General sekmesinden parametreleri istediğimiz şekilde özelleştirdik. Buna ek olarak Command sekmesinden yaptığımız değişikler sonrasında odi’nin arka tarafta oluşturduğu komutu inceleyebilirsiniz.
İsterseniz menüden seçmek yerine direk buraya kendi komutunuzu yazabilirsiniz.
Advanced sekmesini bir sonraki adımı göstermek (Processing after success – Execute Step) için kullanabiliriz.
Export aldığımız (Target Directory : /home/oracle ) dizin adresini biraz daha özelleştirmek isteyebilirsiniz. Örneğin komplex bir projeniz var ve siz her şeyiyle yedek almak istiyorsunuz.
Dizin adresini /home/oracle şeklinde belirlediniz.
Her gece saat 00:30’da bu projenin yedeğinin alınması için bir plan(Schedule) hazırladınız. Projeyi her export etmek istediğinizde Mappingler için ayrı ayrı xml, Procedureler için ayrı ayrı xml ve diğerleri için yine ayrı ayrı xml dosyaları oluştuğunu hesaba katacak olursanız çok fazla xml dosyası oluşacaktır.
İkinci kez export edildiğinde dosya sayısı iki katına çıkacaktır. Haliyle bu dosyaları yönetmek çok zor bir hale gelecektir.
Bu gibi durumların önüne geçmek için bir değişken oluşturacağız. Amacımız, /home/oracle/<OgününTarihi>/<ProjeninAdı> şeklinde bir dizin içerisine export almak. Bu sayede her güne ait bir ana klasör, sonrasında projenin adına göre bir alt klasör daha oluşturacak.
Variables’ a sağ tıklayıp ardından New Variable’ı seçiyoruz.
Definition menüsünden oluşturduğumuz değişkene isimini verip ve tipini belirliyoruz.
Name : Datestamp
Datatype : Text
Refreshing menüsünden sorgumuzun çalışacağı Schema’yı ve Select Query kısmına çalışmasını istediğimiz sql sorgusunu yazıyoruz.
Select SYSDATE From Dual;
— Size o günün tarih ve saatini döndürecektir. (Oracle-Sysdate)
Örneğin: Datestamp=04-13-2001 09:45:51
Yazdığınız sorguyu test etmek istiyorsanız sağ üst köşedeki yeşil tike tıklamanız yeterli.
Hazırladığımız değişkeni paket içerisine sürükleyip bırakıyoruz.
OdiExportAllScen’in özelliklerine dönecek olursak
Command menüsü altında
Target Directory parametresini … üzerine tıklayıp genişletiyoruz.
“-TODIR=/home/oracle” kısmına gelip bu adres üzerinde düzeltmeler yapacağız.
İmleci oracle’ın sonuna getirip ODI Objects > Project Variables > Datestamp’ in üzerine çift tıklıyoruz.
Yukarıdaki şekilde düzeltmeler yapıyoruz. Hangi projenin paketini düzenliyor isek, datestamp değişkeninden sonra /<Projenin_Adı> şeklinde ekleme yapıyoruz.
Aynı işlemleri Project_2 için tekrarlıyoruz.
Geri bildirim: Yeni dünyalar keşfetmeye devam ediyoruz :) #Bidunyasi.wordpress.com | MyLifeMyPc
Merhaba,İşlemi gerçekleştirdikten sonra “java.io.IOException: ODI-10040: Cannot create directory
” hatası aldım.Neden olabilir,fikriniz var mı?