Rabu, 14 Maret 2012

Moving Data

Moving Data


Metode pemindahan data pada Oracle Database 10G memiliki beberapa metode, diantaranya:
External Table

Dalam manajemen database Oracle, tak jarang kita harus membaca data dari berbagai sumber dari RDBMS lain seperti MySQL, SQL Server atau data yang berupa file text. Pada kesempatan ini akan dibahas bagaimana membaca atau upload data dari file text ke dalam database Oracle.
Oracle menyediakan salah satu cara yang sangat mudah untuk membaca data yang berupa file text yaitu External Table. External table mulai dikenalkan pada Oracle 9i sebagai komplemen dari SQL*Loader yang merupakan tool untuk melakukan loading data dari flat file (text file) ke dalam database Oracle. External table bersifat read-only, Anda tidak bisa melakukan operasi insert,update dan delete pada external table. User database yang bisa membuat external table adalah user yang mempunyai hak untuk mengakses atau membuat objek directory. Selain itu yang harus Anda perhatikan adalah format data dari file text. Setiap format data akan ditangani secara berbeda.
Berikut ini adalah gambar ilustrasi external table :

File yang akan diakses harus bisa dibaca oleh Oracle process maka langkah pertama adalah membuat directory dan memberikan akses pada direktori tersebut.
$cd /opt/data
$mkdir customer
$ls -l /opt/data
drwx------ 2 oracle oinstall 4096 Mar 1 17:05 customer
simpan file customer.csv kedalam direktori /opt/data/customer
contoh content dari data customer.csv adalah sebagai berikut
1,massri,massri@nailuvar.com,bandung
2,nindri,nindri@nailuvar.com,bojongsoang
Langkah berikutnya adalah membuat direktori tersebut di oracle dengan memberikan hak read dan write
SQL> connect / as sysdba
Enter password:
Connected.
SQL> create or replace directory cust_data_dir
2 as '/opt/data/customer';

Directory created.

SQL> grant read,write on directory cust_data_dir to hr;

Grant succeeded.
langkah terakhir adalah membuat external table untuk data diatas
SQL> connect hr
Enter password:
Connected.
SQL> create table customer_ext
2 ( empl_id varchar2(3),
3 name varchar2(50),
4 email varchar2(100),
5 city varchar2(40)
6 )
7 organization external
8 ( default directory cust_data_dir
9 access parameters
10 ( records delimited by newline
11 fields terminated by ','
12 )
13 location ('customer.csv')
14 );

Table created.
Nah sekarang kita sudah mempunya table dengan nama customer_ext dan kita bisa melakukan operasi SQL select untuk menambilkan data tersebut seperti normal table.
SQL> select * from customer_ext;

EMP NAME EMAIL CITY
--- ---------- ----------------------- ---------
1 massri massri@nailuvar.com bandung
2 nindri nindri@nailuvar.com bojongsoang


SQL Loader
SQL Loader sering digunakan untuk mengatasi kendala jaringan. Misalkan perusahaan punya kantor cabang yang tidak tersambung online dengan pusat; data transaksi biasanya dikirim ke pusat dalam bentuk text file; di pusat, data tersebut kemudian di-load ke database pakai SQL Loader.
SQL Loader juga sering digunakan untuk me-load data dari system yang berbeda. Misalkan transaksi di-handle oleh database non Oracle, sementara datawarehouse menggunakan Oracle. Nah, data transaksi dari non Oracle ini kemudian di-export ke dalam text file, dan kemudian di-import ke Oracle pakai SQL*Loader.
Misalkan saya punya file penjualan.dat yang berisi:
3286;23-DEC-08;SEMARANG
3287;24-DEC-08;SURABAYA
3288;25-DEC-08;MAKASAR
3289;26-DEC-08;MEDAN
3290;26-DEC-08;MAGELANG TENGAH
File penjualan.dat tersebut akan saya load ke tabel penjualan:
CREATE TABLE penjualan
( no_invoice NUMBER,
tgl_jual DATE,
area varchar2(10));
Langkap pertama, buat control file yang berisi parameter-parameter untuk SQL Loader. Misalkan saya beri nama penjualan.ctl.
load data
APPEND
into table PENJUALAN
fields terminated by ";"
TRAILING NULLCOLS
(no_invoice,tgl_jual,area)
Langkah selanjutnya, load data di penjualan.dat ke tabel PENJUALAN. Gunakan perintah berikut:
sqlldr USERID=test/test CONTROL=penjualan.ctl, DATA=penjualan.dat, LOG=penjualan.log, BAD=penjualan.bad
Parameter untuk sqlldr adalah:
1. USERID: user dan password ke database Oracle
2. CONTROL: control file yang akan digunakan
3. DATA: file (data) yang akan di-load
4. LOG: file untuk menyimpan log dari proses loader
5. BAD: file untuk menyimpan data yang tidak diprose
Setelah menjalankan sqlldr di atas, lihat lognya di file penjualan.log. Oo… ternyata ada error:
Record 5: Rejected - Error on table PENJUALAN, column AREA.
ORA-12899: value too large for column "TEST"."PENJUALAN"."AREA" (actual: 15, maximum: 10)
Record (baris) kelima tidak diproses karena lebar kolom AREA hanya 10 karakter, sementara nilai yang dimasukkan panjangnya 15 karakter (MAGELANG TENGAH). Record yang tidak diposes ini ditaruh di file penjualan.bad. Sekarang coba query ke tabel PENJUALAN, data yang masuk hanya 4 record.
SQL> select * from penjualan;

NO_INVOICE TGL_JUAL AREA
---------- --------- ----------
3286 23-DEC-08 SEMARANG
3287 24-DEC-08 SURABAYA
3288 25-DEC-08 MAKASAR
3289 26-DEC-08 MEDAN

SQL Pump (Eksport dan Import)
Data Pump ekspor
Manfaat Oracle’s Data Pump memiliki kecepatan tinggi dalam mentransfer data dari satu database ke database yang lain. Contoh, anda mungkin ingin mengekspor sebuah tabel dan tabel ini terhubung dengan index dari satu database dan impor tabel ke dalam database lain.
Untuk informasi mengenai Data Pump lihat di Oracle Database Utilities Guide.
Pada maintenance page klik Export to Files untuk menggunakan Data Pump menuliskan data ke dalam suatu file.

1. Pada halaman pertama, anda pilih apa yang anda ingin ekspor, dan masukkan login
2. Jika anda memilih skema atau tabel untuk tipe ekspor, halaman selanjutnya akan meminta anda memilih sekelompok skema atau tabel yang ingin anda ekspor.
3. Halaman Option adalah langkah selanjutnya, jika anda memilih ekspor database anda akan menuju halaman ini setelah memilih tipe ekspor
4. Halaman selanjutnya adalah files. Anda gunakan halaman files untuk menrincikan nama direktori dan nama file
5. Halaman selanjutnya adalah Schedule. Anda menggunakan halaman Schedule untuk mengekspor pekerjaan
6. Halaman terakhir adalah Review. Anda menggunakan halaman review untuk menampilkan kode PL/SQL untuk mengenerate perintah ekspor dengan selection yang anda buat di halaman sebelumnya.
Setelah pekerjaan di submit, klik View Job untuk mengawasi proses pekerjaan



Data Pump Impor
Menggunakan Data Pump Impor untuk memanggil data yang diekstrak menggunakan Data Pump Ekspor. Pada halaman Maintenance klik Import from Files untuk menggunakan Data Pump Impor untuk membaca file-file yang di tulis menggunakan Data Pump Ekspor kembali ke database
1. Files : Menggunakan halaman Files untuk menunjukkan bagian dan nama dari file impor pada database server.Selanjutnya anda harus memilih satu dari tiga pilihan impor yang mungkin apakah untuk mengimpor seluruh file, perinci schema, atau perinci tabel. Anda juga bisa memilih menghasilkan file log lalu memasukkan credential dalam field host Username dan Host Password.
2. Select Object : Halaman ini hanya ditampilkan ketika anda memilih pilihan di halaman files untk memilih objek khusus untuk impor. Menggunakan halaman ini untuk memilih user yang ingin di impor dari user – user yang ada di list dan memindahkan mereka ke user list yang dipilih.
3. Re-Mapping : Halaman ini hanya di tampilkan jika anda ingin memilih objek di halaman Select Objeck. Menggunakan halaman ini untuk menunjukkan apakah mengimpor masing-masing data user ke dalam skema user yang sama atau mengimpor ke dalam skema user yang berbeda sesuai yang ditunjukkan di field Source User dan Destination User.
4. Options : Menggunakan halaman options untuk mengatur options untuk menggunakan kembali file data, object creation error, dan index yang tidak digunakan.
5. Schedule : Menggunakan halaman Schedule untuk menjadwalkan prosedur impor sebagai pekerjaan didalam job system.
6. Review : Menggunakan halaman Review untuk menampilkan kode PL/SQL untuk perintah import yang dihasilkan oleh selection yang anda buat di halaman sebelumnya dari wizard. Anda juga bisa mengubah kode PL/SQL secara manual atau klik Import untuk memulai proses impor.
Setelah pekerjaan disubmit, klik View Job untuk mengawasi proses sari pekerjaan.



SQL Pump dapat menggantikan fitur SQL * Loader dan Table External, karena fiturnya yang sangat lengkap. Sebagai contoh export dan import yang sempurna untuk jaringan database jika semisal kita melakukan cloning database.

Tidak ada komentar: