Các bước thực hiện quá trình tích hợp dữ liệu

Một phần của tài liệu Kho dữ liệu và ứng dụng xây dựng hệ thống dữ liệu trợ giúp quyết định về chính sách tiền tệ quốc gia (Trang 61)

a. Mô hình tổng quát

Từ dữ liệu nguồn áp dụng giải pháp nêu trên để đưa dữ liệu vào vùng Staging, sau đó thực hiện việc ETL trước khi đưa dữ liệu vào các bảng Fact.

Báo cáo thống kê Báo cáo tài chính File Dữ liệu nguồn Dữ liệu Atomic Extraction, Tranfomation, Loading Tải dữ liệu vào Facts Tải dữ liệu vào Staging Vùng Staging Log

Hình 3.4 Sơ đồ chi tiết quá trình tích hợp dữ liệu vào kho dữ liệu BCTK

Các bước thực hiện

− Tải toàn bộ dữ liệu từ nguồn vào Staging theo điều kiện lọc đã được thiết lập.

− Thực hiện trích lọc, chuyển đổi và tải dữ liệu vào các bảng dữ liệu tạm (vùng Staging).

− Ghi log dữ liệu lỗi.

− Trích tách, chuyển đổi và tải dữ liệu sạch từ các bảng dữ liệu tạm sang các bảng fact.

− Thực hiện chuyển đổi dữ liệu từ các bảng từ điển của CSDL tác nghiệp BCTK hoặc từ các file Text vào các bảng Dimension

LOAD RATE LOAD DATA TO STAGING LOAD DATA TO ATOMIC TABLE LOAD DATA TO FACTS Lấy dữ liệu về tỷ giá cho bảng T_RATE theo định kỳ hàng ngày Lấy dữ liệu từ DB hoặc flat file vào vùng Staging theo điều kiện lọc được xác định bởi InitliazeScript Đổ toàn bộ dữ liệu từ vùng Staging vào bảng T_ATOMIC_DATA. Quá trình này sẽ thực hiện loại trừ dữ liệu NULL, duplicate, không hợp lệ

Chuyển dữ liệu theo điều kiện của InitliazeScript từ bảng

T_ATOMIC_DATA về các bảng facts tương ứng dựa trên METADATA

TIME

DIMENTION METADATA DIMENTION

LOAD FACTS RATE

LOAD DATA TO FACTS

Load dữ liệu cho bảng Time Dimension

Load MetaData phục vụ cho quá trình tích hợp dữ liệu từ T_ATOMIC_DATA sang facts

Load dữ liệu cho các bảng dimension

Cập nhật lại dữ liệu cho các bảng fact có dữ liệu tiền tệ

Lấy toàn bộ dữ liệu từ nguồn vào facts với điều kiện được lất từ InitliazeScript InitliazeScript T h c h iệ n t đ n g T h c h iệ n b ằn g t ác đ n g củ a co n n g ƣ i

Hình 3.5 Các bước của quá trình tích hợp dữ liệu vào kho dữ liệu BCTK

Quá trình đưa dữ liệu vào DWH cần thiết kế để thực hiện bằng 2 cách: Lập lịch để thực hiện tự động các công việc phải thực hiện hàng ngày như lấy dữ liệu cho các bảng Fact, dữ liệu về tỷ giá,… và thực hiện khi có tác động của con người đối với các công việc chỉ cần làm một lần đầu hoặc những thay đổi hay phát sinh thêm các bảng Dimension.

- Thực hiện tự động:

Tạo Job chạy tuần tự theo các bước :

Load Rate: quá trình lấy dữ liệu từ bảng T_RATE (bảng tỷ gía) vì dữ liệu của bảng này thay đổi theo ngày.

Load Data To Staging: quá trình lấy dữ liệu từ dữ liệu nguồn hoặc từ tệp vào vùng Staging (các bảng tạm) theo điều kiện lọc được thiết lập tại tệp InitliazeScript (chủ yếu là xác định khoảng thời gian lấy dữ liệu).

Load Data To Atomic Table: quá trình lấy dữ liệu từ các bảng tạm ở vùng Staging vào bảng T_ATOMIC_DATA, đồng thời loại bỏ các dữ liệu trùng lặp, giá trị Null, giá trị không hợp lệ.  Load Data To Facts: quá trình phân chia dữ liệu về các bảng

Fact theo định nghĩa tại bảng METADATA. - Thực hiện bằng tác động của con người:

Thực hiện việc tích hợp dữ liệu vào bảng Fact khi có nhu cầu hoặc các Dimension như: (adsbygoogle = window.adsbygoogle || []).push({});

Time Dimension: lấy dữ liệu từ bảng Time Dimension

Metadata: khi có thay đổi về điều kiện để tích hợp dữ liệu từ bảng T_ATOMIC_DATA sang các bảng Facts, cần lấy lại dữ liệu cho bảng Metadata.

Dimension: đây là các dữ liệu ít thay đổi nên không để trong cách lấy tự động mà khi có thay đổi thì có thể lấy qua cách tác động trực tiếp này.

Load Fact Rate: vì tỉ giá thay đổi theo ngày nên trước khi lấy dữ liệu cho các bảng Fact cần lấy lại dữ liệu từ bảng tỉ giá trước.  Load Data to Facts: những bảng Fact nào cần lấy lại dữ liệu sẽ

được khai báo ở InitliazeScript.

b. Quá trình tải dữ liệu từ nguồn vào Staging

Đây là quá trình lấy dữ liệu từ Database hoặc từ tệp đưa vào vùng Staging, cụ thể đưa vào 2 bảng T_Numeric_Data (chứa dữ liệu kiểu số) và T_Text_Data (chứa các kiểu dữ liệu khác kiểu số, thực chất đây là các dữ liệu đặc biệt). Đây là 2 bảng trung gian phục vụ cho quá trình làm sạch dữ liệu.

Xác định nguồn dữ liệu ERROR DATA Dữ liệu số Tách dữ liệu thành 2 loại: Số và loại khác

Lưu dữ liệu vào bảng T_NUMBER_DATA

Lưu dữ liệu vào bảng T_TEXT_DATA Tự động loại bỏ các bản ghi trùng lặp Dữ liệu khác số D li ệu k c nu ll D li ệu n ul l Tách dữ liệu thành 2 loại: Số và loại khác Dữ liệu số

Lưu dữ liệu vào bảng T_NUMBER_DATA

Lưu dữ liệu vào bảng T_TEXT_DATA Tự động loại bỏ các bản ghi trùng lặp Dữ liệu khác số F la t F il e D a ta b a se D li ệu n ul l Dữ liệu khác null Lấy dữ liệu của từng file Lấy danh sách file dữ liệu Lọc dữ liệu theo điều kiện

Hình 3.6 Quá trình tải dữ liệu từ nguồn vào Staging

- Nếu nguồn dữ liệu là Database:

 Lọc dữ liệu theo điều kiện, các điều kiện lọc được thiết lập tại tệp InitliazeScript.

 Kiểm tra dữ liệu, nếu bằng null ghi vào bảng lỗi, nếu có giá trị khác null, thực hiện bước tiếp sau.

 Tách dữ liệu thành 2 loại, với những dữ liệu kiểu số ghi vào bảng T-Numeric_Data, dữ liệu khác kiểu số, ghi vào bảng T_Text_Data (mục đích tách thành 2 table này là để phục vụ cho quá trình làm sạch dữ liệu ở bước sau vì dữ liệu kiểu số và các kiểu dữ liệu khác số có cách làm sạch khác nhau). Trong quá trình ghi dữ liệu, loại bỏ những dữ liệu bị trùng lặp.

- Nếu nguồn dữ liệu từ File :

 Đọc dữ liệu của từng tệp, nếu dữ liệu null ghi vào bảng lỗi, dữ liệu khác null thực hiện bước tiếp sau.

 Tách dữ liệu thành 2 loại, với những dữ liệu kiểu số ghi vào table T-Numeric_Data, dữ liệu khác kiểu số, ghi vào table T_Text_Data. Trong quá trình ghi dữ liệu, loại bỏ những dữ liệu bị trùng lặp.

c. Quá trình tải dữ liệu từ các bảng tạm trong Staging vào bảng T_ATOMIC_DATA

ERROR LOG

Lấy dữ liệu từ

T_NUMERIC_DATA Loại bỏ giá trị 0

Kiểm tra tính hợp lệ của dữ liệu

Ghi dữ liệu vào bảng T_ATOMIC_DATA Lấy dữ liệu từ T_TEXT_DATA Tách dữ liệu thành các trường hợp riêng Tạo bảng dữ liệu trung gian bằng cách cắt chỉ tiêu thành nhiều phần Kiểm tra tính hợp lệ của dữ liệu

Ghi dữ liệu vào bảng T_ATOMIC_DATA Sắp xếp dữ liệu theo của bảng trung gian Kiểm tra: - Có đủ nhóm chỉ tiêu không - Định dạng chỉ tiêu Dữ liệu=0 Dữ liệu hợp lệ Dữ liệu không hợp lệ D li ệu k h ôn g h p lệ Dữ liệu hợp lệ

Hình 3.7 Quá trình tải dữ liệu từ Staging vào bảng T_ATOMIC_DATA

Thực chất của quá trình này là loại những dữ liệu không hợp lệ trước khi ghi vào table T_ATOMIC_DATA. (adsbygoogle = window.adsbygoogle || []).push({});

- Nếu nguồn dữ liệu từ T_NUMERIC_DATA:

 Lấy dữ liệu trong bảng T_Numeric_Data, được loại bỏ giá trị bằng 0 (ghi vào log các dữ liệu có giá trị 0).

 Kiểm tra tính hợp lệ của dữ liệu kiểu số ví dụ như số chữ số thập phân, không phải kiểu số,…Dữ liệu thỏa mãn được ghi vào table T_ATOMIC_DATA, nếu không thảo mãn ghi vào log.

- Nếu nguồn dữ liệu từ T_TEXT_DATA:

 Dữ liệu trong table T_Text_Data được tách thành các trường hợp riêng, vì dữ liệu không phải kiểu số có rất nhiều trường hợp đặc biệt mà để kiểm tra được dữ liệu đó có hợp lệ không đòi hỏi phải tách ra thành nhiều phần nhỏ mới kiểm tra được.

 Tạo các bảng dữ liệu trung gian bằng cách tách chỉ tiêu thành nhiều phần căn cứ vào đặc thù mã chỉ tiêu.

 Đưa dữ liệu vào bảng trung gian cho phù hợp

 Kiểm tra tính hợp lệ của dữ liệu kiểu số ví dụ như số chữ số thập phân, không phải kiểu số,…Dữ liệu thỏa mãn được ghi vào table T_ATOMIC_DATA, nếu không thảo mãn ghi vào log.

d. Quá trình tải dữ liệu từ bảng T_ATOMIC_DATA sang các bảng fact

Lọc dữ liệu cần chuyển đổi từ bảng T_ATOMIC_DATA

Đọc METADATA để lấy các thông tin

(Fact_name, Dimention,…) Phân tách chỉ tiêu thành chỉ tiêu gốc, mã số thống kê Lookup vào các bảng Dimention để lấy khóa

thay thế

Kiểm tra tính hợp lệ của thông tin

Kiểm tra dữ liệu liên quan đến tiền tệ cần

qui đổi ra VND

Qui đổi dữ liệu ra VND

Ghi dữ liệu vào Facts

Ghi dữ liệu vào Facts

ERROR LOG

Dữ liệu không hợp lệ

Dữ liệu hợp lệ

Dữ liệu không qui đổi

Dữ liệu gốc + qui đổi

Hình 3.8 Quá trình tải dữ liệu từ bảng T_ATOMIC_DATA sang các bảng fact

Đây là quá trình đã có dữ liệu sạch, phải phân phối vào các bảng Fact tương ứng.

− Lọc dữ liệu cần chuyển đổi từ T_ATOMIC_DATA: xác định cần chuyển đổi những dữ liệu nào.

− Đọc các thông tin cần thiết từ metadata để biết tên bảng Fact, các Dimension liên quan.

− Phân chỉ tiêu thành chỉ tiêu gốc, mã số thống kê. − Look up vào các Dimension để lấy khóa thay thế.

− Kiểm tra tính hợp lệ của dữ liệu, những dữ liệu không hợp lệ ghi vào tệp log, dữ liệu hợp lệ được kiểm tra tiếp xem có cần qui đổi ra VND không, nếu có thì qui đổi trước khi ghi vào bảng facts. (adsbygoogle = window.adsbygoogle || []).push({});

e. Cập nhật dữ liệu cho các bảng dimension

Việc chuyển dữ liệu cho các Dimension không thực hiện tự động mà khi nào có thay đổi mới tiến hành chuyển đổi trừ dữ liệu về tỷ giá.

Xác định bảng hoặc file dữ liệu

nguồn

Loại bỏ dữ liệu không hợp lệ

So sánh với dữ liệu đang tồn tại trong

Dimention

Cập nhật dữ liệu cho Dimention

Thêm các dòng dữ liệu mới cho

Dimention Cập nhật dữ liệu lịch sử (EFF_FROMDATE, EFF_TO_DATE) T ờn g h ợp 1 T ờn g h ợp 2

Hình 3.9 Quá trình cập nhật dữ liệu cho các bảng dimension Các bước tiến hành:

− Xác định bảng hoặc file dữ liệu cần chuyển đổi.

− Loại bỏ những dữ liệu không hợp lệ trước khi cập nhật vào DWH. − Xác định cập nhật dữ liệu đã có hay thêm dòng mới:

 Nếu cập nhật dữ liệu đang tồn tại: so sánh với dữ liệu đang tồn tại trong Dimension để tìm ra dòng dữ liệu thay đổi để cập nhật.  Nếu là thêm dòng dữ liệu mới cho bảng Dimension thì thêm

từ ngày) và cột eff_to_date (hết hiệu lực ngày). Đây là 2 cột dùng cho việc khi phải thay đổi mã chỉ tiêu thì trong báo cáo vẫn có thể lấy được dữ liệu tương ứng trong từng giai đoạn.

Chương IV

TỔ CHỨC KHAI THÁC BÁO CÁO VỚI KHO DỮ LIỆU 4.1 Giải pháp xây dựng hệ thống khai thác báo cáo

Sau khi đã có kho dữ liệu DWH với các bảng Fact chứa dữ liệu theo các chỉ tiêu và các bảng Dimension về các chiều mà hệ thống khai thác báo cáo sẽ sử dụng, việc tổ chức khai thác báo cáo nhằm hướng tới người sử dụng cuối được thuận tiện. Tại các đơn vị khai thác báo cáo (các Vụ, Cục NHTW), người sử dụng có thể qua mạng LAN của NHNN truy cập được vào hệ thống báo cáo để tìm kiếm thông tin theo các mẫu biểu có sẵn hoặc tự thiết kế các mẫu biểu theo yêu cầu đột xuất dưới nhiều dạng như bảng biểu, đồ thị,… Chính vì yêu cầu này cần phải tổ chức kho dữ liệu DWH thành các thành phần (các lớp) dữ liệu cho từng đơn vị khai thác, trong đó chỉ bao gồm các chỉ tiêu mà đơn vị được phép khai thác. Công cụ khai thác dữ liệu BusinessObjects (BO) sẽ giúp cho việc giải quyết vấn đề này một cách dễ dàng.

Môi trường tổ chức khai thác báo cáo của BO

Môi trường báo cáo thông thường

Môi trường báo cáo bảo mật của Business Objects

Để khai thác báo cáo được dễ dàng từ DWH, BO xây dựng 1 tầng ngữ nghĩa (Universe) trong đó định nghĩa các lớp, các quan hệ giữa các lớp mà nguồn lấy từ các bảng Fact, các Dimension của DWH.

Kiến trúc của BO với tầng ngữ nghĩa

Báo cáo thống kê Báo cáo tài chính File DỮ LIỆU NGUỒN TÍCH HỢP DỮ LIỆU QUẢN TRỊ HỆ THỐNG TẦNG NGỮ NGHĨA (Universe) XÂY DỰNG VÀ KHAI THÁC BÁO CÁO PHÂN PHỐI BÁO CÁO DWH DWH Data Integrator Data Integrator Supervisor Supervisor Designer Designer Business Objects Business Objects Web Intelligence Web Intelligence Broadcast Agent Broadcast Agent BI Portal BI Portal Reports

Hình 4.2 Kiến trúc của BO với tầng ngữ nghĩa

4.2 Chiến lược xây dựng hệ thống báo cáo Chiến lược xây dựng Universe

Sử dụng BO Designer để xây dựng lớp ngữ nghĩa theo chiến lược sau : gồm 2 lớp, một lớp cơ sở và một lớp báo cáo. Trong đó

- Lớp cơ sở: lấy trực tiếp từ CSDL và chia thành 2 loại:

 Lớp cơ sở - theo Dimension: tương ứng với từng Dimension  Danh sách Lớp cơ sở - theo Dimension (Phụ lục)

 Lớp cơ sở - theo nhóm chỉ tiêu: mỗi universe tương ứng với 1 nhóm trong bảng chỉ tiêu và lấy dữ liệu từ nhiều Fact, tên các universe tương ứng với mã của các chỉ tiêu gốc (adsbygoogle = window.adsbygoogle || []).push({});

Danh sách Lớp cơ sở - theo nhóm chỉ tiêu (Phụ lục)

- Lớp báo cáo: đây là lớp ngữ nghĩa xây dựng cho các Vụ, Cục. Mỗi Vụ, Cục sẽ có một lớp báo cáo. Mỗi báo cáo sẽ là 1 lớp con trong lớp báo cáo. Lớp báo cáo được lấy dữ liệu từ lớp cơ sở.

Ví dụ : Lớp cơ sở - theo Dimension

Với Dimension về thời gian TD_Time sẽ xây dựng thành 1 lớp cơ sở tên là D-Thoi gian tên tệp lưu trong CSDL sẽ là D_ThGian.unv

Ví dụ : Lớp cơ sở - theo nhóm chỉ tiêu

NhomA (NhomA.unv) : hoạt động tín dụng

Ví dụ Lớp báo cáo của các Vụ Cục

N Tên tệp Giải thích

1

1 R_VCNH.unv Vụ các ngân hàng

2

2 R_VTTNH.unv Vụ thanh tra ngân hàng nhà nước

3 3 R_VTD.unv Vụ tín dụng 4 4 R_VCSTT.unv Vụ chính sách tiền tệ 5 5 R_VTDHT.unv Vụ các tổ chức tín dụng hợp tác 6

6 R_VTKS.unv Vụ tổng kiểm soát

7

7 R_CPHKQ.unv Cục phát hành kho quĩ

8

- Báo cáo theo mẫu có sẵn

 Dựa trên từng Universe của từng Vụ, Cục

 Mỗi báo cáo lấy dữ liệu từ 1 lớp tương ứng trong lớp báo cáo theo mẫu có sẵn và các lớp mã số thống kê.

- Báo cáo phân tích số liệu theo chỉ tiêu và các mã thống kê

R-Vu chinh sach tien te

 Dựa trên từng Universe của từng Vụ, Cục

 Tất cả báo cáo lấy dữ liệu từ các lớp tương ứng với các nhóm chỉ tiêu phân tích (bắt đầu bằng PT_) và các lớp mã số thống kê.

4.3 Các bước xây dựng báo cáo

− Phân tích nội dung báo cáo

− Xây dựng lớp ngữ nghĩa (universe) bằng BO Designer − Phân phối các Universe vào Repository

− Xây dựng báo cáo dựa trên universe được thiết kế sử dụng WebI − Phân phối các báo cáo xây dựng vào Repository

− Xem các báo cáo bằng BI Portal (InforView) (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.3 Các thành phần của BO Repository

4.4 Mô hình khai thác báo cáo

− Cục CNTH: là đơn vị quản lý và hỗ trợ về mặt công nghệ tin học cho NHTW, vì vậy ITDB sẽ là đơn vị chịu trách nhiệm quản lý và vận hành toàn bộ hệ thống. Universe Domain Security Domain Document Domain BusinessObjects Repository

Kho dữ liệu của BO là một CSDL dùng để quản lý các đối tượng nghiệp vụ, các lớp ngữ nghĩa và các báo cáo

Môđun giám sát là một công cụ cập nhật dữ liệu đồ thị thời gian thực cho kho dữ

− Các Vụ, Cục và các đơn vị trực thuộc NHTW: trực tiếp quản lý, tạo mới và khai thác các báo cáo trong phạm vi cục bộ. Người sử dụng tại

Một phần của tài liệu Kho dữ liệu và ứng dụng xây dựng hệ thống dữ liệu trợ giúp quyết định về chính sách tiền tệ quốc gia (Trang 61)