3 .1Giới thiệu về bộ dữ liệu hợp đồng giao dịch trong data warehouse
3.1.3 Nhóm Arrangement (AR)
Mơ tả Tên cột Mơ tả
TXN_ID Mã khóa giao dịch TXN_DT Ngày giao dịch
TXN_TP_ID Mã loại giao dịch TXN_VAL_DT Ngày giá trị giao dịch
TXN_CCY_ID Mã tiền tệ giao dịch TXN_TM Thời gan giao dịch
PRIM_AR_ID Mã hợp đồng TXN_VAL_TM Thời gian giá trị giao
dịch NET_CASH_FLOW_A
MT
Sô lưu chuyên tiền mặt TXN_CODE Mã giao dịch
TXN_ST_CODE Mã trạng thái giao dịch TXN_USR_ID Mã giao dịch người
dùng
TXN_BTCH_NBR Sô lô giao dịch TXN_SPVSR_ID Mã giám sát giao
dịch
TXN_SEQ_NBR Sô chuỗi giao dịch TXN_AUXILIA
RY_CODE
Mã giao dịch phụ trợ cho giao dịch
TXN_SRL_NBR Sô thứ tự giao dịch TXN_PST_ORD
R_NBR
Lệnh đăng ký giao dịch
TXN_OU_ID Mã tổ chức giao dịch TXN_ACG_GRP
_CODE
Mã nhóm sổ cái chính giao dịch
TXN_SRC_OU_ID Mã nguồn tổ chức giao
dịch
TXN_ADDITIO N_INF
Thông tin bổ sung cho giao dịch
TXN_AFFECT_TP_ID Mã loại hiệu lực giao
dịch
TXN_SRC Nguồn giao dịch
TXN_AFFECT_CODE _AT_LAST_AVY
Mã hiệu quả giao dịch cuôi cùng
TXN_ORIG_CC Y_ID
Gôc tiền tệ giao dịch
TXN_ORIG_AMT Khoản tiền gơc giao
dịch
Bảng 3.7: Bảng các thuộc tính của bảng AR
Khóa luận tơt nghiệp Quy trình xây dựng và kiêm thử data warehouse
3.1.4 Nhóm Event
tại quy đổi LCY
MSR_PRD_ID Mã thời gian
hiện tại
CR_AMT_TODAY_FCY Khoản tín dụng
hiện tại FCY
SRO_ID Mã trường hợp
hợp đồng
CR_AMT_TODAY_LCY Khoản tín dụng
hiện tại quy đổi LCY
UOM_ID Mã thước đo đơn
vị
ACR_OD_INT_PTD_FCY Khoản lãi quá
hạn
CLS_BAL_TODAY_FCY Sô dư cuôi ngày
FCY
ACR_OD_INT_PTD_LCY Khoản lãi quá
hạn quy đổi
CLS_BAL_TODAY_LCY Sô dư cuôi ngày
quy đổi LCY
HOLD_AMT_FCY Khoản giữ lại
DB_AMT_TODAY_FCY Khoản nợ hiện
tại FCY
HOLD_AMT_LCY Khoản giữ lại
quy đổi LBY_ACR_INT_PTD_LC
Y
Khoản tiền phải trả
LBY_ACR_INT_PTD_FC
Y Khoản tiền phải
trả quy đổi
Bảng 3.8: Bảng các thuộc tính của bảng TXN
3.1.5 Nhóm Associatives
Là nhóm job lưu như lịch sử mơi quan hệ bao gồm các bảng quan hệ: AR_X_PD_RLTNP: Biêu diễn sự liên hệ giữa hợp đồng với sản phẩm
AR_X_IP_RLTNP: Biêu diễn những môi liên hệ giữa hợp đồng với các đôi tượng AR_X_AU_RLTNP: Biêu diễn những môi liên hệ giữa hợp đồng và đơn vị kế toán IP_X_IP_RLTNP: Lưu trữ những thông tin về sự tương tác giữa các đôi tượng trong kho dữ liệu
3.1.6 Nhóm Sumary
Là nhóm bảng lưu trữ dữ liệu tính tốn tổng hợp, chuẩn bị đê đẩy lên các bảng fact (Data Mart)
3.1.7 Nhóm Dim
Cung cấp các thơng tin ngữ cảnh cho bảng fact và do đó cũng là cung cấp tất cả số liệu chính được thể hiện trong DWH
Đối với data warehouse nghiên cứu gồm những bảng Dimension như sau: CST_DIM, AR_DIM, CCY_DIM, OU_DIM, LOB_DIM, PD_DIM
3.1.8 Nhóm fact
Là bảng đầu ra cuối cùng của toàn hệ thống DWH - BI, chứa tồn bộ các thơng tin cần thiết cho việc phân tích dữ liệu và tạo các báo cáo liên quan
3.2Xây dựng tescase kiểm thử data warehouse lưu trữ dữ liệu hợp đồng giao dịch trong ngân hàng
Khi thực hiện test data warehouse cần test các thành phần của data warehouse, đảm bảo rằng dữ liệu được truyền chính xác. Dựa trên đặc tính của mỗi tầng trong data warehouse
- Vùng staging
Vùng này lưu dữ liệu của tất cả các bảng của các nguồn dữ liệu theo số liệu của ngày thực hiện ETL. Đây là nơi các ứng dụng khai thác dữ liệu của ngân hàng tiến hành lấy dữ liệu nhằm giảm tải thời gian truy suất vào các hệ thống xử lý giao dịch của ngân hàng
Lưu trữ:
- Dữ liệu hiện tại - Dữ liệu thay đổi
- Vùng System Of Record
Lưu toàn bộ dữ liệu của tầng dữ liệu System Of Record theo mơ hình IBM Banking Data Model, bao gồm cac phân chính sau:
> Classification: Thơng tin mang tính chất phân loại
> Involved Party: Các bên liên quan
> Arrangement: Lưu trữ thông tin về các hợp đồng
> Accounting: Thơng tin liên quan tới kế tốn
> Event: Sự kiện
Chức năng Dữ liệu đầu vào Kết quả mong đợi
Count + Sô các bản ghi trong ở nguồn
SI_DAT_CFMAST trên tầng staging + Tập các bản ghi có trong bảng IP ở tầng SOR
Dữ liệu nguồn và đích trùng nhau
Khóa luận tốt nghiệp Quy trình xây dựng và kiêm thử data warehouse - Vùng Data Mart
Lưu dữ liệu được phân ra theo từng chủ đề. Xây dựng tầng data mart phục vụ cho các báo cáo phân tích được dễ dàng hơn
Hình 3.1: Mối liên hệ giữa các tầng trong data warehouse
Dựa vào luồng ETL tổng có thê thấy dữ liệu sau khi được làm sạch sẽ được chuyên lên tầng staging sau đó được chuẩn hóa vào tầng sor. Dữ liệu từ staging sẽ được đẩy vào các bảng lưu thông tin chung như CV, PD, EXG_RATE trước sau đó sẽ vào những bảng master là IP, AR, TXN.Từ những bảng master sẽ tạo thành các bảng quan hệ như AR_X_IP, AR_X_PD...sau đó tính tốn tổng hợp dữ liệu lên bảng AR_TVR_SMY. Dữ liệu tại tầng SOR sẽ được phân theo chủ đề và được đẩy vào bảng AR_ANL_FCT.
Khóa luận tơt nghiệp Quy trình xây dựng và kiêm thử data warehouse
3.2.1 Test tầng SOR
IPID
Kiêm tra khóa nguồn hệ thơng
Cột UNQ_ID_IN_SRC_STM trong bảng ID được truyền thẳng từ trường CFCIFN trong nguồn SI_DAT_CFMAST
Khơng có bản ghi nào trả về có giá trị khơng trùng khớp giữa nguồn và đích ( có trong nguồn phải được đẩy lên sor và có trong sor thì phải tồn tại trong tầng staging
Kiêm tra thuộc
tính Thuộc tính EFT_DT trong bảng IP đượclấy từ trường CFORGD trong CFMAST
với định dạng date ‘YYYYDDD’
Khơng có bản ghi nào có giá trị thuộc tính EFT_DT khác với thuộc tính code được trả về Thuộc tính END_DT được truyền thẳng từ
cột REC_IND trong CFMASTMINUS nếu trường REC_IND nhận giá trị = D thì có định dạng to_date(t.PPN_DT,
'YYYYDDD') cịn khơng thì nhận giá trị to_date('20991231','yyyymmdd')
Khơng có bản ghi nào có giá trị thuộc tính END_DT khác với thuộc tính code được trả về
Thuộc tính IP_NM được truyền thẳng từ
trường CFNA1 trong SI_DAT_CFMAST Khơng có bản ghi nào có giá trịthuộc tính IP_NM khác với
thuộc tính code được trả về
Thuộc tính SRC_STM_ID trong bảng IP Khơng có bản ghi nào có giá trị
thuộc tính SRC_STM_ID khác với thuộc tính code được trả về Thuộc tính SRC_STM_ID được truyền từ
cột CL_ID với điều kiện
CL_SCM_CODE='SRC_STM’ và
Khơng có bản ghi nào có giá trị thuộc tính SRC_STM_ID khác với thuộc tính code được trả về
CL_CODE='SIBS_SI_DAT_CFMAST' Thuộc tính UNQ_ID_IN_SRC_STM được truyền thẳng từ cột CFCIFN trong nguồn SI_DAT_CFMAST
Khơng có bản ghi nào có giá trị
thuộc tính
UNQ_ID_IN_SRC_STM khác với thuộc tính code được trả về
Bảng 3.10: Kịch bản kiểm thử bảng IP
❖Kiểm tra tổng số bản ghi của nguồn (SI_DAT_CFMAST) và đích (IP) - Nguồn
Select count (*) from STAGING.SI_DAT_CFMAST - Đích
Select count (*) FROM ip
Where SRC_STM_ID= (select cl_id from CV where cl_scm_code='SRC_STM' and cl_code='SIBS_SI_DAT_CFMAST');
Ket quả: Nguồn trùng đích (= 325480 bản ghi)
❖Kiểm tra sự trùng lặp dữ liệu ở trường khóa chính (IP_ID)
Select UNQ_ID_IN_SRC_STM || SRC_STM_ID, count (UNQ_ID_IN_SRC_STM || SRC_STM_ID)
From ip
Group by UNQ_ID_IN_SRC_STM || SRC_STM_ID
Having count (UNQ_ID_IN_SRC_STM || SRC_STM_ID) > 1; Kết quả: Khơng có bản ghi nào bị trùng lặp theo từng đối tượng IP_ID
❖Check null Select count (1)
From fsstraining_sor.ip
Where unq_id_in_src_stm is null Kết quả: Trường khóa unq khơng bị để trống
❖Check key Select count (1) From
(Select TO_CHAR (NVL (UNQ_ID_IN_SRC_STM,'99999') From fsstraining_sor.ip
Where src_stm_id = '60001' and
Not exists (Select TO_CHAR (NVL (CFCIFN,'99999')) from STAGING.SI_DAT_CFMAST))
Kết quả: Các giá trị của IP ở trong sor đều có ở trong nguồn
❖Check thuộc tính
- Kiêm tra thuộc tính IP_NM trong đích Select NVL (IP_NM,'99999') ip_nm From fsstraining_sor.ip
Where src_stm_id='60001' and not exists (Select b.CFNA1
From fsstraining_sor.IP a, STAGING.SI_DAT_CFMAST b Where a.unq_id_in_src_stm = b.cfcifn)
- Kiêm tra thuộc tính IP_NM ở nguồn Select NVL (CFNA1,'99999') cfna1 From staging.si_dat_cfmast
Where not exists
(Select NVL (IP_NM,'99999') ip_nm
From fsstraining_sor.IP b, STAGING.SI_DAT_CFMAST a Where a.cfcifn = b.unq_id_in_src_stm and src_stm_id='60001') Ket quả: Các giá trị của thuộc tính IP_NM khớp với thuộc tính code
❖Kiêm tra tất cả các thuộc tính của bảng IP có trường mã loại đôi tượng (IP_TP_ID) không khớp với u cầu hay giữa nguồn và đích có 1 bản ghi khơng trùng khớp.
Count Sô bản ghi ở bảng SI_DAT_DDMAST trong STAGING
Sô bản ghi bảng AR trong tầng SOR
Dữ liệu nguồn và đích trùng nhau
Kiêm tra trùng lặp
Cột AR_ID trong bảng AR Khơng có sự trùng lặp ở trường
AR_ID Mỗi 1 mã nguồn UNQ_ID_IN_SRC_STM
sẽ tương ứng với một mã AR_ID
Khơng có sự trùng lặp ở trường UNQ_ID_IN_SRC_STM
Check null Cột UNQ_ID_IN_SRC_STM phải có giá trị
duy nhất Khơng có bản ghi nào màtrường
UNQ_ID_IN_SRC_STM bị bỏ trông
Check key Các giá trị của cột
UNQ_ID_IN_SRC_STM trong SOR được đẩy từ cột ACCTNO trong STAGING
Các giá trị của khóa nguồn đều được đẩy từ nguồn lên đích
SI_DAT_CFMAST dữ liệu sử dụng đê đẩy lên đích Kiêm tra
thuộc tính Các giá trị của thuộc tínhAR_LC_ST_TP_ID phải khớp với thuộc
tính code
Các giá trị của thuộc tính AR_LC_ST_TP_ID phải khớp với thuộc tính code
Các giá trị của thuộc tính AR_LC_ST_DT
phải khớp với thuộc tính code Các giá trị của thuộc tínhAR_LC_ST_DT phải khớp với
thuộc tính code Các giá trị của thuộc tính AR_NM phải
khớp với thuộc tính code Các giá trị của thuộc tínhAR_NM phải khớp với thuộc
tính code Các giá trị của thuộc tính
AR_TERM_TP_ID
phải khớp với thuộc tính code
Các giá trị của thuộc tính AR_TERM_TP_ID
phải khớp với thuộc tính code Các giá trị của thuộc tính AR_TP_ID phải
khớp với thuộc tính code Các giá trị của thuộc tínhAR_TP_ID phải khớp với thuộc
tính code Các giá trị của thuộc tính DMMN_CCY_ID
phải khớp với thuộc tính code Các giá trị của thuộc tínhDMMN_CCY_ID phải khớp
với thuộc tính code Các giá trị của thuộc tính PPN_DT phải
khớp với thuộc tính code ( được truyền thẳng từ cột ETL_DATE)
Các giá trị của thuộc tính PPN_DT phải khớp với thuộc tính code
Các giá trị của thuộc tính EFF_DT phải khớp với thuộc tính code (được truyền thẳng từ cột DATOP7 trong
SI_DAT_DDMAST với định dạng ‘YYYYDDD’)
Các giá trị của thuộc tính EFF_DT phải khớp với thuộc tính code
Các giá trị của thuộc tính END_DT phải khớp với thuộc tính code ( được truyền thẳng từ cột STATUS trong STAGING với điều kiện khi cột STATUS nhận giá trị bằng 2 thì nó được nhận giá trị là ngày
ETL_DATE cịn khơng thì là ngày với định
Các giá trị của thuộc tính END_DT phải khớp với thuộc tính code
dạng TO_DATE(2099365,'YYYYDDD') Các giá trị của thuộc tính
AR_FORMATTED_SHRT_NM phải khớp với thuộc tính code ( được truyền thẳng từ cột FSNAME trong bảng
SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính AR_FORMATTED_SHRT_N M phải khớp với thuộc tính code
Các giá trị của thuộc tính
AR_OFCR_CODE phải khớp với thuộc tính code ( được truyền thẳng từ cột OFFICR trong bảng SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính AR_OFCR_CODE phải khớp với thuộc tính code
Các giá trị của thuộc tính AR_GRP_NBR phải khớp với thuộc tính code ( được truyền thẳng từ cột DDNUM trong bảng
SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính AR_GRP_NBR phải khớp với thuộc tính code
Các giá trị của thuộc tính ISRT_DT phải khớp với thuộc tính code ( được truyền thẳng từ cột DDGRUP trong bảng SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính ISRT_DT phải khớp với thuộc tính code
Các giá trị của thuộc tính ISRT_DT phải khớp với thuộc tính code (dữ liệu được truyền thẳng từ ngày ETL_DT)
Các giá trị của thuộc tính ISRT_DT phải khớp với thuộc tính code
Các giá trị của thuộc tính ISRT_TM phải khớp với thuộc tính code (dữ liệu được truyền thẳng từ ngày ETL_TM)
Các giá trị của thuộc tính ISRT_TM phải khớp với thuộc tính code
Các giá trị của thuộc tính
SPCL_INF_CODE_1 phải khớp với thuộc tính code ( được truyền thẳng từ cột DDSIC1 trong bảng SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính
SPCL_INF_CODE_1 phải khớp với thuộc tính code
Các giá trị của thuộc tính
SPCL_INF_CODE_2 phải khớp với thuộc tính code ( được truyền thẳng từ cột DDSIC2 trong bảng SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính
SPCL_INF_CODE_2 phải khớp với thuộc tính code
Các giá trị của thuộc tính Các giá trị của thuộc tính
DDSIC3 trong bảng SI_DAT_DDMAST ở STAGING
Các giá trị của thuộc tính
SPCL_INF_CODE_4 được truyền thẳng từ cột DDSIC4 trong bảng
SI_DAT_DDMAST ở STAGING
Các giá trị của thuộc tính
SPCL_INF_CODE_4 phải khớp với thuộc tính code
Các giá trị của thuộc tính
AR_LAST_MNT_USR_ID được truyền thẳng từ cột DDMUID trong bảng SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính AR_LAST_MNT_USR_ID phải khớp với thuộc tính code
Các giá trị của thuộc tính
AR_LAST_WKST_ID được truyền thẳng từ cột DDMWID trong bảng
SI_DAT_DDMAST ở STAGING)
Các giá trị của thuộc tính AR_LAST_WKST_ID phải khớp với thuộc tính code
Chức năng Dữ liệu đầu vào Ket quả mong đợi
Count + Sô các bản ghi ở nguồn SI_DATE_DDDHIS
trên tầng staging
+ Tập các bản ghi có trong bảng TXN ở tầng SOR
Sô bản ghi ở nguồn = Sơ bản ghi trong đích
Kiêm tra thuộc tính
Các giá trị của thuộc tính
NET_CASH_FLOW_AMT được truyền thẳng từ cột AMT trong bảng SI_DAT_ DDDHIS ở
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
❖Kiểm tra tổng số bản ghi của nguồn (SI_DAT_DDMAST) và đích (AR) - Nguồn
Select count (*) from STAGING.SI_DAT_DDMAST - Đích
Select count (*) FROM AR
Where SRC_STM_ID= (select cl_id from CV where cl_scm_code='SRC_STM' and cl_code='SIBS_SI_DAT_DDMAST');
Ket quả: Nguồn trùng đích (=1390189 bản ghi)
❖Kiểm tra sự trùng lặp dữ liệu ở trường khóa chính (UNQ_ID_IN_SRC_STM) Select count (unq_id_in_src_stm)
From fsstraining_sor.ar Group by unq_id_in_src_stm
Having count(unq_id_in_src_stm)>1;
Kết quả: Khơng có bản ghi nào bị trùng lặp theo từng đối tượng UNQ_ID_IN_SRC_STM
❖Check null Select count (1)
From fsstraining_sor.ar
Where unq_id_in_src_stm is null Kết quả: Trường khóa unq khơng bị để trống
❖Check key Select count (1) From ( Select UNQ_ID_IN_SRC_STM From AR MINUS
Select TO_CHAR (ACCTNO) ACCTNO From STAGING.SI_DAT_DDMAST)
Kết quả: Các giá trị của AR ở trong sor đều có ở trong nguồn
❖Check thuộc tính
- Kiêm tra thuộc tính AR_TERM_TP_ID trong đích Select *
From AR
Where AR_TERM_TP_ID<> (Select CL_ID From CV Where
CL_SCM_CODE='AR_TERM_TP' And CL_CODE='VAR_TERM') Ket quả: Các giá trị của thuộc tính IP_NM khớp với thuộc tính code)
❖Kiêm tra tất cả các thuộc tính của bảng IP có trường mã loại đơi tượng (IP_TP_ID) khơng khớp với u cầu hay giữa nguồn và đích có 1 bản ghi khơng trùng khớp, trường
END_DT có 343320 bản ghi được trả về khác nhau giữa nguồn và đích; thuộc tính LAST_ODRWN_DT khơng ở dưới nguồn đẩy lên phải đê null nhưng có 1202895
bản ghi
Các giá trị của thuộc tính TXN_DT được truyền thẳng từ cột TRDATE trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_TM được truyền thẳng từ cột TRTIME trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_VAL_TM được truyền thẳng từ cột TRETIM trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_ST_CODE được truyền thẳng từ cột TRSTAT trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_SEQ_NBR được truyền thẳng từ cột SEQ trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_SRL_NBR được truyền thẳng từ cột SERIAL trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_AFFECT_TP_ID được truyền thẳng từ cột BORI trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính
TXN_AFFECT_CODE_AT_LAST_AVYđược truyền thẳng từ cột AFDOLA trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính
NET_CASH_FLOW_AMT được truyền thẳng từ cột TRANCD trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_CODE được truyền thẳng từ cột TRCDEC trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính DCM_POS_CODE được truyền thẳng từ cột CAMT trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_SRC được truyền thẳng từ cột SOURCE trong bảng SI_DAT_ DDDHIS ở STAGING)
Các giá trị của thuộc tính nguồn khớp với thuộc tính code
Các giá trị của thuộc tính TXN_USR_ID được truyền thẳng từ cột TRUSER trong bảng SI_DAT_