PgAdmin ile Server oluşturma
- Masaüstü bilgisayarımıza web tarayıcısı üzerinden çalışan PgAdmin Tool’unun kurulumunu yapıyoruz.
- PgAdmin Tool’unu kullanarak öncelikle DB Server’ı tanımlıyoruz.
- Server oluşturma adımları:
- Browsers bölümünde bulunan Servers() tabının üzerine sağ tıklayarak Create->Server’ i seçiyoruz.
- Öncelikle “General” sekmesinden oluşturacağımız DB Server’ının adını(Name) giriyoruz.
- Daha sonra “Connection” sekmesinden uzaktan bağlanmak istediğimiz PostgreSQL DB makinemizin IP adresini giriyoruz.
- Port:5432, PostgreSQL DB makineleri için varsayılan(Default) değeridir.
Uzaktan bağlandığımız linux tabanlı makinemize PostgreSQL Database’imizin kurulumunu tamamlıyoruz.
PostgreSQL Şema oluşturma
- Ardından üzerinde test amaçlı bir şema(schema) oluşturuyoruz.
- Link:: https://www.postgresql.org/docs/current/static/ddl-schemas.html#DDL-SCHEMAS-CREATE
- CREATE SCHEMA test;
- Schema’da Employees adlı örnek bir tablo oluşturuyoruz.
- ( Not: Veri tiplerine dikkat ediniz.)
CREATE TABLE test.employees (
name character(100) ,
address character(100) ,
salary bigint
);
- Tablomuza örnek veri ekledikten sonra uzak masaüstü bağlantımızı rafa kaldırabiliriz.
- INSERT INTO employees (name, address, salary) VALUES (‘Sloan’, ‘Newyork’, 30000);
- INSERT INTO employees (name, address, salary) VALUES (‘Bailey’, ‘Newyork’, 60000);
- INSERT INTO employees (name, address, salary) VALUES (‘David’, ‘Texas’, 85000);
- INSERT INTO employees (name, address, salary) VALUES (‘Teddy’, ‘Norway’, 10000);
- INSERT INTO employees (name, address, salary) VALUES (‘Mark’, ‘Rich-Mond’, 55000);
Toad ile Oracle DB üzerinde employees tablosu oluşturma
- Gerekli Connection bilgileri girildikten sonra Create Table sorgusu yazıyoruz.
- Postgre DB tarafında oluşturduğumuz sütun ve veri tipleri uyuşacak şekilde yazmaya özen göstermelisiniz aksi takdirde ODI tarafında çeşitli hatalar alabilirsiniz.
ODI kullanarak Postgre DB’den Oracle DB’ye aktarım yapmak
- Öncelikle ODI üzerinde Postgre DB ve Oracle DB için ayrı ayrı Data Server oluşturuyoruz.
-
- Topology
- Physical Architecture
- Oracle
- New Database Server (Name: Oracle_TDB )
- Oracle
- Physical Architecture
- Topology
- Physical Architecture
- PostgreSql
- New Database Server (Name: Postgre_TDB )
- PostgreSql
- Physical Architecture
- Topology
Data Server oluştururken;
* Connection : User & Password bilgileri veritabanınıza erişim sağlayacağınız kullanıcı adı ve şifre bilgisi olmalıdır.
* JDBC tabında yine database’e erişim sağladığınız user, server, port bilgileri girilecektir.
Örneğin :
jdbc:postgresql: User=postgres; Password=admin; Database=postgres; Server=127.0.0.1; Port=5432
-
-
- Topology
- Physical Architecture
- Oracle -> Oracle_TDB
- New Physical Schema (e.g. Name: Oracle_TDB.<Schema_Name>)
- Oracle -> Oracle_TDB
- Physical Architecture
- Topology
- Physical Architecture
- PostgreSql -> Postgre_TDB
- New Physical Schema (e.g. Name: Postgre_TDB.<Schema_Name>)
- PostgreSql -> Postgre_TDB
- Physical Architecture
- Topology
- Logical Architecture
- Oracle -> Oracle_TDB
- New Logical Schema (e.g. Name: LOG_Oracle_TDB)
- Oracle -> Oracle_TDB
- Logical Architecture
- Topology
- Logical Architecture
- PostgreSql -> Postgre_TDB
- New Logical Schema (e.g. Name: LOG_PSQL _SDB)
- PostgreSql -> Postgre_TDB
- Logical Architecture
- Yukarıdaki işlemlerin aynısını PostgreSQL içinde yapıyoruz.
- Postgre_SDB(Source DB) adında Database Server oluşturup, onun için ayrıca Fiziksel Şema (Physical Schema -> Oracle_TDB.<Schema_Name>) ve Mantıksal Şema(Logical Schema -> LOG_PSQL _SDB) oluşturuyoruz.
- Topology
-
Phsical Schemas’ ın altında üzerine tıklayarak oluşturduğumuz fiziksel şemayı seçiyoruz.
Designer sekmesinden Project tabına gelerek yeni proje oluşturuyoruz.
Source_Model : PostgreSQL || Target_Model : Oracle
Olacak şekilde iki Model oluşturacağız.
- Önceden oluşturduğumuz Logical Schema’yı listeden seçiyoruz. (Oracle için LOG_Oracle_TDB)
Model’imizi oluştururken sol üst köşedeki “Reverse Engineer” butonuna tıkladığımız takdirde, database tarafında oluşturduğumuz ‘Employees’ tablosuna ait metadata verilerini database üzerinden çekecektir.
- Her iki modeli oluştururken de Reverse Engineer’ı çalıştıralım.
EMPLOYEES (Oracle DB’den çektiğimiz tablomuz.) & employees (PostgreSQL DB üzerinden çektiğimiz tablomuz.)
- Metadata(Data of Data): yani Tablonun Data’sı şeklinde düşünmeliyiz. (Sütun isimleri, Veri tipleri gibi..)
Sıradaki işlemimiz; Mapping
Oluşturduğumuz proje dizini içersinde FirstFolder -> Mapping -> New Mapping adımlarını takip ederek mapping işlemi yapabiliriz.
- New Mapping -> Name: Mapping_Operation gibi bir isim verip kaydetmelisiniz. (CTRL+S ile de kaydedebilirsiniz.)
- Kayıtlı bir Map’ imiz olduğuna göre şimdi onu düzenleyebiliriz. “Drop Sources in this area (Gri Alan)” yazan kısma Source_Model’imizden employees tablosunu seçip, sürükleyerek o alana bırakıyoruz. Aynı şekilde geriye kalan beyaz alan üzerine Target_Model’imizden employees tablosunu seçip, sürükleyerek o alana bırakıyoruz.
- Son olarak Gri alanın sağ kenarının ortasında bulunan halkadan tutarak hedefteki employees tablomuza ok çiziyoruz. O esnada karşımıza bir pencere belirecek: (Attribute Matching) Yani kaynak tablomuz ile hedef tablomuz nasıl eşleşecek ? -> Sütun isimlerini göreyse (By Name), Sütun sırasına göre ise (By Position) butonunu seçiyoruz.
UYARI: isimlerine göre eşleşmesini istiyorsak her yönden aynı olmasına ayrıca dikkat ediniz.(Büyük-Küçük harf gibi.. ) En ufak bir farklılıkta hata alma ihtimaliniz oldukça yüksektir.
- Her Mapping işlemini çalıştırğımızda, tabloyu önce Truncate edip yeniden oluşturmasını istiyorsak, Mapping->Physical Schema üzerinde Target-EMPLOYEES tablomuzu seçtiğimizde, ona dair Properties tabı belirecektir. Properties kısmında TRUNCATE_TARGET_TABLE özelliğinin değerini ‘ True ’ olacak şekilde ayarlıyoruz.
Yeşil Tik işaretine tıklarsak, Mapping işlemi için veri tipi(data type) ya da boyutu(size) gibi herhangi bir uyuşmazlık söz konusu olup olmadığını denetler.
Tüm işlemlerimizi tamamladığımızda menü çubuğunda bulunan Yeşil Üçgen işaretine tıklarsak mapping işlemini başlatacaktır. (Not: Butonun aktif olması için mapping objenizi açık ve aktif olması gerekir.)
Mapping işlemi başarılı bir şekilde sonlandığında Postgre’den Oracle tarafına veri aktarımı tamamlanmış demektir.
Geri bildirim: Yeni dünyalar keşfetmeye devam ediyoruz :) #Bidunyasi.wordpress.com | MyLifeMyPc