Cài đặt và cấu hình Oracle Data Integrator ODI 12 trên window, load dữ liệu từ CSV vào database

Oracle Data Integrator (ODI) là một công cụ tích hợp dữ liệu mạnh mẽ được sử dụng để di chuyển, biến đổi và tải (ETL) dữ liệu giữa các hệ thống khác nhau. Nó cung cấp một nền tảng đồ họa để xây dựng, triển khai và quản lý các quy trình tích hợp dữ liệu phức tạp

Xem chi tiết tại: https://datalinks.vn/oracle-data-integrator-odi-la-gi/

Trong bài viết dưới đây sẽ hướng dẫn các bước cài đặt ODI trên window. ODI yêu cầu chúng ta phải cài đặt Orracle Database và Java bản >= 1.8 trước khi thực hiện.

Download cho window:

ODI tại: https://www.oracle.com/vn/middleware/technologies/data-integrator-downloads.html

Oracle database tại: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

Java: https://www.oracle.com/java/technologies/downloads/#jdk22-windows

Ở đây tôi coi như bạn đã có Oracle database và Java rồi vì trong khuôn khổ bài viết này chúng ta giới thiệu cài đạt ODI thôi. Việc cài đặt Oracle database trên window cũng rất dễ dàng.

Khi tải về ODI và giải nén ra chúng ta có file cài đặt dạng .jar có dung lượng khoảng gần 2GB như sau:

word image 2040 1

word image 2040 2

Để cài đặt chúng ta chạy CMD với quyền administrator như trên và thực hiện lệnh bên dưới trong terminal:

cd c:\Program Files\Java\jdk1.8.0_181\bin

java -jar D:\Downloads\V983389-01\fmw_12.2.1.4.0_odi.jar

Sau khi thực thi sẽ hiện cửa sổ như bên dưới, chúng ta tiến hành thực hiện các bước cài đặt:

word image 2040 3

word image 2040 4

word image 2040 5

word image 2040 6

word image 2040 7

Cài đặt kết thúc thành công, chúng ta tiến hành cấu hình Repository (REPO) cho ODI:

Vào thư mục BIN trong thư mục cài đặt như đường dẫn bên dưới (với trường hợp của các bạn có thể khác, hãy vào nơi mà bạn cài đặt ở bên trên, trong trường hợp của tôi thì là đường dẫn này).

C:\Oracle\Middleware\Oracle_Home\oracle_common\bin

Chạy file rcu_internal.bat với quyền administrator như hình bên dưới:

word image 2040 8

word image 2040 9

word image 2040 10

Nhập vào thông tin login vào oracle database của bạn đã cài đặt trước đó, các thông tin như hình bên dưới bao gồm: service name, hostname, port….

word image 2040 11

word image 2040 12

word image 2040 13

word image 2040 14

Pass: oracle (ví dụ)

Nhập pass và confirm vào 2 mục supervisor và work repository như hình bên dưới và lưu lại pass

word image 2040 15

Pass: oracle (ví dụ)

word image 2040 16

word image 2040 17

word image 2040 18

word image 2040 19

word image 2040 20

Đến đây thông tin cài đặt đã thành công!!!

Cấu hình sử dụng:

Như bạn đã biết thì ODI cần có database để lưu trữ dữ liệu REPO và các thành phần khác. Vì vậy chúng ta sẽ khởi tạo các user và table cho ODI kết nối vào trong oracle database

ODI sử dụng 2 loại REPO là MASTER và WORK => chúng ta sẽ tạo 2 user tương ứng với 2 loại này:

Login vào database Oralce thông qua sqlplus hoặc tool nào mà bạn thường sử dụng sau đó tạo user như bên dưới:

## user cho master

create user duong_master IDENTIFIED BY oracle

DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

alter user duong_master quota UNLIMITED on users;

grant CONNECT, RESOURCE to duong_master;

## user cho work

create user duong_work IDENTIFIED BY oracle

DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

alter user duong_work quota UNLIMITED on users;

grant CONNECT, RESOURCE to duong_work;

Khởi động ODI trên window và thực hiện tạo REPO:

word image 2040 21

word image 2040 22

word image 2040 23

word image 2040 24

word image 2040 25

Pass: oracle (ví dụ)

word image 2040 26

finish => hệ thống khởi tạo

word image 2040 27

word image 2040 28

Kết nối vào repository vừa tạo:

word image 2040 29

word image 2040 30

click OK

word image 2040 31

Như vậy là hiện tại chúng ta đã có Master REPO, để làm việc được thì chúng ta cần có thêm Work REPO nữa => tạo thêm Work REPO như bên dưới:

word image 2040 32

word image 2040 33

word image 2040 34

word image 2040 35

Pass: oracle (ví dụ)

Đến đây chúng ta có 2 REPO, 1 là master, 2 là Work

Để có thể làm việc được thì chúng ta kết nối đến Repo work

Chúng ta cần kết nối đến REPO work đã tạo ở bên trên.

Trong ví dụ này tôi thực hiện load dữ liệu từ file CSV từ máy tính và lưu trữ vào database oracle. Trên Database oracle chúng ta tạo bảng tương ứng để lưu trữ dữ liệu.

Logic các bước LOAD dữ liệu như sau:

Có dữ liệu nguồn là nơi để Extract ra: có thể là Oracle, file, SQL server hoặc bất kể là nguồn nào

Có nơi lưu trữ đích để LOAD: có thể là Oracle, file, SQL server hoặc bất kể là nguồn nào

Trên cả 2 nguồn và đích đều tạo các bước như sau:

Nguồn + Đích:

  • Tạo Physical Architecrute (Topology) nguồn
  • Tạo Physical Architecrute (Topology) đích
  • Tạo Physical Schema (Topology) (tạo từ Architecrute) nguồn
  • Tạo Physical Schema (Topology) (tạo từ Architecrute) đích
  • Tạo Logical Schema (Topology) nguồn
  • Tạo Logical Schema (Topology) đích
  • Tạo Model to Load (Design)
  • Tạo Model to Save (Design)
  • Tạo Mapping (Design)

Các bạn để ý là chúng ta sẽ có 2 Model, chúng sẽ nói chuyện với nhau để trao nhận dữ liệu thông qua việc Mapping thông tin với nhau là các trường trong file CSV và trong database oracle.

File CSV có định dạng là 2 cột, id và name: có 1000 dòng có cấu trúc như bên dưới.

word image 2040 36

word image 2040 37

word image 2040 38

Chọn REPO duong_work đã tạo ở bên trên, nhập user và pass

Chúng ta tạo Physical Architecture:

word image 2040 39

Chọn file nếu muốn load file CSV vào database => new data server

word image 2040 40

word image 2040 41

Tiếp theo chúng ta tạo Physical Schema:

word image 2040 42

Nhập thông tin đường dẫn tới file CSV:

word image 2040 43

Tiếp theo tạo Logical Schema

word image 2040 44

word image 2040 45

Save lại thông tin

Đến đây là chúng ta xong bước tạo topology LOAD

Tiếp theo chúng ta tạo Model LOAD trong tab Design

Mỗi task chúng ta nên tạo 1 folder cho dễ dàng quản lý về sau:

word image 2040 46

Tạo model mới

word image 2040 47

word image 2040 48

Sau đó SAVE lại

Tiếp theo tạo mới datastore từ Model vừa tạo: (click phải chuột vào Model và tạo mới)

word image 2040 49

word image 2040 50

Lưu ý đặt tên: Tên datastore nên trùng với tên file CSV load vào, alias và name để giống nhau.

Trong TAB files: cấu hình như bên dưới

word image 2040 51

file có nội dung các trường cách nhau dấu phẩy ,

heading là 1 dòng, vì dòng đầu tiên là tiêu đề.

word image 2040 52

Ở đây chúng ta có thể chỉnh sửa lại kiểu dữ liệu cho phù hợp với mình mong muốn giữa CSDL nguồn và địch sau đó Save lại.

Như vậy là chúng ta đã xong cấu hình cho phần Nguồn để LOAD dữ liệu vào Datastore.

Việc tiếp theo là làm tương tự cho phần ĐÍCH để nhận dữ liệu từ nguồn chuyển vào, các bước làm cũng tương tự nhưng chúng ta sẽ chọn là Oracle thay vì là File vì chúng ta đang muốn chuyển dữ liệu từ file vào Database.

Topology > Oracle > New Data Server

word image 2040 53

word image 2040 54

Trong phần Connection:

user: là username được tạo trong CSDL oracle chúng ta muốn LOAD data CSV vào

Mục JDBC chọn như bên dưới đây:

word image 2040 55

Nhấn Test connection và test thành công.

word image 2040 56

Tiếp theo tạo Schema cho Physical Architecture:

word image 2040 57

Tên Schema chính là tên user Oracle mà chúng ta kết nối đến ở bên trên:

word image 2040 58

Mục Context:

word image 2040 59

Sau đó SAVE thông tin lại

Tiếp theo tạo Logical Schema cho Physical ở bên trên:

word image 2040 60

Đặt tên và chọn Link Physical

word image 2040 61

Tiếp theo đến tab Designer chúng ta tạo Folder và tạo Model cho việc LOAD data vào database:

Vào mục Model tạo new folder, từ folder đó tạo Model

word image 2040 62

Đặt tên cho Model và chọn thông tin:

word image 2040 63

Trong mục Reverse Engineer chúng ta test load data: nhấn nút Reverse Engineer để load:

word image 2040 64

Xem bảng đã LOAD trong tab Selective Reverse Engineer:

word image 2040 65

=> Bảng Data (id, name) ở trong Schema duong (user) trong database oralce sẽ được sử dụng để insert data vào.

Click vào bảng Data trong Model chúng ta có thể xem chi tiết bảng Data:

word image 2040 66

Vậy là đã Xong phần Model

Tiếp theo chúng ta sẽ tạo Mapping trong mục Project để Map dữ liệu giữa 2 Model với nhau:

Vào Tab Designer, trong mục Project chọn New

word image 2040 67

Tiếp theo trong Project vừa tạo ra có mục Mappings: chúng ta tạo mới 1 mapping:

word image 2040 68

Tiếp theo: màn hình hiện ra khoảng trống để chúng ta kéo thả dữ liệu nguồn và đích

Trong mục Model, Kéo phần Model của mục data nguồn vào

Tromg mục Model, kéo phần Model của mục data đích vào.

Sau đó thực hiện kéo kết nối 2 bảng nguồn và đích lại link vào nhau và verify dữ liệu:

word image 2040 69

Tiếp theo: Click vào tab Physical bên dưới, hiện ra bảng model dạng diagrama:

Click vào DATA_DUONG_AP => Sau đó kéo xuống dưới mục Loading Knowledge Module chọn: LKM SQL to Oracle => sau đó SAVE lại hết thông tin.

Vì sao? Khi dữ liệu từ Source là file CSV load vào ODI là đã được biến đổi thành SQL rồi gọi là AP…từ đó chúng ta chỉ cần Apply SQL vào TARGET là xong./

word image 2040 70

Cuối cùng: Chọn mapping vừa tạo và Run nó, dữ liệu sẽ được load từ CSV vào bảng DATA trong Schema DUONG trong CSDL Oracle database:

word image 2040 71

Kiểm tra lịch sử lệnh đã RUN trong tab Operator:

word image 2040 72

Mở SQL dev => login và kiểm tra dữ liệu trong Database:

word image 2040 73

word image 2040 74

Chúc các bạn thành công !

 

Datalinks.vn

Hello các bạn, mình là Dương Nguyễn tác giả của blog này. Với gần 20 năm làm việc trong lĩnh vực CNTT, VT trong và ngoài nước, mong muốn được chia sẻ kiến thức và kinh nghiệm về database với các bạn đam mê và quan tâm đến lĩnh vực này. Đặc biệt là #OracleDatabase hoặc luyện thi #OCP database admin. Warren Buffett từng nói "Muốn đi nhanh hãy đi một mình, muốn đi xa hãy đi cùng nhau". Các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận