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:
Để 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:
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:
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….
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
Pass: oracle (ví dụ)
Đế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:
Pass: oracle (ví dụ)
finish => hệ thống khởi tạo
Kết nối vào repository vừa tạo:
click OK
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:
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.
Chọn REPO duong_work đã tạo ở bên trên, nhập user và pass
Chúng ta tạo Physical Architecture:
Chọn file nếu muốn load file CSV vào database => new data server
Tiếp theo chúng ta tạo Physical Schema:
Nhập thông tin đường dẫn tới file CSV:
Tiếp theo tạo Logical Schema
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:
Tạo model mới
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)
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
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 đề.
Ở đâ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
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:
Nhấn Test connection và test thành công.
Tiếp theo tạo Schema cho Physical Architecture:
Tên Schema chính là tên user Oracle mà chúng ta kết nối đến ở bên trên:
Mục Context:
Sau đó SAVE thông tin lại
Tiếp theo tạo Logical Schema cho Physical ở bên trên:
Đặt tên và chọn Link Physical
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
Đặt tên cho Model và chọn thông tin:
Trong mục Reverse Engineer chúng ta test load data: nhấn nút Reverse Engineer để load:
Xem bảng đã LOAD trong tab Selective Reverse Engineer:
=> 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:
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
Tiếp theo trong Project vừa tạo ra có mục Mappings: chúng ta tạo mới 1 mapping:
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:
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./
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:
Kiểm tra lịch sử lệnh đã RUN trong tab Operator:
Mở SQL dev => login và kiểm tra dữ liệu trong Database:
Chúc các bạn thành công !