All about Oracle Technologies

Thursday 5 November 2015

Oracle Data Integrator 11g - Nạp dữ liệu từ XML vào Oracle Database

Bài viết này sẽ giới thiệu cách nạp dữ liệu từ file XML vào trong Oracle Database.

(Hình 1) 
Kịch bản thực hiện: dùng ODI để nạp dữ liệu từ 1 file XML vào 1 bảng trong Oracle Database.
1. Chuẩn bị:
- Đầu vào: file regions.xml có nội dung như sau:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<regions>
 <region>
  <id>10</id>
  <name>North West Europe</name>
 </region>
 <region>
  <id>11</id>
  <name>South Europe</name>
 </region>
</regions>
- Đầu ra: dữ liệu trong file regions.xml được nạp vào bảng REGIONS trong Oracle Database. Bảng REGIONS có cấu trúc như sau:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
CREATE TABLE regions
(
    region_id     NUMBER,
    region_name   VARCHAR2 (25 BYTE)
);

ALTER TABLE regions
ADD CONSTRAINT reg_id_pk PRIMARY KEY (region_id);

ALTER TABLE regions
ADD CONSTRAINT region_id_nn CHECK ("REGION_ID" IS NOT NULL);
- Công cụ: ODI Studio

2. Các bước thực hiện:
(Hình 2)  
2.1 Cấu hình TOPOLOGY:
2.1.1 Cấu hình Physical Architecture:
Bước 1: khai báo Physical Architecture cho file XML
- Tạo New Data Server
(Hình 3)  
- Thẻ Definition: khai báo Name
(Hình 4)  
- Thẻ JDBC: khai báo JDBC Driver và JDBC Url
(Hình 5)  
 - Khai báo xong bấm Test Connection để kiểm tra kết nối
(Hình 6)  
- Tạo New Physical Schema
(Hình 7)  
- Tab Definition: chọn giá trị cho Schema (Schema) và Schema (Work Schema)
(Hình 8)  
Bước 2: khai báo Physical Architecture cho Oracle Database
- Tạo New Data Server
(Hình 9)  
- Thẻ Definition: khai báo Name, User và Password
(Hình 10) 
- Thẻ JDBC: khai báo JDBC Driver và JDBC Url
(Hình 11) 
- Khai báo xong bấm Test Connection để kiểm tra kết nối
(Hình 12) 
- Tạo New Physical Schema
(Hình 13)
 - Thẻ Definition: chọn Schema (Schema) và Schema (Work Schema)
(Hình 14)

2.1.2 Cấu hình Logical Architecture
Bước 1: khai báo Logical Architecture cho file XML
- Tạo New Logical Schema
(Hình 15) 
- Thẻ Definition: khai báo Name
 (Hình 16) 
Bước 2: khai báo Logical Architecture cho Oracle Database
* Lưu ý: ở bước này nếu như tùy chọn Oracle không hiển thị thì ta bỏ chọn Hide Unused Technologies như hình để hiện thị mục này.
(Hình 17) 
- Tạo New Logical Schema
(Hình 18) 
- Thẻ Definition: khai báo Name
(Hình 19) 

2.1.3 Cấu hình Contexts
- Tạo New Context
(Hình 20) 
- Thẻ Definition: khai báo Name
(Hình 21) 
- Thẻ Schemas: chọn Physical Schemas tương ứng với các Logical Schemas như hình
(Hình 22) 

2.2 Cấu hình DESIGNER
2.2.1 Cấu hình Models
Bước 1: cấu hình Model cho file XML
- Tạo New Model
(Hình 23) 
- Thẻ Definition: khai báo Nam, Code, Technology, Logical Schema
(Hình 24) 
- Thẻ Reverse Engineer: chọn Standard, Context rồi bấm chọn Reverse Engineer
(Hình 25) 
- ODI sẽ đọc cấu trúc file XML và hiển thị như hình
(Hình 26) 
- Kiểm tra nội dung node region có trong file XML
(Hình 27) 
- Nội dung node region được hiện thị trên màn hình
(Hình 28) 

Bước 2: cấu hình model cho Oracle Database
- Tạo New Model
(Hình 29) 
- Thẻ Definition: khai báo Name, Code, Technology và Logical Schema
(Hình 30) 
- Thẻ Reverse Engineer: chọn Standard, Context
(Hình 31) 
- Thẻ Selective Reverse-Engineering: chọn như hình
(Hình 32) 

2.2.1 Cấu hình Projects
Bước 1: tạo Project
- Tạo New Project
(Hình 33) 
- Thẻ Definition: khai báo Name
(Hình 34) 
Bước 2: cấu hình Knowledge Modules
- Chọn Import Knowledge Modules...
(Hình 35) 
- Chọn các Modules như hình
(Hình 36) 
Bước 3: cấu hình Interfaces
- Chọn New Interface
(Hình 37) 
- Thẻ Definition: khai báo Name
(Hình 38) 
- Chọn thẻ Mapping
(Hình 39) 
- Kéo thả Source Model vào vùng Source; Target Model vào vùng Target. Chọn No (Automatic Mapping)
(Hình 40) 
- Kéo từng trường bên Source để map tương ứng với từng trường bên Target
(Hình 41) 
- Chọn thẻ Flow để kiểm tra
(Hình 42) 
- Chọn Execute để thực hiện việc import dữ liệu từ file XML vào bảng REGIONS trong Oracle Database
(Hình 43) 
- Chọn OK
(Hình 44) 
- Query bảng REGIONS để kiểm tra kết quả
(Hình 45) 
** Chúng ta có thể kiểm tra các bước ODI đã thực hiện như hình sau:
(Hình 46)

0 comments :

Post a Comment