Professional Documents
Culture Documents
MỤC LỤC
CHƯƠNG I:TỔNG QUAN VỀ CƠ SỞ THỰC TẬP VÀ ĐỀ TÀI NGHIÊN CỨU..............................7
1.1. TỔNG QUAN VỀ CÔNG TY GIẢI PHÁP PHẦN MỀM TÀI CHÍNH FSS...................................7
1.1. 1.Giới thiệu chung về công ty FSS...............................................................................................7
1.1.2. Thực trạng hoạt động tại công ty...............................................................................................9
1.2. TỔNG QUAN VỀ ĐỀ TÀI............................................................................................................10
1.2.1. Lý do chọn đề tài.....................................................................................................................10
1.2.2. Mục tiêu và phạm vi nghiên cứu..............................................................................................11
1.2.3. Phương pháp và phạm vi nghiên cứu.......................................................................................11
1.2.4. Nội dung đề tài........................................................................................................................11
CHƯƠNG II: CƠ SỞ PHƯƠNG PHÁP LUẬN....................................................................................12
2.1. LÝ THUYẾT KHO DỮ LIỆU(DATA WAREHOUSE)................................................................12
2.1.1.Tổng quan về kho dữ liệu.............................................................................................................12
2.1.2. Đặc trưng kho dữ liệu..............................................................................................................12
2.1.3. Kiến trúc kho dữ liệu...............................................................................................................14
2.1.4. Lược kho dữ liệu......................................................................................................................16
2.1.5.Thiêt kế vật lý...........................................................................................................................17
2.1.6. Đối tượng trong kho dữ liệu.....................................................................................................18
2.1.7. Datamart, EDW trong kho dữ liệu và Bussiness Intelligence..................................................19
2.2.HIỆN TRẠNG HỆ THỐNG KHO DỮ LIỆU TRONG NGÂN HÀNG BIDV................................22
2.2.1. Tổng quan hệ thống báo cáo trong ngân hàng..........................................................................22
2.2.2. Kiến trúc của kho dữ liệu trong ngân hàng..............................................................................22
2.2.3 Đánh giá các mặt hạn chế của hệ thống kho dữ liệu hiện tại.....................................................23
2.2.4. Một số giải pháp công nghệ mới về kho dữ liệu......................................................................25
2.2.5.Kết luận....................................................................................................................................26
CHƯƠNG III: ỨNG DỤNG QUY TRÌNH ETL VÀO XÂY DỰNG QUẢN LÝ THÔNG TIN GIAO
DỊCH NGÂN HÀNG BIDV VÀ THỰC HÀNH ĐẨY DỮ LIỆU TỪ SATGING LÊN DATAMART
.................................................................................................................................................................. 27
3.1. GIỚI THIỆU VỀ CÔNG CỤ..........................................................................................................27
3.1.1.Giới thiệu về công cụ Designer Client......................................................................................27
3.1.2.Giới thiệu về công cụ Dbeaver..................................................................................................29
3.2. Khái quát quy trình ETL và mục tiêu thiết kế kho dữ liệu..............................................................33
3.2.1. Khái quát quy trình ETL trong kho dữ liệu..............................................................................33
1
Nguyễn Quang Hưng Chuyên Đề Thực Tập
2
Nguyễn Quang Hưng Chuyên Đề Thực Tập
3
Nguyễn Quang Hưng Chuyên Đề Thực Tập
4
Nguyễn Quang Hưng Chuyên Đề Thực Tập
5
Nguyễn Quang Hưng Chuyên Đề Thực Tập
6
Nguyễn Quang Hưng Chuyên Đề Thực Tập
7
Nguyễn Quang Hưng Chuyên Đề Thực Tập
vàng, sàn giao dịch hàng hóa, core giao dịch chứng khoán của FSS đều được đánh giá
thuộc loại sản phẩm tốt nhất trên thị trường Việt Nam.
Cam kết lâu dài
FSS luôn cam kết cao và lâu dài với khách hàng và thị trường. Các dự án do FSS triển
khai có tỷ lệ thành công 100%. Ngoài ra, FSS liên tục đầu tư vào phát triển sản phẩm và
đội ngũ nhằm mục đích cung cấp được các sản phẩm và dịch vụ tốt nhất không những
hiện tại mà cả tương lai. Một trong những mục tiêu chiến lược của FSS là đồng hành
cùng khách hàng trong suốt quá trình phát triển của khách hàng.
Quy trình phù hợp
FSS không áp dụng một quy trình xây dựng và triển khai phần mềm chung cho tất cả các
dự án. Ở FSS, mỗi loại hình dự án được nghiên cứu, xây dựng và áp dụng một quy trình
phù hợp, bao gồm từ tổ chức dự án, các bước tiến hành dự án đến các mẫu biểu chi tiết
cho loại hình dự án đó.
LĨNH VỰC HOẠT ĐỘNG
FSS hoạt động trong lĩnh vực cung cấp và triển khai các sản phẩm dịch vụ phần mềm cho
các ngân hàng, công ty chứng khoán và các tổ chức tài chính. Hiện tại, FSS cung cấp và
triển khai các sản phẩm dịch vụ phần mềm cho 3 lĩnh vực chính:
Cung cấp và triển khai hệ thống core giao dịch chứng khoán.
Triển khai hệ thống Data warehouse & Business Intelligence cho các ngân hàng.
Cung cấp các dịch vụ tư vấn, phát triển và triển khai phần mềm theo yêu cầu cho các
khách hàng lớn như Tổng cục thuế, Trung tâm Lưu ký Chứng khoán Việt Nam....
Vào năm 1977, Larry Ellison, Bob Miner, và Ed Oates thành lập một công ty và đặt tên là
Relation Software Incorporated(RSI). Công ty này xây dựng một hệ quản trị cơ sở dữ liệu
gọi là Oracle. Ellison, Miner và Oates quyết định phát triển hệ này bằng C và giao tiếp
SQL. Ngay sau một thời gian ngắn, họ đưa ra phiên bản một như một nguyên mẫu. Năm
1979, RSI phân phối sản phẩm đầu tiên cho khách hàng: hệ quản trị cơ sở dữ liệu Oracle
phiên bản 2, làm việc trên Digital PDP-11 chạy hệ điều hành RSX-11 và ngay sau đó
chuyển sang hệ thống DEC VAX.
Năm 1983 phiên bản 3 được giới thiệu với những thay đổi trong ngôn ngữ SQL. Không
như các phiên bản trước đây , phiên bản 3 được viết toàn bộ bằng C. Vào thời điểm này ,
RSI được đổi tên thành Oracle Corporation.
Phiên bản 4 được phát hành vào năm 1984. Phiên bản 5 được giới thiệu vào năm 1985,
là mốc lịch sử vì nó đưa công nghệ Client/ Server vào thị trường với việc sử dụng
SQL*Net.
8
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Năm 1988, Oracle đưa ra phiên bản 6, giới thiệu việc khoá ở mức thấp. Oracle 7 được
phát hành năm 1992 bao gồm nhiều thay đổi kiến trúc về bộ nhớ, CPU và tiện ích xuất
/nhập. Năm 1997 Oracle giới thiệu Oracle8, thêm phần mở rộng đối tượng cũng như
nhiều tính năng và công cụ quản trị mới đặc biệt Oracle 8i phiên bản hỗ trợ nhiều tính
năng mới và đặc biệt là các ứng dụng cơ sở dữ liệu Internet.
1.1.2. Thực trạng hoạt động tại công ty
Hệ thống giao dịch chứng khoán FLEX
FLEX là hệ thống phần mềm quản lý và giao dịch chứng khoán được thiết kế dựa trên
kiến trúc nền tảng tài chính (financial framework), với các tham số linh hoạt, cho phép
các công ty chứng khoán vừa đẩy mạnh kinh doanh bằng cách đa dạng hóa sản phẩm, vừa
kiểm soát được các rủi ro gắn liền với các sản phẩm đó. FLEX cũng hỗ trợ tự động hóa
hoàn toàn quy trình giao dịch của công ty chứng khoán, tối ưu hóa hiệu quả hoạt động
của công ty chứng khoán.
Những đặc điểm nổi bật của Hệ thống quản lý và giao dịch chứng khoán FLEX bao gồm:
• Giao dịch trực tuyến: các giao dịch được hiện từ xa, mọi lúc, mọi nơi và an toàn qua tất
cả các kênh giao dịch web trading, home trading, mobile trading.
• Tham số linh hoạt cho phép các công ty chứng khoán thiết kế các sản phẩm nghiệp vụ
và chính sách cho nhà đầu tư đa dạng, linh hoạt; đặc biệt là các sản phẩm và dịch vụ tài
chính: margin, ứng trước, cầm cố, bảo lãnh...
• Kiểm soát rủi ro chặt chẽ: rủi ro quy trình, rủi ro sản phẩm, rủi ro từ phía nhà đầu tư, rủi
ro chính sách…
• Tự động xử lý nhiều loại nghiệp vụ
• Tích hợp dễ dàng với các hệ thống khác như: hệ thống giao dịch của Sở giao dịch chứng
khoán, hệ thống core banking của Ngân hàng, phần mềm kế toán nội bộ, hệ thống đặt
lệnh Bloomberg, Reuters…
• Resfull Open API: Cho phép các hệ thống, các công cụ giao dịch, các robot trading có
thể dễ dàng tích hợp giao dịch qua hệ thống FLEX.
• Tăng khả năng cạnh tranh, giảm chi phí hoạt động và hỗ trợ ra quyết định.
FLEX hiện đã được triển khai thành công ở hơn 20 công ty chứng khoán và được đánh
giá là một trong những sản phẩm core chứng khoán tốt nhất trên thị trường Việt Nam
hiện nay. Danh sách các công ty chứng khoán sử dụng sản phẩm Flex bao gồm: công ty
chứng khoán VNDirect, công ty chứng khoán Vietcombank, công ty chứng khoán Bảo
Việt, công ty chứng khoán BIDV, công ty chứng khoán KBSV, công ty chứng khoán Phú
Hưng, công ty chứng khoán Techcombank….
9
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với những tính năng ưu việt của mình, FLEX chắc chắn sẽ là lựa chọn hàng đầu của các
công ty chứng khoán về hệ thống phần mềm lõi chứng khoán triển khai tại công ty mình.
Hệ thống giá vốn nội bộ và phân bổ chi phí iFTP
Sản phẩm iFTP được FSS xây dựng dựa trên nền tảng cơ sở dữ liệu Data warehouse của
Ngân hàng. Sản phẩm iFTP cung cấp bộ tham số linh hoạt, cho phép Ngân hàng tự khai
báo các công thức tính toán giá vốn và phân bổ chi phí, đồng thời hỗ trợ tốt các ngoại lệ
đặc thù tại thị trường ngân hàng Việt Nam.
iFTP hỗ trợ các bộ phận nghiệp vụ:
Khai báo giá mua/bán vốn nội bộ trong ngân hàng
Khai báo công thức và các bước phân bổ chi phí cho các khối/phòng ban
Bộ báo cáo về giá mua bán vốn, NIM, PnL của từng tài khoản/khách hàng
Bộ báo cáo phân bổ chi phí: Báo cáo PnL trước và sau phân bổ chi phí theo từng khối,
phòng ban, bộ phận.
Hiện tại sản phẩm FTP&Cost Allocation đã được triển khai thành công tại Ngân hàng
TMCP Hàng Hải Việt Nam (Maritime Bank) và Ngân hàng TMCP Đại chúng Việt Nam
(PVcomBank), Ngân hàng TMCP Tiên Phong (TPBank), Ngân hàng TMCP Quốc Dân
(NCB) và Ngân hàng Bưu Điện Liên việt (LienVietPostBank).
1.2. TỔNG QUAN VỀ ĐỀ TÀI
1.2.1. Lý do chọn đề tài
Hệ thống giao dịch Ngân hàng là một hệ thống với số lượng giao dịch cực lớn hàng ngày
được thực hiện trải dài trên các phần mềm nghiệp vụ như core bank, Internet Banking,
Mobi Banking, Smart Banking… Qua đó tại ra một khối dữ liệu khổng lồ lưu trữ trải dài
trên nhiều hệ thống nghiệp vụ và không nhất quán. Gây khó khăn việc xử lý và khai thác
thông tin hữu ích một cách nhanh chóng để giúp nhà quản trị, lãnh đạo đưa ra các quyết
sách đúng đắn, kịp thời và hiệu quả cho cơ quản, tổ chức của mình. Ví dụ: thông qua việc
nghiên cứu thói quen mua sắm của các khách hàng thì eBay, Amazon có biết chính xác
các sản phẩm bạn muốn mua là gì để đưa ra gợi ý. Điều ngày giúp cho khách hàng tiết
kiệm thời gian, doanh nghiệp bán được nhiều hàng hơn.
Với hệ thống dữ liệu tổ chức dữ liệu tốt có thể giúp doanh nghiệp xây dựng các mô hình
dự báo như một công ty viễn thông có thể dự đoán tốt hơn về việc khách hàng rời mạng.
Hay Wal-Mal có thể dự đoán sản phẩm nào sẽ được bán ra. Đặc biệt với lĩnh vực dịch vụ
có số lượng lớn giao dịch như tài chính, hàng không, viễn thông… nhu cầu về việc tổ
chức dữ liệu lớn để đáp ứng yêu cầu phân tích dự báo là vô cùng cần thiết.
10
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Cuộc khủng hoảng kinh tế năm 2010 đã khiến các tổ chức tài chính phải nhìn nhận lại
định hướng phát triển bền vững thông qua công tác dự báo nhằm quản lỷ rủi ro mức thấp
nhất và nâng cao chất lượng phục vụ khách hàng dựa trên việc nâng cấp hệ thống phần
mềm hoạt động ôn định, dựa trên nhu cầu của khách hàng. Hệ thống nghiệp vụ liên tục bị
quá tải phần lớn là do tài nguyên dành cho việc thực hiện các báo cáo, các báo cáo nhằm
nghiên cứu nhu cầu khách hàng không thể thực hiện hoặc mất quá nhiều thời gian.
Để giải quyết vấn đề trên, tôi đề xuất xây dựng kho dữ liệu theo phương pháp tiếp cận
phù hợp để giải quyết bái toán. Kho dữ liệu sẽ là nền tảng cho việc triển khai hệ thống
báo cáo phân tích tách biệt với hệ thống giao dịch nghiệp vụ.
1.2.2. Mục tiêu và phạm vi nghiên cứu
Trên cơ sở tính cấp thiết và tính thực tiễn của việc triển khai xây dựng một hệ thống phục
vụ báo cáo phân tích tách biệt với hệ thống giao dịch nghiệp vụ. Em đã nghiên cứu và tìm
hiểu, chọn đề tài là “Phậno tích quy trình ETL trong kho dữ liệu để quản lý thông tin
trong ngân hàng BIDV”.
Đây là một vấn đề lớn và khó khăn, em bước đầu đã tìm hiểu và làm chủ được kiến thức
về ETL và kiến trúc kho dữ liệu. Mục đích của chuyên đề thực tập là nghiên cứu lý thuyết
và áp dụng kiến thức theo cách phù hợp để tiến hành xây dựng kho dữ liệu tại Ngân hàng
BIDV đáp ứng nhu cầu sử dụng hiện tại và làm nền tảng cho việc triển khai hệ thống
Business Intelligence
1.2.3. Phương pháp và phạm vi nghiên cứu.
Đây là đề tài mang tính áp dụng công nghệ và tính đặc thù của từng lĩnh vực khi triển
khai. Để đảm bảo chất lượng và trong khả năng cho phép đề tài xin giới hạn vào nhưng
phần cốt lõi của kiến trúc kho dữ liệu trong lĩnh vực ngân hàng trên nền tảng công nghệ
Oracle gồm:
Tìm hiểu về kiến trúc kho dữ liệu và tính cần thiết cũng như sự khác biệt so với hệ thống
giao dịch nghiệp vụ.
Tìm hiểu về giải pháp kiến trúc kho dữ liệu của nhà cung cấp giải pháp Oracle và các
công nghệ hỗ trợ việc phân tích dữ liệu nhằm triết xuất thông tin: Oracle warehouse
build, Oracle Business IntelligenceDiscover
Nghiên cứu quy trinhg ETL để xây dựng kho dữ liệu phù hợp với thực trạng về nhân lực,
tại Ngân hàng BIDV.
Tìm hiểu các kiến thức cơ bản về nghiệp vụ ngân hàng thương mại và cách tổ chức dữ
liệu tại hệ thống giao dịch nghiệp vụ tại Ngân hàng BIDV.
11
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Xây dựng kho dữ liệu với chủ đề sản phẩm dựa trên nền tảng công nghệ Oracle và thiết
lập công cụ khai thác dữ liệu từ kho dữ liệu để chứng mình tính khả thi và đáp ứng yêu
cầu của kho dữ liệu đã xây dựng.
1.2.4. Nội dung đề tài.
Đề tài được tổ chức thành các nội dung chính như sau:
12
Nguyễn Quang Hưng Chuyên Đề Thực Tập
cho các truy vấn phục vụ cho việc phân tích đạt tốc độ tốt nhất. Các sơ đồ quan hệ sẽ tạo
ra các Index hợp lý cũng như tạo ra sẵn các dữ liệu kết hợp.
2.1.2.2. Biến thời gian.
Yêu cầu quan trọng cho kho dữ liệu là phạm vi về thời gian dài hơn so với các hệ thống
tác nghiệp. Cơ sở dữ liệu tác nghiệp: dữ liệu có giá trị hiện thời. Còn dữ liệu của kho dữ
liệu: cung cấp thông tin lịch sử (ví dụ như, 5-10 năm trước). Và yếu tố thời gian được lưu
trữ trong CSDL.
2.1.2.3. Hướng chủ đề.
Dữ liệu được tổ chức theo các đối tượng chính hoặc các quá trình kinh doanh. Ví dụ phổ
biến của các dữ liệu theo định hướng đối tượng là khách hàng, sản phẩm, nhà cung cấp và
giao dịch bán… Tập trung vào việc mô hình hóa và phân tích dữ liệu nhằm hỗ trợ đưa ra
quyết định, mà không tập trung vào các hoạt động hay các xử lý giao dịch hàng ngày
2.1.2.4. Tính tích hợp.
Dữ liệu từ nhiều nguồn khác nhau như từ của các phòng ban trong tổ chức, từ các nguồn
bên ngoài. Và nguồn dữ liệu khác nhau có thể có những cách khác nhau để xác định một
đối tượng cụ thể. Tuy nhiên, trong một kho dữ liệu chỉ có một định nghĩa của sản phẩm.
Điều này đạt được bằng cách sử dụng giải quyết xung đột về cách xác định đối tượng
trong kho dữ liệu. Và khi chúng ta đạt được điều này, chúng ta nói rằng dữ liệu được tích
hợp.
Sự khác nhau giữa hệ thống OLTP và kho dữ liệu
Về cơ bản hệ thống OLTP và kho dữ liệu có một điểm khác biệt chínhđó là kho dư liệu
không được tổ chức theo dạng chuẩn 3NF. Nhưng 3NF lại là chuẩn cho hầu hết các hệ
thống OLTP.
Kho dữ liệu và các hệ thống OLTP có những yêu cầu rất khác nhau. Dưới đây là một số
ví dụ về sự khác biệt giữa các kho dữ liệu điển hình và các hệ thống OLTP. Khối lượng
công việc: Kho dữ liệu được thiết kế để phù hợp truy vấn đặc biệt và phân tích dữ liệu.
Nên khối lượng dữ liệu cần được xử lý không biết trước được có thể rất nhỏ hoặc rất lớn.
Do đó, kho phải được tối ưu hóa để thực hiện tốt cho một loạt các thể truy vấn và các
hoạt động phân tích. Hệ thống OLTP thiết kế hỗ trợ các các giao dịch đã được định nghĩa
trước. Việc chỉnh sửa dữ liệu: kho dữ liệu được cập nhật một cách thường xuyên bởi quá
trình ETL (chạy đêm hoặc hàng tuần) sử dụng kỹ thuật biến đổi dữ liệu với số lượng lớn.
Người sử dụng cuối không trực tiếp cập nhập kho dữ liệu trừ một số trường hợp đặc biệt
như khai phá dữ liệu… Ngược lại, hệ thống OLTP thì người sử dụng thường xuyên tạo,
cập nhập dữ liệu vào cơ sở dữ liệu. Cơ sở dữ liệu OLTP là luôn được cập nhật và phản
ánh tình trạng hiện tại của mỗi giao dịch kinh doanh.
13
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Mô hình thiết kế: Kho dữ liệu sử dụng mô hình chiều (như mô hình sao) để tối ưu hóa
việc truy vấn và phân tích dữ liệu. OLTP sử dụng mô hình thiết kế theo chuẩn (như 3NF)
để tối ưu hóa các hoạt động câp nhập/thêm/xóa và để đảm bảo tính nhất quán của dữ liệu.
Hoạt động thông thường: Dữ liệu hoạt động thông thường kho dữ liệu có thể là hàng
nghìn hoặc hàng triệu bản ghi. OLTP truy cập thông thường chỉ liên quan đến một số
lượng ít bản ghi.
Dữ liệu lịch sử: Kho dữ liệu có thể dữ liệu với thời gian dài như 5 năm, 10 năm… nhằm
mục đích hỗ trợ quá trình phân tích. OLTP chỉ lưu dữ liệu trong thời gian ngắn. Đó là
những dữ liệu cần thiết.
2.1.3. Kiến trúc kho dữ liệu.
2.1.3.1. Kiến trúc kho dữ liệu cơ bản
Với kiến trúc cơ bản, người sử dụng cuối cùng nhận được dữ liệu từ siêu dữ liệu và dữ
liệu thô của một hệ thống OLTP truyền thống là sẵn có. Tóm lược rất có giá trị trong kho
dữliệu, vì chúng tính toán trước các hoạt động lâu dài như truy vấn kho dữ liệu điển
hìnhđể lấy thông tin về lượng hàng được bán trong tháng
2.1.3.2. Kiến trúc kho dữ liệu với vùng đệm.
Với kiến trúc này, cần làm sạch và xử lý dữ liệu hoạt động trước khi đưa nó vào kho dữ
liệu, mặc dù hầu hết kho dữ liệu sử dụng một vùng trung gian thay thế. Một vùng trung
gian sẽ làm đon giản hoá việc quản lý kho dữ liệu chung.
2.1.3.3. Kiến trúc kho dữ liệu với vùng đệm và kho dữ liệu cục bộ.
Mặc dù kiến trúc trong hình 7 là khá phổ biến, tùy theo yêu cầu ta có thể kiếntrúc kho dữ
liệu cho các nhóm khác nhau bên trong của tổ chức. Điều này có thế thực hiện bằng cách
thêm các kho dữ liệu cục bộ, đó là các hệ thống được thiết kế cho một phạm vi cụ thể của
doanh nghiệp.
Hình 8 minh hoạ một ví dụ nơi mua, bán hàng, và hàng tồn kho được tách ra. Trong ví dụ
này, một nhà phân tích tài chính có thể muốn phân tích dữ liệu lịch sử cho mua và bán
2.1.3.5. Thiết kế kho dữ liệu
Thiết kế logic và thiết kế vật lý trong kho dữ liệu
Để xây dựng một kho dữ liệu thì cần xác định các yêu cầu kinh doanh và thống nhất
phạm vi ứng dụng để từ đó đưa ra một bản thiết kế khái niệm. Bây giờ cần phải chuyển
thiết kế khái niệm thành một hệ thống chuyển giao.
Để làm như vậy, cần tạo ra các thiết kế logic và thiết kế vật lý cho các kho dữ
liệu. Cần xác định:
14
Nguyễn Quang Hưng Chuyên Đề Thực Tập
15
Nguyễn Quang Hưng Chuyên Đề Thực Tập
trường dữ liệu, xác định các mối quan hệ giữa các chủ thể kinh doanh, và tên các thuộc
tính cho mỗi chủ thể.
Thiết kế logic kết quả nên là một tập thực thể và thuộc tính tương ứng
với các bảng sự kiện và các bảng chiều và một mô hình của dữ liệu hoạt động
từ nguồn thành thông tin hướng chủ thể trong lược đồ kho dữ liệu đích. Ta có thể tạo ra
những thiết kế logic sử dụng bút và giấy, hoặc sử dụng một công cụ thiết kế như Oracle
Warehouse Builder, đặc biệt được thiết kế để hỗ trợ cho mô hình hóa quá trình ETL; hoặc
Oracle Designe, một công cụ mô hình hóa mục đích chung.
2.1.4. Lược kho dữ liệu.
2.1.4.1. Lược đồ sao.
Đây là lược đồ phổ biến nhất được sử dụng trong thiết kế chiều trong kho dữ liệu. Có một
bảng sự kiện tại trung tâm của lược đồ bao quanh bởi một số bảng chiều Trong lược đồ
sao, kích thước liên quan đến nhóm lại với nhau như là các cột trong bảng kích thước và
được sử dụng để lưu trữ dữ liệu của sự kiện được lưu trữ trong sự kiện (fact).
2.1.4.2. Lược đồ bông tuyết.
Bao gồm một bảng sự kiện bao quanh bởi nhiều bảng chiều có thể được kết nối với bảng
chiều khác thông qua mối quan hệ nhiều-một. Lược đồ bông tuyết là một loại lược đồ
sao, tuy nhiên nó là phức tạp hơn so với một lược đồ sao. Lược đồ bông tuyết được thiết
kế từ các lược đồ sao bằng cách tiếp tục chuẩn hóa các bảng kích thước để loại bỏ dữ liệu
dư thừa. Do đó trong lược đồ bông tuyết, thay vì có một bảng kích thước lớn kết nối với
một bảng thực tế thì sẽ có một nhóm các bảng kích thước nhiều. Giản đồ này cũng giúp
tiết kiệm không gian tuy nhiên nó làm tăng số lượng của bảng kích thước.
Hinh 1. 11: Lược đồ hình bông tuyết.
2.1.4.3. So sánh lược đồ sao và bông tuyết.
Tùy theo thực tế mà ta lựa chọn lược đồ hình sao hay tuyết rơi. Việc lựa chọn được cân
nhắc giữa 2 yếu tố: thời gian đáp ứng truy vấn và mức độ kiểm soát tính chặt chẽ dữ liệu.
Lược đồ dạng tuyết rơi có thể thích hợp khi dữ liệu bảng chiều trở nên quá lớn và nhiều
thuộc tính. Tuy sự khác nhau thể hiện rất nhỏ về mặt lý thuyết nhưng khi thực hiện chúng
trong thực tế có thể dẫn tới các kết quả khác hẳn nhau. Sau đây là một số so sánh cơ bản
giữa 2 lược đồ.
Lược đồ sao
Dễ dàng hơn cho người dùng doanh nghiệp và các nhà phân tích truy vấn dữ liệu.
Lược đồ bông tuyết
16
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Có thể là khó khăn hơn cho người dùng doanh nghiệp và các nhà phân tích do số lượng
dữ liệu phải xử lý
Dễ hiểu
Chỉ có một bảng chiều cho Nhiều hơn 1 bảng chiều cho mỗi Chiều bảng mỗi chiều. Bảng
chiều không theo chuẩn 3NF. Bảng chiều chuẩn hóa theo 3NF. Truy vấn phức tạp hơn do
phải kết hợp các khóa ngoại giữa các bảng chiều
Các truy vấn là rất đơn giản và dễ hiểu
Một số lược đồ trong các môi trường kho dữ liệu sử dụng dạng chuẩn ba
hơn là lược đồ hình sao. Một lược đồ khác mà đôi khi hữu ích là lược đồ
bông tuyết, đó là một lược đồ hình sao với các chiều chuẩn hóa trong một
cấu trúc cây
2.1.5.Thiêt kế vật lý.
2.1.5.1. Chuyển thiết kế logic thành thiết kế vật lý.
Thiết kế logic là cái ta vẽ với bút và giấy hoặc thiết kế với OracleWarehouse Builder
hoặc Oracle Designer trước khi xây dựng kho dữ liệu. Thiết kế vật lý là việc tạo cơ sở dữ
liệu với các lệnh SQL. Trong quá trình thiết kế vật lý, ta chuyển đổi dữ liệu thu thập được
trong pha thiết kế logic vào một mô tả của cấu trúc cơ sở dữ liệu vật lý.
2.1.5.2. Tạo thiết kế vật lý
Trong pha thiết kế vật lý, ta xác định một mô hình cho kho dữ liệu gồm các thực thể, các
thuộc tính, và các mối quan hệ. Các thực thể được liên kết với nhau sử dụng các mối
quan hệ. Các thuộc tính được sử dụng để mô tả các thực thể. Định danh duy nhất phân
biệt giữa một trường hợp của một thực thể với các trường hợp khác.
Trong thiết kế vật lý, ta phải chuyển các lược đồ thiết kế logic thành
các cấu trúc dữ liệu thực tế. Cụ thể , ta phải ánh xạ:
Các thực thể tới các bảng.
Các mối quan hệ tới các ràng buộc khóa chính.
Các thuộc tính tới các cột.
Các định danh duy nhất tới các ràng buộc khóa duy nhất.
Một khi ta đã chuyển thiết kế logic thành một thiết kế vật lý, ta sẽ cần
phải tạo ra một số hoặc tất cả các cấu trúc sau:
17
Nguyễn Quang Hưng Chuyên Đề Thực Tập
18
Nguyễn Quang Hưng Chuyên Đề Thực Tập
(dimension table) dựa trên loại dữ liệu. Cần nói thêm rằng, chiều Thời gian trên thực tế
có ý nghĩa đặc biệt đối với việc hỗ trợ quyết định cho các khuynh hướng phân tích.
Thường thì nó được mong muốn có một vài tri thức gắn liền với lịch và những mặt khác
của chiều thời gian. Chúng ta có thể hình dung khối dữ liệu được tổ chức xung quanh một
chủ đề được thể hiện bởi một bảng sự kiện (fact table) của nhiều độ đo số học (là các đối
tượng của phân tích). Ví dụ, một bảng sự kiện có thể chứa số mặt hàng bán, thu nhập, tồn
kho, ngân sách,… Mỗi độ đo số học phụ thuộc vào một tập các chiều cung cấp ngữ cảnh
cho độ đo đó. Vì thế, các chiều kết hợp với nhau được xem như xác định duy nhất độ đo,
là một giá trị trong không gian đa chiều. Ví dụ như một kết hợp của Sản phẩm, Thời gian,
Thị trường vào 1 thời điểm là một độ đo duy nhất so với các kết hợp khác.
Vì vậy, nếu mỗi chiều chứa nhiều mức trừu tượng, dữ liệu có thể được xem từ nhiều
khung nhìn linh động khác nhau. Một số thao tác điển hình của khối dữ liệu như roll-up
(tăng mức độ trừu tượng), drill-down (giảm mức độ trừu tượng hoặc tăng mức chi tiết),
slice and dice (chọn và chiếu), và pivot (định hướng lại khung nhìn đa chiều của dữ liệu),
cho phép tương tác truy vấn và phân tích dữ liệu rất tiện lợi. Những thao tác đó được biết
như Xử lý phân tích trực tuyến (On-Line Analytical Processing – OLAP) Lát cắt (Slice -
dice) Lát cắt là một “mặt phẳng” được chỉ ra bởi một tập các chiều nằm trong tập chiều
của khối tại các giá trị cố định của các chiều còn lại.
Phép khoan dữ liệu (drill down): Phép khoan dữ liệu là một kỹ thuật đáp ứng nhu cầu
khai thác thông tin thông qua các cấp độ của chiều từ mức độ tổng thể tới các mức độ chi
tiết hơn.
Phép cuốn dữ liệu (roll up): là phép toán ngược lại phép khoan, đó là quá trình xem dữ
liệu ở cấp độ càng ngày càng tổng quát hơn
Phép quay (Pivot): Là phép thay đổi vị trí các chiều trong thể hiện của báo cáo.
2.1.7. Datamart, EDW trong kho dữ liệu và Bussiness Intelligence
Kho dữ liệu đóng vai trò là kho lưu tự động của một tổ chức dữ liệu, được thiết kế để tạo
điều kiện thuận lợi cho báo cáo và phân tích, và là một phần thiết yếu của BI trong doanh
nghiệp.
Kho dữ liệu mở rộng định nghĩa về kho dữ liệu bằng các công cụ và quy trình cho
❑ Trích xuất, chuyển đổi và tải dữ liệu vào kho lưu trữ,
❑ Ánh xạ các tài sản thông tin doanh nghiệp với các thuật ngữ kinh doanh và các thực
thể / thuộc tính của mô hình dữ liệu logic EDW, quản trị dữ liệu
Lưu trữ dữ liệu thích hợp là chìa khóa cho BI (Business Intelligence) thành công
19
Nguyễn Quang Hưng Chuyên Đề Thực Tập
❑ Cho phép ra quyết định tốt hơn ở các cấp quản lý khác nhau.
✓ Kho dữ liệu là một định hướng chủ đề, tích hợp, biến thể theo thời gian và không thu
thập dữ liệu biến động để hỗ trợ việc ra quyết định của ban lãnh đạo tiến trình.
❑ Định hướng theo chủ đề: được sử dụng để phân tích một lĩnh vực chủ đề cụ thể
• Ví dụ: “khách hàng” / “bữa tiệc”, “sản phẩm”, “sự kiện”, “kênh”, v.v.
❑ Biến thể theo thời gian: lưu giữ dữ liệu lịch sử, có thể nghiên cứu các xu hướng và
thay đổi
• Ví dụ, một người có thể truy xuất dữ liệu từ 3 tháng, 6 tháng, 12 tháng, hoặc thậm chí
dữ liệu cũ hơn.
• Trong hệ thống giao dịch, thường chỉ dữ liệu gần đây nhất được lưu giữ. Ví dụ, một hệ
thống giao dịch có thể giữ địa chỉ gần đây nhất của khách hàng, nơi kho dữ liệu có thể
chứa tất cả các địa chỉ được liên kết với một khách hàng.
❑ Không bay hơi: chỉ đọc; một khi dữ liệu nằm trong kho dữ liệu, nó sẽ không thay đổi.
Cho nên, dữ liệu lịch sử không bị thay đổi trừ khi có các vấn đề cụ thể về chất lượng dữ
liệu.
❑ Trích xuất dữ liệu từ các nguồn dữ liệu đồng nhất hoặc không đồng nhất.
❑ Biến đổi dữ liệu để lưu trữ nó ở định dạng hoặc cấu trúc thích hợp để truy vấn và mục
đích phân tích.
❑ Tải nó vào đích cuối cùng (trong trường hợp này là kho dữ liệu).
Kiến trúc thiết kế tấng edw:
Các yêu cầu đối với tầng EDW:
20
Nguyễn Quang Hưng Chuyên Đề Thực Tập
• Cho phép bổ sung dữ liệu với các nghiệp vụ phát sinh trong tương lai mà không ảnh
hưởng (hoặc ảnh hưởng tối thiểu) đến hệ thống hiện tại.
✓ Khả năng lưu trữ tối ưu: Thiết kế cho phép lưu trữ lượng dữ liệu lớn một cách tối ưu
✓ Core Banking là phần mềm lõi của ngân hàng cho các hoạt động tác nghiệp.
✓ Enteprise Data Warehouse là cơ sở dữ liệu lõi của Data Warehouse, cung cấp thông tin
cho các Data Mart phân tích.
✓ Phạm vi dữ liệu: Toàn doanh nghiệp / Lĩnh vực đối tượng hoặc ngành nghề kinh doanh
hoặc
bộ phận định hướng
✓ Phương sai thời gian: Chỉ dữ liệu hiện tại / Dữ liệu hiện tại và lịch sử
✓ Mức độ chi tiết của dữ liệu: Dữ liệu chi tiết / Dữ liệu tổng hợp
✓ Mô hình dữ liệu: Mô hình dữ liệu ngành tham chiếu / Mô hình dữ liệu nguồn
Các tùy chọn Kho dữ liệu doanh nghiệp hiện tại được gạch chân.
Hệ thống ghi
▪ Dữ liệu hoạt động hàng ngày được hợp nhất trong Hệ thống BDW
Ghi lại (định kỳ hoặc đột xuất)
- Ví dụ, tất cả các thông tin liên quan đến Khách hàng và khách hàng được lưu trữ trong
"Khách hàng" và đó là các thực thể được liên kết
- Do đó, điều này không chỉ làm giảm sự dư thừa dữ liệu mà còn mang lại chế độ xem
toàn bộ dữ liệu 360 độ trong toàn tổ chức
- Tất cả thông tin từ mọi bộ phận có thể được tổng hợp vào một nơi trong khi vẫn duy trì
thông tin cụ thể về mỗi bộ phận
- Rủi ro, Tài chính, Khả năng sinh lời, Hiệu suất và các thông tin khác đó là silo điển hình
có thể được tích hợp
- Cho phép các tổ chức trả lời các câu hỏi trước đây không thể đạt được, ví dụ: tác động
rủi ro ảnh hưởng đến mối quan hệ với khách hàng, mức độ ảnh hưởng của sự tiêu hao của
khách hàng như thế nào lợi nhuận, v.v.
21
Nguyễn Quang Hưng Chuyên Đề Thực Tập
▪ Thông tin Cá nhân: - Tên, Tên thay thế, Bằng cấp, Số điện thoại, Địa chỉ, Tình trạng
hôn nhân, Việc làm, Gia đình, Hộ gia đình, Tài sản, Tài khoản, Tổng giá trị ròng, Chia sẻ
trên Wallet, Xếp hạng mức độ hài lòng, v.v.
▪ Khuyết tật của khách hàng và thông tin khả năng tiếp cận, rủi ro khoan dung, lựa chọn
sản phẩm, tương tác cơ sở vật chất, v.v.
▪ Trạng thái Vòng đời của Khách hàng - Hiện tại, Trước đây, Đã qua đời và Khách hàng
tiềm năng, v.v.
▪ Tương tác với khách hàng - giao dịch tài chính, thông tin liên lạc (thắc mắc, khiếu nại,
từ chối.), Đầy đủ
chủ đề giao tiếp, hoạt động và sự kiện, đánh giá, v.v.
Kiến trúc thiết kế tầng datamart
Trí tuệ nhân tạo (Bussiness Intelligence)
Business Intelligence (BI) là quy trình, kiến trúc, công nghệ và công cụ giúp các công ty
chuyển đổi dữ liệu của họ thành chính xác, có thể hành động và thông tin kịp thời và phổ
biến thông tin đó trong toàn tổ chức.
Nó bao gồm, nhưng không giới hạn, lập mô hình dữ liệu, lưu trữ dữ liệu, quản trị dữ liệu,
siêu dữ liệu, siêu dữ liệu, dữ liệu tổng thể quản lý, làm sạch dữ liệu, phân tích dự đoán,
báo cáo (bao gồm cảnh báo, trang tổng quan và phiếu ghi điểm).
2.2.HIỆN TRẠNG HỆ THỐNG KHO DỮ LIỆU TRONG NGÂN HÀNG
BIDV
2.2.1. Tổng quan hệ thống báo cáo trong ngân hàng
Từ năm 2004 đến nay ngân hàng đã trang bị hệ thống Core Banking mạnh phục vụ các
mảng kinh doanh của mình. Song song với đó các hệ thống báo cáo phục vụ công tác
thống kê, quản lý lần lượt đưa vào khai thác. Tuy nhiên, các hệ thống báo cáo này vẫn
chưa đầy đủ và còn manh mún, nằm rời rạc ở các vị trí khác nhau. Hệ thống báo cáo rời
rạc chia thành các nhóm cụ thể như sau:
Hệ thống báo cáo tại Core banking: nằm trên hệ thống Core banking phục vụ công tác
hàng ngày của hoạt động tác nghiệp trong ngân hàng.
Hệ thống báo cáo kho dữ liệu: là hệ thống báo cáo phân tích đa chiều lớn gồm hàng trăm
báo cáo dựa trên công nghệ của Microsoft.
Hàng trăm hệ thống báo cáo đơn lẻ do ngân hàng tự xây dựng và phát triển.
22
Nguyễn Quang Hưng Chuyên Đề Thực Tập
23
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Từ đó đưa ra hướng giải pháp mới nhằm nâng cao hiệu quả về hiệu năng xử lý của kho
dữ liệu.
2.2.3.1. CSDL dùng cho bài toán kho dữ liệu
Cơ sở dữ liệu DB2 được tính hợp sẵn trên máy chủ AS400 được triển khai cùng với Core
banking, hệ cơ sở dữ liệu này được triển khai nhằm mục đích chính cho bài toán tác
nghiệp phù hợp với bài toán OLTP của ngân hàng và cấu phần kho dữ liệu được triển
khai thêm sau đó.
Do vậy tồn tại bài toán tác nghiệp và bài toán xử lý kho dữ liệu trên cùng một máy chủ
Core banking điều này ít nhiều làm ảnh hưởng tới hiệu năng của hệ thống tác nghiệp do
phải chia sẻ tài nguyên cho hệ thống kho dữ liệu. Thông thường hệ thống tác nghiệp sẽ
bắt đầu ngày làm việc mới khoảng 8h mỗi sáng nhưng hệ thống kho dữ liệu thì kết thúc
muộn hơn rất nhiều. Hệ thống kho dữ liệu thường bắt đầu từ 2h sáng và thường kết thúc
vào 12h giờ hàng với tổng dương lượng dữ liệu xử lý vào khoảng 30GB điều này gây áp
lực rất lớn lên hệ thống giao dịch hàng ngày của ngân hàng và cũng gây khó khăn cho
việc khai thác phân tích số liệu phục vụ công tác quản trị điều hành tại ngân hàng.
2.2.3.2, Công cụ trích lọc dữ liệu
Hiện tại ngân hàng đang sử dụng công cụ DTS để thực hiện quá trình trích lọc dữ liệu,
công cụ này hiện nay đang gặp phải một số hạn chế như sau:
Không có khả năng mở rộng về hạ tầng và chạy trên nền tảng của Microsoft chỉ phù hợp
đối với các bài toán nhỏ và vừa. Hiện nay với việc xử lý dữ liệu đầu ngày khoảng 300G
đã gây ra áp lực rất lớn lên hệ thống ETL của ngân hàng.
Chỉ hỗ trợ mô hình triển khai theo hướng ET-L hoặc E-TL có nghĩa là máy chủ cài đặt
DTS chỉ làm nhiệm vụ trích xuất (Extract) hoặc truyền tải (Load) còn chuyển đổi
(Transform) sẽ được thực hiện tại nguồn hoặc đích. Việc thiết kế này phụ thuộc hoàn
toàn vào hiệu năng xử lý của máy của nguồn hoặc đích. Không có khả năng mở rộng về
các cụm máy chủ chỉ để dùng cho việc chuyển đổi số liệu khi bài toán dữ liệu ngày càng
tăng trưởng. Do đó mô hình này cũng đã một phần ngây tải cho hệ thống xử lý tác nghiệp
hàng ngày trong ngân hàng.
2.2.3.3. Công cụ phân phối báo cáo
Việc khai thác và phân phối báo cáo theo chủ đề hiện nay tại ngân hàng sử dụng qua công
cụ Excel kết nối tới mô hình dữ liệu đa chiều (OLAP) qua phương thức kết nối ODBC
mà chưa có một công cụ chuyên biệt để thực hiện việc phân phối báo cáo tới người dùng.
Một số hạn chế khi sử dụng công cụ Excel cho bài toán phân tích hiện nay trong ngân
hàng như sau:
24
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Dữ liệu khai thác trên Excel chỉ khai thác được trên tập dữ liệu nhỏ và dữ liệu OLAP
được lưu trên SQL server bị giới hạn dung lượng do đó bài toán này chỉ phù hợp với dữ
liệu vừa và nhỏ không phù hợp với dữ liệu lớn.
Việc khai thác trên các dữ liệu chuyên đề không linh hoạt gây khó khăn cho người dùng
đối với các phân tích cần lọc dữ liệu thì Excel sẽ thực hiện việc load toàn bộ data lên
Excel rồi mới thực hiện việc lọc điều này dẫn đến nhiều bài toán phân tích trên dữ liệu
chuyên đề không thực hiện được do bị giới hạn về số lượng bản ghi hiển trị trên Excel
tùy thuộc từng phiên bản của Excel.
Dữ liệu trong kho dữ liệu mới chỉ được cung cấp tại Hộ sở chính mà chưa được phân
phối
trên toàn ngân hàng.
Cơ chế phân quyền bảo mật đối với việc khai thác báo cáo qua Excel chưa đảm bảo.
2.2.3.4. Mô hình thiết kế kho dữ liệu
Việc triển khai kho dữ liệu trong ngân hàng chưa có một mô hình thiết kế tổng thể để từ
đó có thể dễ dàng mở rộng và phát triển các bài toán phân tích khác nhau phục vụ nhu
cầu quản trị điều hành trong môi trường cạnh tranh ngày càng mãnh liệt.
Chưa có một mô hình tổng thể bao trùm các mảng phân tích trong ngân hàng như: quản
lý rủi ro, phân tích khác hàng, quản lý tài sản nợ có, phân tích khách hàng trung thành dời
đi, phân tích bán chéo sản phẩm, các bài toán về báo cáo tuân thủ, v.v… hiện tại kho dữ
liệu mới chỉ dừng lại ở các bài toán phục vụ tác nghiệp là chính chưa có những mô hình
chuyên sâu, chuyên biệt để thực hiện phát triển, kiểm soát các hoạt động của ngân hàng
trong xu hướng phát triển mới.
2.2.4. Một số giải pháp công nghệ mới về kho dữ liệu
Có nhiều phương thức để đánh giá các giải pháp kho dữ liệu hiện tại trên thế giới. Các
hãng phân tích lớn và uy tín trên thế giới sử dụng các phân tích đa chiều, đồng thời theo
xu hướng phát triển của Công nghệ thông tin như Gartners. Tuy nhiên, theo nhận định
chung thì có bốn yếu tố chính ảnh hưởng đến việc lựa chọn một nền tảng công nghệ kho
dữ liệu thích hợp đó là: giao diện, tính năng, hỗ trợ và nền tảng hệ thống. Các yếu tố này
ảnh hưởng trực tiếp đến thành công của một dự án triển khai và áp dụng kho dữ liệu vào
trong tổ chức/doanh nghiệp. Các giải pháp kho dữ liệu lớn trên thế giới [5] đang theo xu
hướng thay đổi để thích hợp với xu hướng phát triển của BI cũng yêu cầu càng ngày càng
phức tạp hơn trong việc phân tích dữ liệu. Một số giải pháp hiện nay có trên thị trường
bao gồm: Microsoft, Oracle, IBM.
Giải pháp của Microsoft: Microsoft cung cấp giải pháp kho dữ liệu khá toàn diện và đẩy
đủ với cơ sở dữ liệu SQL Server 2008, hệ thống Analyze Services, là giải pháp tương đối
25
Nguyễn Quang Hưng Chuyên Đề Thực Tập
phổ biến.
Ưu điểm: thân thiện, dễ dùng, dễ phát triển, dễ bảo trì.
Nhược điểm:
Hạn chế khi xử lý lượng dữ liệu lớn
Phù hợp với các bài toán vừa và nhỏ
Hệ thống bảo mật kém do sử dụng nền tảng windows
Giải pháp của Oracle: Oracle được đánh giá là một trong những công ty hàng đầu trong
lĩnh vực giải pháp về kho dữ liệu với đầy đủ các công cụ chuyên biệt cho bài toán kho dữ
liệu đặc biệt với giải pháp Oracle Exadata Database Machine đã tối ưu rất nhiều cho bài
toán kho dữ liệu.
Ưu điểm:
Thị phần Oracle chiếm trên thị trường khá lớn khoảng 48%
Tiện dụng, thuận lợi cho việc tiếp cận và phát triển
Hệ thống cơ sở dữ liệu và máy chủ kho dữ liệu đã tích hợp thành máy duy nhất cung cấp
hiệu năng xử lý tốt hơn
Nhược điểm:
Thông thường khi triển khai giải pháp của Oracle sẽ tốn công sức triển khai hơn
Chi phí về bản quyền phần mềm của Oracle cũng thường cao hơn các nhà cung cấp khác.
Giải pháp của IBM: được đánh giá là đơn vị cung cấp giải pháp kho dữ liệu và phân tích
số liệu hàng đầu ở hầu hết các tổ chức đánh giá độc lập (cụ thể là Gartner và Forrester).
Hiện tại IBM đang cung cấp hai giải pháp chính và chuyên dụng cho bài toán khai thác,
phân tích báo cáo theo mô hình kho dữ liệu. Cả hai giải pháp [1] đều có mô hình gần
giống nhau, Data Stage làm công cụ ETL, công cụ Cognos cho cấu phần khai thác và
phân phối báo cáo, mô hình dữ liệu IBM Banking Data Model. Chỉ khác nhau về cấu
phần CSDL lưu trữ
ISAS (IBM Smart Analytics System): sử dụng appliance máy chủ ISAS 7710; kho dữ
liệu xây dựng trên cơ sở dữ liệu DB2. Dữ liệu đa chiều cube xây dựng trên Inforsphere
warehouse gắn chặt với cơ sở dữ liệu DB2. Đây là giải pháp Hybrid (Hệ thống máy chủ
có thể dùng cho cả bài toán phân tích báo cáo và giao dịch).
Netezza: sử dụng theo cơ chế appliance; tích hợp toàn bộ phần cứng, phần mềm (hệ điều
hành, cơ sở dữ liệu, v.v…) trong một thiết bị duy nhất. Đây là giải pháp chỉ dùng cho hệ
thống phân tích, khai thác báo cáo.
26
Nguyễn Quang Hưng Chuyên Đề Thực Tập
2.2.5.Kết luận
Nội dung chương này đề cập tới khái niệm kho dữ liệu, kiến trúc chung của kho dữ liệu
và một số mô hình logic thường sử dụng trong kho. Ngoài ra phần chính của chương để
cập tới hiện trạng kho dữ liệu tại ngân hàng với các mặt hạn chế về CSDL, công cụ trích
lọc, công cụ phân phối báo cáo và mô hình thiết kế. Với quy mô ngày càng lớn của ngân
hàng, lượng khách hàng, lượng giao dịch, tần suất giao dịch, đều sẽ tăng với tốc độ cao,
tác giả nhận thấy nhu cầu cần phải có một kho dữ liệu mới đáp ứng được hiệu năng xử lý
cho ngân hàng. Bài toán quản lý nghiệp vụ ngân hàng hết sức quan trọng và không hề
đơn giản, hơn nữa lại luôn luôn thay đổi. Kho dữ liệu mới sẽ giảm tải cho hệ thống Core
Banking, hỗ trợ các báo cáo phân tích, tổng hợp cần đến thường xuyên cũng như các báo
cáo phức tạp hơn trong tương lai.
CHƯƠNG III: ỨNG DỤNG QUY TRÌNH ETL VÀO XÂY DỰNG QUẢN LÝ
THÔNG TIN GIAO DỊCH NGÂN HÀNG BIDV VÀ THỰC HÀNH ĐẨY DỮ LIỆU
TỪ SATGING LÊN DATAMART
3.1. GIỚI THIỆU VỀ CÔNG CỤ
3.1.1.Giới thiệu về công cụ Designer Client
• Công cụ IBM InfoSphere DataStage Designer Client được dùng để phát triển,
chỉnh sửa và vận hành job ETL.
Sử dụng công cụ Designer Client
- Click dúp chuột trái vào biểu tượng để khởi động công cụ IBM
InfoSphere DataStage Designer Client, sau khi điền tên đăng nhập và mật khẩu, chọn
project sử dụng tại mục Project.
27
Nguyễn Quang Hưng Chuyên Đề Thực Tập
28
Nguyễn Quang Hưng Chuyên Đề Thực Tập
29
Nguyễn Quang Hưng Chuyên Đề Thực Tập
DBeaver có giao diện người dùng được thiết kế tốt, nền tảng dựa trên khung mã nguồn
mở và cho phép viết nhiều phần mở rộng, cũng như tương thích với bất kỳ cơ sở dữ liệu
nào cũng bao gồm hỗ trợ cho các máy khách MySQL và Oracle, quản lý trình điều khiển,
trình soạn thảo SQL và định dạng. DBeaver là một ứng dụng đa nền tảng vì nó hỗ trợ cho
các nền tảng MacOS, Windows và Linux.
Click dúp chuột trái vào biểu tượng để khởi động công cụ Dbeaver, sau khi
điền tên đăng nhập và mật khẩu, chọn project sử dụng tại mục Project.
Bây giờ chúng ta sẽ thực hiện kết nối Dbeaver tới máy chủ 192.168.1.214. Ở đây em
chọn Oracle.
Các bước như hình bên dưới:
(1) Click vào đây để thực hiện kết nối đến cơ sở dữ liệu
30
Nguyễn Quang Hưng Chuyên Đề Thực Tập
31
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Vậy là chúng ta đã thực hiện kết nối thành công đến hệ quản trị cơ sở dữ liệu.
Nhận xét: Với phần mềm Dbeaver thì quá trình kết nối đến hệ quản trị cơ sở dữ liệu
tương đối đơn giản, không phải cấu hình quá nhiều. Đặc biệt là Dbeaver hỗ trợ hầu hết
các hệ quản trị cở dữ liệu phổ biến hiện nay.
32
Nguyễn Quang Hưng Chuyên Đề Thực Tập
3.2. Khái quát quy trình ETL và mục tiêu thiết kế kho dữ liệu
3.2.1. Khái quát quy trình ETL trong kho dữ liệu
33
Nguyễn Quang Hưng Chuyên Đề Thực Tập
34
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Sau đây chúng ta sẽ tiến hành tạo các bảng TDY, PDY và MNS liên quan đến từng bảng
nguồn để thực hành đẩy dư liệu lên tầng Staging
a. IFTB_CLT_MASTER: Bảng này sẽ là bảng cung cấp thông tin về các hợp động tài
sản
Các thuộc tính của bảng này bao gồm:
35
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với bảng IFTB_CLT_MASTER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_CLT_MASTER_PDY_2022
( ETL_DATE DECIMAL(8,0),
CLT_CODE Varchar(30),
CCY_CODE VARCHAR(30),
MAT_DT DECIMAL(8,0),
CLT_VAL_LCY decimal(23,5),
CLT_VAL_FCY decimal(23,5),
CLT_TP_CODE varchar(100),
OWNER_ID varchar(30),
ISSUER_ID varchar(30),
EFF_DT decimal(8,0)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 2
thuộc tính:
36
Nguyễn Quang Hưng Chuyên Đề Thực Tập
b. IFTB_CARD_MASTER: Bảng này sẽ là bảng cung cấp thông tin về các hợp đổng thẻ
Các thuộc tính của bảng này bao gồm:
Với bảng IFTB_CARD_MASTER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_CARD_MASTER_PDY_2022
( CST_ID varchar(80),
CARD_NO varchar(80),
GL_CODE char(3),
EFF_DT decimal(8,0),
MAT_DT decimal(8,0),
CCY_CODE varchar(4),
OU_CODE varchar(50),
SUBS_F char(1),
CLS_BAL_LCY decimal(25,5)
37
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 5
thuộc tính:
c. IFTB_DEP_MASTER: Bảng này sẽ là bảng cung cấp thông tin về các hợp đổng huy
động vốn
Các thuộc tính của bảng này bao gồm:
38
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với bảng IFTB_CARD_MASTER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE CLT_DEP_MASTER_PDY_2022
39
Nguyễn Quang Hưng Chuyên Đề Thực Tập
( ETL_DATE decimal(8,0),
CTR_ID varchar(30),
CTR_NAME varchar(250),
CST_ID varchar(30),
GL_CODE char(4),
EFF_DT decimal(9,0),
MAT_DT decimal(9,0),
CCY_CODE varchar(30),
PD_CODE varchar(30),
BR_CODE varchar(30),
CLS_BAL_FCY decimal(23,5),
CLS_BAL_LCY decimal(23,5),
RATE_PCT decimal(23,5),
SUBS_F char(1),
ACR_BAL_LCY decimal(23,5)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 5
thuộc tính:
d. IFTB_LOAN_MASTER: Bảng này sẽ là bảng cung cấp thông tin về các hợp đổng huy
động vốn
Các thuộc tính của bảng này bao gồm:
40
Nguyễn Quang Hưng Chuyên Đề Thực Tập
41
Nguyễn Quang Hưng Chuyên Đề Thực Tập
CLS_BAL_LCY decimal(23,5),
ACR_BAL_LCY decimal(23,5),
LOAN_PPS_CODE varchar(200),
DSBR_DT decimal(8,0),
RATE_PCT decimal(23,5),
THOAI_LAI decimal(23,5),
MRTG_TP varchar(30),
SEC_F char(1),
SUBS_F char(1),
TOT_DSBR_AMT_LCY decimal(23,5),
SPC_LN_IDC_TP_CODE varchar(30)
)
Với bảng IFTB_CARD_MASTER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_LOAN_MASTER_PDY_2022
( ETL_DATE decimal(8,0),
CTR_ID varchar(30),
CTR_NAME varchar(250),
CST_ID varchar(30),
GL_CODE char(4),
EFF_DT decimal(8,0),
MAT_DT decimal(8,0),
CCY_CODE varchar(30),
PD_CODE varchar(30),
BR_CODE varchar(30),
CLS_BAL_FCY decimal(23,5),
CLS_BAL_LCY decimal(23,5),
ACR_BAL_LCY decimal(23,5),
LOAN_PPS_CODE varchar(200),
DSBR_DT decimal(8,0),
RATE_PCT decimal(23,5),
THOAI_LAI decimal(23,5),
MRTG_TP varchar(30),
SEC_F char(1),
SUBS_F char(1),
TOT_DSBR_AMT_LCY decimal(23,5),
SPC_LN_IDC_TP_CODE varchar(30)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 5
thuộc tính:
42
Nguyễn Quang Hưng Chuyên Đề Thực Tập
3.4.2. Summary
Summary: Số lượng dòng lớn, phát sinh hàng ngày xấp xỉ 500k dòng.
Dưới đây là ETL các bảng Summary.
a. IFTB_CUSTOMER: Bảng này sẽ là bảng cung cấp thông tin về các danh mục khách
hàng
Các thuộc tính của bảng này bao gồm:
43
Nguyễn Quang Hưng Chuyên Đề Thực Tập
44
Nguyễn Quang Hưng Chuyên Đề Thực Tập
PRIM_CMRCL_NM varchar(50),
INR_CST varchar(1)
)
Với bảng IFTB_CUSTOMER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_CUSTOMER_2022_PDY
( ETL_DATE decimal(8,0),
CST_ID varchar(30),
CST_NAME varchar(250),
CST_STATUS varchar(30),
IDY_CODE varchar(250),
CST_MSEG_CODE varchar(30),
ORG_TAX_IDENTN_NBR varchar(30),
IDENT_NBR varchar(30),
BRTH_DT decimal(8,0),
CST_PERF_ST_CODE varchar(30),
CST_PERF_ST_NM varchar(50),
PRIM_BR varchar(30),
EFF_CST_DT decimal(8,0),
END_CST_DT decimal(8,0),
SECTOR varchar(30),
ESTB_DT decimal(8,0),
PRIM_CMRCL_NM varchar(50),
INR_CST varchar(1)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 5
thuộc tính:
b. IFTB_BRANCH: Bảng này sẽ là bảng cung cấp thông tin về các danh mục các chi
nhánh
Các thuộc tính của bảng này bao gồm:
45
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với bảng IFTB_BRACH_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_BRANCH_PDY_2022
( REGION_NAME varchar(250),
BR_CODE varchar(30),
ETL_DATE decimal(8,0),
BR_NAME varchar(250),
REGION_CODE varchar(30)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 3
thuộc tính:
46
Nguyễn Quang Hưng Chuyên Đề Thực Tập
c. IFTB_CCY: Bảng này sẽ là bảng cung cấp thông tin về các danh mục các loại tiền tệ
Các thuộc tính của bảng này bao gồm:
Với bảng IFTB_CUSTOMER_PDY_2022 ta cũng sẽ thực hiện câu lệnh tương tự:
CREATE TABLE IFTB_CCY_PDY_2022
( CCY_ID varchar(30),
CCY_NM varchar(100),
CCY_CODE varchar(100)
)
Với bảng MINUS vì ta chỉ so sánh sự khác nhau giữa bảng TDY và PDY nên ta chỉ có 3
thuộc tính:
47
Nguyễn Quang Hưng Chuyên Đề Thực Tập
CCY_CODE varchar(100)
)
48
Nguyễn Quang Hưng Chuyên Đề Thực Tập
o Đối với những bảng dữ liệu 1 ngày quá lớn có thể bỏ index trên bảng và để chế độ
Bulk Load để tăng tốc độ load dữ liệu.
Kết quả sau khi chạy job Today:
49
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Và job output:
50
Nguyễn Quang Hưng Chuyên Đề Thực Tập
51
Nguyễn Quang Hưng Chuyên Đề Thực Tập
52
Nguyễn Quang Hưng Chuyên Đề Thực Tập
) C
)
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
53
Nguyễn Quang Hưng Chuyên Đề Thực Tập
54
Nguyễn Quang Hưng Chuyên Đề Thực Tập
WHERE A.CARD_NO=B.CARD_NO
MINUS
SELECT B.*
FROM N3_IFTB_CARD_MASTER_PDY B
) C
)
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
55
Nguyễn Quang Hưng Chuyên Đề Thực Tập
56
Nguyễn Quang Hưng Chuyên Đề Thực Tập
57
Nguyễn Quang Hưng Chuyên Đề Thực Tập
MINUS
SELECT B.*
FROM IFTB_BRANCH_PDY_2022 B
) C
)
;
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
58
Nguyễn Quang Hưng Chuyên Đề Thực Tập
59
Nguyễn Quang Hưng Chuyên Đề Thực Tập
60
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
61
Nguyễn Quang Hưng Chuyên Đề Thực Tập
62
Nguyễn Quang Hưng Chuyên Đề Thực Tập
63
Nguyễn Quang Hưng Chuyên Đề Thực Tập
MINUS
SELECT B.*
FROM IFTB_CUSTOMER_2022_PDY B
) C
)
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
64
Nguyễn Quang Hưng Chuyên Đề Thực Tập
65
Nguyễn Quang Hưng Chuyên Đề Thực Tập
66
Nguyễn Quang Hưng Chuyên Đề Thực Tập
WHERE A.CTR_ID=B.CTR_ID
MINUS
SELECT B.*
FROM IFTB_DEP_MASTER_PDY_2022 B
) C
)
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
67
Nguyễn Quang Hưng Chuyên Đề Thực Tập
68
Nguyễn Quang Hưng Chuyên Đề Thực Tập
69
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Stage output : Set connection là connection tới Staging (ORA_CONN_STG), Write mode
là Insert, Table action là Truncate
70
Nguyễn Quang Hưng Chuyên Đề Thực Tập
71
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là mô hình tổng quát và mối liên hệ giữa các thực thể chính thuộc các nhóm chính đã
đề cập ở trên.
Arrangement (hợp đồng): Arrangement đại diện cho một hợp đồng, có tiềm năng hoặc
thực tế, liên quan đến hai hoặc nhiều Bên tham gia, cung cấp và khẳng định các quy tắc
và nghĩa vụ liên quan đến việc bán, trao đổi hoặc cung cấp hàng hoá và dịch vụ; Ví dụ
như Hợp đồng # 123 (Một chứng chỉ cụ thể của hợp đồng tiền gửi giữa tổ chức tài chính
và John Doe), Hợp đồng # 346 (thỏa thuận sẽ cụ thể giữa tổ chức tài chính và John Doe
bao gồm Mary Doe là người thụ hưởng nhưng không tham gia vào hợp đồng).
* Lưu ý thiết kế *
Mặc dù mô hình lôgic cho AR chứa nhiều cấp độ phân lớp phụ, mô hình vật lý mặc định
sẽ làm giảm hai thành phần này - một AR và một tập hợp các phân nhóm AR cụ thể. Mô
hình vật lý mặc định được xây dựng bằng cách thiết lập các giá trị logic-only / physical-
only trên các thực thể, các thuộc tính và các mối quan hệ. Bằng cách thay đổi các flag
này, các tổ chức tài chính có thể điều chỉnh mô hình vật lý của hệ thống AR phù hợp với
nhu cầu của họ, ví dụ: Hợp đồng Supertype có thể bị sụp đổ vào tất cả các phân nhóm.
Arrangement / Involved Party Rltnp (Quan hệ AR/IR): Quan hệ AR phải có một quan hệ
tới IP. Ví dụ: IP John Doe là chủ sở hữu của một hợp đồng cho một khoản vay; IP Mary
Doe cung cấp tài chính cho một hợp đồng.
72
Nguyễn Quang Hưng Chuyên Đề Thực Tập
* Lưu ý thiết kế *
Mối quan hệ nhất định giữa các IP và các AR được xác định cụ thể hơn ở Arrangement
Subtype Level.
Arrangement/ Product Rltnp (Quan hệ AR/ Product): Quan hệ AR/ Product ghi lại tất cả các mối
quan hệ giữa AR và Product. Ví dụ: AR # 72291 (Một thoả thuận đầu tư) đầu tư vào Product #
7821 (một thị trường công cụ tài chính)
Involved Party (Bên tham gia): IP xác định bất kỳ cá nhân, nhóm cá nhân, tổ chức, đơn vị tổ chức
hoặc vị trí việc làm mà tổ chức tài chính mong muốn giữ thông tin; Ví dụ: IP 124 (John Smith), IP
# 432 (Tổ chức Tài chính Xyz), IP # 453 (Phòng Marketing của Tổ chức Tài chính Xyz), IP # 681
(thương gia nước ngoài).
Customer (Khách hàng): Customer là một vai trò của một IP được xem là nhận các dịch vụ hoặc
sản phẩm từ Tổ chức Tài chính hoặc một trong các Đơn vị Tổ chức của nó, hoặc là người có tiềm
năng nhận các dịch vụ hoặc sản phẩm đó.
Organiztion Unit (Đơn vị tổ chức): Organization Unit là một IP là một bộ phận hoặc phân khu của
Tổ chức được thành lập nhằm xác định các trách nhiệm chức năng riêng biệt; Ví dụ: Tổ chức # 66
(Ngân hàng Xyz) có thể chứa một số Đơn vị tổ chức như Phân khu A, Chi nhánh B, Uỷ ban C,
Đội D hoặc các nhóm ít chính thức hơn như Dự án P hoặc Nhóm T.
Involved Party/ Classification (quan hệ IP/CL): Quan hệ IP/CL cung cấp một lịch sử thay đổi giá
trị của một Involved Party Rltnp Classification Scheme được áp dụng cho một IP. Ví dụ một cá
nhân (quan hệ IP/CL) có thể là Độc thân, sau đó lập gia đình, sau đó ly hôn, rồi cưới, rồi Góa phụ
(Ed), sau đó cưới, rồi Ly dị. Cũng có nhiều hơn một Classification Value trong một Scheme có thể
áp dụng tại bất cứ lúc nào - một cá nhân có thể có nhiều hơn một trạng thái không đủ tư cách pháp
lý.
Involved Party/ Involved Party Rltnp (quan hệ IP/IP): Quan hệ IP / IP xác định tất cả các mối quan
hệ giữa hai IP. Hai IP đều có thể có liên quan đến một số loại quan hệ; Ví dụ: IP (Quan hệ IP/IP) #
4632 (Công ty A) 'Là Khách hàng' cũng là 'Nhà cung cấp' của IP # 2392 (Tổ chức Tài chính Abc).
Currency (tiền tệ): Currency là phương tiện trao đổi cho các giao dịch hàng hoá hoặc dịch vụ
thường được phát hành và bảo lãnh bởi cơ quan có thẩm quyền hợp pháp. Ví dụ: Đô la Mỹ,
Sterling, Euro, v.v ...
Resource Item : Bất kỳ một tài sản nào liên quan tới quá trình hoạt động kinh doanh của ngân
hàng.
73
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Chú ý, đối với thông tin Khách hàng Cá nhân, Doanh nghiệp, Định chế, cần thực hiện
mapping dữ liệu để đẩy thông tin lên các bảng tương ứng IND và ORG.
Đối với thông tin về IP_ID của Cán bộ quản lý khách hàng (là nhân viên của BIDV)
sẽ được cập nhật sau khi hoàn thành ETL cho IP, CST, IND và ORG.
Associatives
Hình 3. 19: Quy trình chạy ETL vùng Atomic cho vùng Arrangement
74
Nguyễn Quang Hưng Chuyên Đề Thực Tập
B.CLT_VAL_LCY VAL_LCY,
B.CLT_VAL_FCY VAL_FCY,
#pdate# PPN_DT,
#pdate# EFF_DT,
99991231 END_DT,
A.REC_IND REC_IND
FROM IFTB_CLT_MASTER_MNS_2022 A
Hình 3. 20: Chạy job tạm vùng Atomic của Resource Item Val
75
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT A.RI_ID,
A.SRC_STM_ID,
A.CCY_ID,
A.VAL_LCY,
A.VAL_FCY,
A.PPN_DT
FROM TWT_RI_VAL_2022_Kien A
Hình 3. 21: Chạy job đích vùng Atomic của Resource Item Val
76
Nguyễn Quang Hưng Chuyên Đề Thực Tập
ON A.CLT_CODE = B.CLT_CODE
Hình 3. 22: Chạy job tạm vùng Atomic của Resource Item X IP
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT TWT.RI_ID,
TWT.IP_ID,
TWT.SRC_STM_ID,
#pdate# PPN_DT,
TWT.RIX_IP_RLTNP_TP_ID,
#pdate# EFF_DT,
99991231 END_DT
ON TWT.RI_ID = B.RI_ID
77
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 23: Chạy job đích vùng Atomic của Resource Item X IP
c. Resource Item
Với job đẩy dữ liệu lên bảng tạm, với câu SQL ở INPUT là:
SELECT
A.CLT_CODE UNQ_ID_IN_SRC_STM,
A.MAT_DT PPN_DT
FROM IFTB_CLT_MASTER_TDY_2022 A
78
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT A.RI_ID,
A.UNQ_ID_IN_SRC_STM,
A.RI_TP_ID,
A.PPN_DT
FROM TWT_RI_2022_Kien A
79
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 25: Chạy job đích vùng Atomic của Resource Item
d. Organization Unit
Với job đẩy dữ liệu lên bảng tạm, với câu SQL ở INPUT là:
SELECT FUNCTION_HASH02('IP' || '|' || 'IFTB.BRANCH' , A.BR_CODE) OU_ID, #pdate# ppn_dt,
ON A.BR_CODE = B.BR_CODE
80
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 26: Chạy job tạm vùng Atomic của Organization Unit
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT A.OU_ID,
A.PPN_DT,
A.SRC_STM_ID,
A.ORG_CODE
81
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 27: Chạy job đích vùng Atomic của Organization Unit
#pdate# ppn_dt,
B.EFF_CST_DT EFF_DT,
ON A.CST_ID = B.CST_ID
82
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 28: Chạy job tạm vùng Atomic của Involved Party X IP
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT TWT.SBJ_IP_ID,
TWT.OBJ_IP_ID,
TWT.SRC_STM_ID,
#pdate# PPN_DT,
TWT.IPX_IP_RLTNP_TP_ID,
#pdate# EFF_DT,
19991231 END_DT
ON TWT.SBJ_IP_ID = B.SBJ_IP_ID
83
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 29: Chạy job đích ùng Atomic của Involved Party X IP
f. Customer
Với job đẩy dữ liệu lên bảng tạm, với câu SQL ở INPUT là:
SELECT
FSSTRAINING.FUNCTION_HASH02('CL|IP_LC_ST_TP',B.CST_STATUS) cst_lcs_tp_id,
A.cst_id UNQ_ID_IN_SRC_STM,
FUNCTION_HASH02('CL|CST_TP',
B.EFF_CST_DT EFF_DT,
99991231 END_CST_DT,
A.REC_IND REC_IND
84
Nguyễn Quang Hưng Chuyên Đề Thực Tập
on A.CST_ID = B.CST_ID ;
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT A.CST_ID,
A.CST_LCS_TP_ID,
A.UNQ_ID_IN_SRC_STM,
A.CST_TP_ID ,
A.IDY_TP_ID,
A.CST_MKT_SQE_ID
85
Nguyễn Quang Hưng Chuyên Đề Thực Tập
g. Currency
Với job đẩy dữ liệu lên bảng tạm, với câu SQL ở INPUT là:
SELECT
C.CCY_CODE CCY_CODE ,
20220101 PPN_DT,
B.REC_IND
FROM
ON C.CCY_CODE = B.CCY_CODE;
86
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Với job đẩy dữ liệu từ bảng tạm lên bảng đích, với câu SQL ở INPUT là:
SELECT A.CCY_ID ,
A.CCY_CODE,
A.SRC_STM_ID ,
A.PPN_DT,
A.REC_IND
87
Nguyễn Quang Hưng Chuyên Đề Thực Tập
88
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Tất cả các phân cấp được định nghĩa trong chính bảng dimension của nó.
Không có giá trị 'mã' nào được định nghĩa là thuộc tính dimension, trừ khi mã mang ý
nghĩa kinh doanh (ví dụ: đơn vị tiền tệ). Tất cả các cột của bản ghi Phân loại đã được
chuyển đổi sang tên hoặc từ mô tả tương đương.
Tất cả khóa chính của mỗi dimension (và khoá ngoại trong mỗi fact) đều có tiêu chuẩn
đặt tên của Dimension ID với định dạng xxxxxxx
Hệ thống bản ghi định danh được giữ như một thuộc tính của dimension trong trường hợp
có Hệ thống Bản ghi tương đương (ví dụ: Khách hàng, Tổ chức và Đơn vị Tổ chức).
Khóa chính là 'Dimension Id' nói trên. Mỗi lần có thay đổi đối với bản ghi dimension,
một dimension Id mới được tạo và tất cả dữ liệu fact được liên kết với khoá của
dimension mới đó. Các định danh Surrogate key của hệ thống bản ghi không thay đổi
nhằm mục đích lưu lịch sử.
d. Cấu trúc Dimension
Công cụ báo cáo yêu cầu dữ liệu thứ bậc của dimension được 'trải' ra; Điều này có nghĩa
là cha của một phần tử báo cáo xuất hiện trong một cột ở bên trái mục. Tất cả các mục
‘thiếu' được "thêm" để tạo ra một cấu trúc chuẩn. Cấu trúc trải được sử dụng để drill lên
và xuống và tóm tắt bảng thực tế một cách dễ dàng.
e. Sơ đồ mô hình logic các Dimension chính
Như đã định nghĩa ở trên, những điều sau đây được coi là các dimension chính hoặc phổ
biến. Khách hàng và hợp đồng có thể được sử dụng như là các vùng phân tích theo quyền
của họ.
89
Nguyễn Quang Hưng Chuyên Đề Thực Tập
90
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Số dư trung bình - số dư trung bình cho mỗi lần sắp xếp được tính cho các khoảng thời
gian sau
Tháng đến ngày - từ ngày đầu tiên của tháng đến ngày phân tích hiện tại
Quý đến ngày - từ ngày đầu tiên của quý đến ngày phân tích hiện tại
Năm đến ngày - từ ngày đầu tiên của năm đến ngày phân tích hiện tại.
3.6.2. Các job DIMENSION trong DataMart
Job đẩy dữ liệu từ Atomic vào bảng tạm trên Datamart
Job này sẽ xác định những bản ghi thay đổi ở Atomic ngày hôm nay và chuẩn bị dữ liệu
cần sử dụng trên bảng đích ở Datamart đẩy vào bảng tạm.
a. Currency Dimension
Stage Input, sử dụng câu lệnh SQL:
SELECT
A.CCY_DIM_ID,
A.CCY_ID CCY_ID,
A.CCY_CODE CCY_CODE,
A.SRC_STM_ID SRC_STM_ID,
#pdate# EFF_DT,
99991231 END_DT
FROM CCY_DIM_2022 A INNER JOIN TWT_CCY_DIM_2022 B ON A.CCY_ID =
B.CCY_ID
WHERE A.EFF_DT <= #pdate# AND A.END_DT > #pdate#
AND NOT (NVL (A.CCY_CODE, '$X$') = NVL (B.CCY_CODE, '$X$')
AND NVL (A.SRC_STM_ID, '$X$') = NVL (B.SRC_STM_ID, '$X$'));
91
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là Job Dimension nên mình áp dụng đẩy dữ liệu từ bảng tạm trên Datamart vào
bảng đích
Job sẽ sử dụng dữ liệu từ bảng tạm vừa chuẩn bị ở trước đẩy vào bảng đích.
Stage Input, ta sử dụng câu lệnh SQL:
Câu select lấy bản ghi mới, hoặc thay đổi và lấy bản ghi cũ thay đổi ngày END_DT
SELECT CCY_ID, CCY_CODE, SRC_STM_ID, PPN_DT FROM CCY_2022
WHERE PPN_DT = #pdate#
Stage Output : Set connection là connection tới Datamart (ORA_CONN_DMT), Write
mode là Delete then Insert, Table action là Append:
92
Nguyễn Quang Hưng Chuyên Đề Thực Tập
b. Customer Dimension
Stage Input, sử dụng câu lệnh SQL:
SELECT CST.CST_ID CST_ID,
IP.UNQ_ID_IN_SRC_STM CST_CODE,
IP.IP_NM CST_NM,
TYP.CL_CODE CST_TP,
STT.CL_CODE CST_LC_ST_TP,
K.ORG_CODE PRIM_OU_CODE,
CST.EFF_CST_DT EFF_CST_DATE,
CST.END_CST_DT END_CST_DATE
FROM
cst_khoanv CST
LEFT JOIN IP_KHOANV IP ON
93
Nguyễn Quang Hưng Chuyên Đề Thực Tập
CST.CST_ID = IP.IP_ID
LEFT JOIN (
SELECT
OU.ORG_CODE ,
CST_OU.OBJ_IP_ID,
CST_OU.SBJ_IP_ID ,
CST_OU.EFF_DT ,
CST_OU.END_Dt
FROM
IP_RLTNP_KHOANV CST_OU
LEFT JOIN OU_KHOANV OU ON
OU.OU_ID = cst_ou.OBJ_IP_ID ) K
ON K.SBJ_IP_ID = CST.CST_ID
AND K.EFF_DT <= #pdate# AND K.END_DT > #pdate#
LEFT JOIN CV_KHOANV TYP
ON TYP.CL_ID = CST.CST_TP_ID
LEFT JOIN CV_KHOANV STT
ON STT.CL_ID = CST.CST_LCS_TP_Id;
Stage Ouput: Set connection là connection tới Datamart (ORA_CONN_DMT), Write
mode là Insert, Table action là Truncate.
Kết quả sau khi chạy job:
94
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là Job Dimension nên mình áp dụng đẩy dữ liệu từ bảng tạm trên Datamart vào
bảng đích theo mô hình input old-new
Job sẽ sử dụng dữ liệu từ bảng tạm vừa chuẩn bị ở trước đẩy vào bảng đích.
Stage Input, ta sử dụng câu lệnh SQL:
Câu select lấy bản ghi mới, hoặc thay đổi và lấy bản ghi cũ thay đổi ngày END_DT
SELECT A.CST_DIM_ID,
A.CST_ID,
A.CST_CODE,
A.CST_NM,
A.CST_TP,
A.CST_LC_ST_TP,
A.PRIM_OU_CODE,
A.EFF_DT,
95
Nguyễn Quang Hưng Chuyên Đề Thực Tập
#pdate# END_DT
FROM CST_DIM_2022 A INNER JOIN TWT_CST_DIM_2022 B ON A.CST_ID =
B.CST_ID
WHERE A.EFF_DT <= #pdate# AND A.END_DT > #pdate#
AND NOT (
NVL(A.CST_NM, '$X$') = NVL(B.CST_NM, '$X$')
AND NVL(A.CST_TP, '$X$') = NVL(B.CST_TP, '$X$')
AND NVL(A.CST_LC_ST_TP, '$X$') = NVL(B.CST_LC_ST_TP, '$X$')
AND NVL(A.PRIM_OU_CODE, '$X$') = NVL(B.PRIM_OU_CODE, '$X$'));
Stage Output : Set connection là connection tới Datamart (ORA_CONN_DMT), Write
mode là Delete then Insert, Table action là Append:
c. Organization Unit
Stage Input, sử dụng câu lệnh SQL:
96
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là Job Dimension nên mình áp dụng đẩy dữ liệu từ bảng tạm trên Datamart vào
bảng đích
Job sẽ sử dụng dữ liệu từ bảng tạm vừa chuẩn bị ở trước đẩy vào bảng đích.
Stage Input, ta sử dụng câu lệnh SQL:
Câu select lấy bản ghi mới, hoặc thay đổi và lấy bản ghi cũ thay đổi ngày END_DT:
SELECT SEQ_OU_DIM.NEXTVAL OU_DIM_ID ,
A.OU_ID ,
97
Nguyễn Quang Hưng Chuyên Đề Thực Tập
A.OU_CODE,
A.SRC_STM_ID,
#pdate# EFF_DT,
99991231 END_DT
FROM TWT_OU_DIM A
WHERE NOT EXISTS
(
SELECT 1 FROM OU_DIM_2022 B
WHERE A.OU_ID = B.OU_ID
AND NVL(A.OU_CODE, '$X$') = NVL(B.OU_CODE, '$X$')
AND NVL(A.SRC_STM_ID, '$X$') = NVL(B.SRC_STM_ID, '$X$')
AND B.EFF_DT <= #pdate# AND B.END_DT > #pdate#);
Stage Output : Set connection là connection tới Datamart (ORA_CONN_DMT), Write
mode là Delete then Insert, Table action là Append:
98
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là Job Dimension nên mình áp dụng đẩy dữ liệu từ bảng tạm trên Datamart vào
bảng đích
Job sẽ sử dụng dữ liệu từ bảng tạm vừa chuẩn bị ở trước đẩy vào bảng đích.
Stage Input, ta sử dụng câu lệnh SQL:
Câu select lấy bản ghi mới, hoặc thay đổi và lấy bản ghi cũ thay đổi ngày END_DT:
99
Nguyễn Quang Hưng Chuyên Đề Thực Tập
SELECT A.RI_DIM_ID ,
A.RSC_ID ,
A.RSC_CODE ,
#pdate# EFF_DT,
99991231 END_DT
FROM TWT_RI_DIM_2022 B JOIN RI_DIM_2022 A ON A.RSC_ID = B.RSC_ID
WHERE A.EFF_DT <= #pdate# AND A.END_DT > #pdate#
AND A.RSC_ID = B.RSC_ID
AND NVL(A.RSC_CODE, '$X$') = NVL(B.RSC_CODE, '$X$')
Stage Output : Set connection là connection tới Datamart (ORA_CONN_DMT), Write
mode là Delete then Insert, Table action là Append:
100
Nguyễn Quang Hưng Chuyên Đề Thực Tập
SMY.CLS_BAL_FCY,
SMY.CLS_BAL_LCY,
SMY.MSR_PRD_ID,
PD.UNQ_ID_IN_SRC_STM PD_CODE,
CST.CST_ID,
OU.ORG_CODE OU_CODE,
AR.AR_ID,
SMY.CCY_ID
101
Nguyễn Quang Hưng Chuyên Đề Thực Tập
(AR_X_CST.ARX_IP_RLTNP_TP_ID = AR_X_CST_RLTNP_TP.CL_ID
AND AR_X_CST_RLTNP_TP.CL_CODE = 'AR_X_CST')
102
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 35: Chạy job tạm vùng DataMart của Arrangement Analysis Fact
Đây là Job Fact nên chúng ta áp dụng kiểu đẩy dữ liệu 1-1
Stage Input : Set connection là connection tới Datamart (ORA_CONN_DMT)
Ta sử dụng câu lệnh SQL:
SELECT
NVL(AC_AR_DIM.AC_AR_DIM_ID, 999999),
NVL(CST_DIM.CST_DIM_ID, 999999),
NVL(CCY_DIM.CCY_DIM_ID, 999999),
NVL(PD_DIM.PD_DIM_ID, 999999),
NVL(OU_DIM.OU_DIM_ID, 999999),
FCT.CLS_BAL_FCY,
FCT.CLS_BAL_LCY,
FCT.MSR_PRD_ID RPT_DT_DIM_ID
103
Nguyễn Quang Hưng Chuyên Đề Thực Tập
(AC_AR_DIM.AC_AR_ID = FCT.AR_ID
( CST_DIM.CST_ID = FCT.CST_ID
(CCY_DIM.CCY_ID = FCT.CCY_ID
(PD_DIM.PD_CODE = FCT.PD_CODE
(OU_DIM.OU_CODE = FCT.OU_CODE
104
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 36: Chạy job đích vùng DataMart của Arrangement Analysis Fact
105
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 37: Chạy job tạm vùng DataMart của Card Arrangement Analysis Fact
Đây là Job Fact nên chúng ta áp dụng kiểu đẩy dữ liệu 1-1
Stage Input : Set connection là connection tới Datamart (ORA_CONN_DMT)
Ta sử dụng câu lệnh SQL:
SELECT TWT.RPT_DT_DIM_ID,
nvl(aa.AC_AR_DIM_ID, 999999) AC_AR_DIM_ID,
nvl(cst.CST_DIM_ID, 999999) CST_DIM_ID,
ou.OU_DIM_ID,
106
Nguyễn Quang Hưng Chuyên Đề Thực Tập
nvl(twt.CLS_BAL_FCY,0) CLS_BAL_FCY,
nvl(twt.CLS_BAL_LCY,0) CLS_BAL_LCY
FROM TWT_CARD_AR_ANL_FCT_2022 twt
LEFT JOIN AC_AR_DIM_2022 AA
ON AA.AC_AR_ID = TWT.AC_AR_ID AND aa.EFF_DT <= #pdate# AND
aa.END_DT > #pdate#
LEFT JOIN CST_DIM_2022 CST
ON TWT.CST_ID = cst.CST_ID AND cst.EFF_DT <= #pdate# AND cst.END_DT >
#pdate#
LEFT JOIN OU_DIM_2022 ou
ON twt.OU_ID = ou.OU_ID
WHERE twt.RPT_DT_DIM_ID = #pdate#
Stage Output : Set connection là connection tới Datamart (ORA_CONN_DMT) , Write
mode là Insert, Table action là Append, tại mục Run before and after SQL statements
chọn Yes, điền câu delete ngày dữ liệu = ngày chạy dữ liệu vào mục Before SQL
statement.
Kết quả sau khi chạy job:
107
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Hình 3. 38: Chạy job đích vùng DataMart của Card Arrangement Analysis Fact
c. Resource Analysis
Stage Input, sử dụng câu lệnh SQL:
SELECT
NVL(E.CST_DIM_ID,999999) CST_DIM_ID,
NVL(C.CCY_DIM_ID,999999) CCY_DIM_ID,
NVL(B.VAL_LCY,0) CLS_BAL_LCY,
NVL(B.VAL_FCY,0) CLS_BAL_FCY,
#pdate# RPT_DT_DIM_ID
FROM SOR_RI_2022 A
LEFT JOIN SOR_RI_VAL_2022 B ON A.RI_ID = B.RI_ID
LEFT JOIN CCY_DIM_2022 C ON B.CCY_ID = C.CCY_ID AND B.EFF_DT <=
#pdate# AND #pdate# < B.END_DT
LEFT JOIN TWT_RIX_IP_RLTNP_MAS_2022 D ON A.RI_ID = D.RI_ID
108
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Đây là Job Fact nên chúng ta áp dụng kiểu đẩy dữ liệu 1-1
Stage Input : Set connection là connection tới Datamart (ORA_CONN_DMT)
Ta sử dụng câu lệnh SQL:
SELECT TWT.RPT_DT_DIM_ID,
nvl(aa.AC_AR_DIM_ID, 999999) AC_AR_DIM_ID,
nvl(cst.CST_DIM_ID, 999999) CST_DIM_ID,
ou.OU_DIM_ID,
nvl(twt.CLS_BAL_FCY,0) CLS_BAL_FCY,
nvl(twt.CLS_BAL_LCY,0) CLS_BAL_LCY
FROM TWT_CARD_AR_ANL_FCT_2022 twt
109
Nguyễn Quang Hưng Chuyên Đề Thực Tập
110
Nguyễn Quang Hưng Chuyên Đề Thực Tập
111
Nguyễn Quang Hưng Chuyên Đề Thực Tập
112
Nguyễn Quang Hưng Chuyên Đề Thực Tập
113
Nguyễn Quang Hưng Chuyên Đề Thực Tập
114
Nguyễn Quang Hưng Chuyên Đề Thực Tập
115
Nguyễn Quang Hưng Chuyên Đề Thực Tập
KẾT LUẬN
Sau một thời gian thực tập, em đã nghiên cứu và học hỏi được rất nhiều điều. Và cuối
cùng cũng đã hoàn thành đề tài với sự hướng dẫn nhiệt tình của giáo viên hướng dẫn và
anh chị đội ngũ Database ở Công ty FSS.
Các kết quả đạt được
Mục tiêu của đề tài phân tích quy trình ETL trong kho dữ liệu để quản lý lượng thông tin
lớn của ngân hàng. Sau đó thực hành việc đẩy dữ liệu qua quy trình ETL trong kho dữ
liệu.
Thông qua nội dung của đề tài từ chương 1 tới chương 3, em đã lần lượt trình bày về khái
niệm chung của kho dữ liệu, kiến trúc chung cũng như các mô hìnhlogic thường dùng,
hiện trạng kho dữ liệu hiện nay của ngân hàng. Tiếp theo em đã trình bày kiến trúc kho
dữ liệu mới dựa trên nền tảng công nghệ của hãng IBM từ CSDL đến công cụ ETL và
ứng dụng khai thác báo cáo.
Trên cơ sở tầng Atomic và Data Mart, với mô tả chi tiết các thực thể dữ liệu, từ cấu trúc
đến liên kết giữa các thực thể, hệ thống phân phối báo cáo trên công nghệ IBM Cognos sẽ
cung cấp các báo cáo phục vụ phân tích khách hàng.
Những điểm còn hạn chế
Mô hình của kho dữ liệu đưa ra trong đề tài chưa được kiểm nghiệm thực tế trong một
khoảng thời gian đủ dài để đảm bảo khả năng đáp ứng hiệu năng của ngân hàng.
Kho dữ liệu chưa có điều kiện thử nghiệm tích hợp từ các nguồn dữ liệu có độ phức tạo
cao.
Về thời gian đáp ứng, kho dữ liệu chưa xử lý được dữ liệu giao dịch trong ngày mà chỉ
kết xuất và xử lý vào cuối ngày.
Hướng phát triển trong tương lai
Tối ưu hóa lưu trữ trong CSDL để giảm thời gian trích xuất dữ liệu phục vụ báo cáo. Tối
ưu luồng xử lý đề giảm thời gian vận hành của kho dữ liệu hàng ngày, đẩy thời gian sẵn
sàng về báo cáo của ngân hàng lên càng sớm càng tốt.
Nhu cầu về các bài toán tổng hợp phân tích dữ liệu của ngân hàng luôn luôn phát triển,
dựa trên nghiệp vụ thực tế của Ngân hàng nhà nước, các thông tư và nghị định mới xuất
hiện liên tục vì vậy kho dữ liệu bắt buộc phải cập nhật theo thời gian thực.
Sau khi hoàn thành đề, em sẽ tiếp tục tìm hiểu và nghiên cứu, xử lý các lỗi ngoài ý muốn
và tăng các tính năng, tối ưu hóa tốc độ xử lý để đem lại hiệu quả cao hơn và cải tiến hệ
thống này lên trang web.
116
Nguyễn Quang Hưng Chuyên Đề Thực Tập
Tuy nhiên do kinh nghiệm chuyên môn chưa sâu và thời gian hoàn thành có hạn nên đề
tài của em vẫn còn những thiếu sót, em rất mong nhận được những ý kiến đóng góp của
cô và các bạn để đề tài của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
117
Nguyễn Quang Hưng Chuyên Đề Thực Tập
118