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ư:
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 há 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.
- 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.
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 rư ờn g h ợp 1 T rư ờ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
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)
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