o Pivot (Xoay) cho phép xoay Data-cube theo các chiều dữ liệu, từ đó
cung cấp cho người sử dụng nhiều góc nhìn vào dữ liệu.
Temperature
Hinh 2.21. Thao tác pivot
2.5.3. Cấu trúc bảng fact
Một bảng sự kiện (fact table) là một bảng gồm các phép đo (measure), số liệu (metrics) hoặc sự kiện (fact) của quy trình kinh doanh (business process). Những giá trị định lượng này được sử dụng để biết được business value của doanh nghiệp và để dự báo kinh doanh trong tương lai của doanh nghiệp đó
- Cấu trúc bảng Fact
Bảng Fact gồm những đặc điểm sau:
o Bảng Fact thơng thường sẽ khơng có trường khóa chính riêng, thay
vào đó là một tập hợp các khóa ngoại từ các bảng Dimension liên quan.
o Hầu hết bảng fact còn gồm những trường lưu giá trị số liệu được gọi
là tiêu chí đo (Measurement).
o Có thể có hoặc khơng có các dimension thối hóa (Degenerate
Dimension)
- Các loại bảng Fact
Có 3 loại bảng fact chính: bảng fact giao dịch, bảng fact snapshot và bảng fact tổng hợp:
- Bảng fact giao dịch (Transactional fact table) Đây là những bảng dữ kiện
thường được sử dụng nhất. Mỗi hàng trong bảng này đại diện cho một sự kiện cụ thể trong quy trình kinh doanh. Và bảng fact giao dịch chứa nhiều khóa ngoại hon các loại khác vì có mối quan hệ với tất cả các bảng dimension có thể có.
- Bảng fact snapshot (Accumulating snapshot fact table) Lưu trữ số liệu có
thời gian không định trước. Mỗi bản ghi trong loại bảng này sẽ cập nhật mỗi lần theo trạng thái của thực thể như số dư tài khoản, cấp độ tài khoản, các phép đo nhiệt độ, chiều cao...
- Bảng fact tổng hợp (Periodic snapshot fact table) Bảng fact tổng hợp lưu trữ quy trình kinh doanh trong một khoảng thời gian cụ thể và sẽ lặp lại sau mỗi quy trình. Các dạng thường gặp như bảng fact tổng hợp theo ngày, tháng, năm.
2.5.4. Cấu trúc bảng dimension
Cấu trúc bảng Dimension gồm các thành phần sau:
- Khố thay thế (Surrogate key): là khóa chỉ dùng định danh cho bản ghi và khơng có liên hệ nào với dữ liệu. Khóa thường có giá trị kiểu số và thường được sinh ra bằng các luồng ETL [2].
- Khóa tự nhiên (Natural key):là định danh của bản ghi theo logic của dữ liệu, tức là định danh bản ghi một cách tự nhiên [2].
- Thuộc tính mơ tả (Desciptive attribute): là những trường dữ liệu mô tả chi tiết các thuộc tính cho thực thể, gồm nhiều kiểu dữ liệu khác nhau và số lượng bản ghi cũng có thể rất lớn [2].
2.6. ETL TRONG DATAWAREHOUSE
2.6.1. Khái niệm ETL
ELT là viết tắt của 3 từ Extract - Load - Transform (trích xuất - tải - biến đổi). Trong thời đại của IoT (Internet of Things) khối lượng dữ liệu sẵn có đang tăng với tốc độ chóng mặt, ELT chính là giải pháp để doanh nghiệp khơng chỉ lưu trữ hiệu quả, mà cịn có thể khai thác triệt để các dữ liệu thu thập được.
ETL là quy trình chung sao chép dữ liệu từ một hoặc nhiều nguồn vào hệ thống đích đại diện cho dữ liệu khác. Q trình ETL đã trở thành một khái niệm phổ biến trong những năm 1970 và thường được sử dụng trong kho dữ liệu.[3]
ETL bao gồm 3 q trình
- Extract (Trích xuất): Việc trích xuất các dữ liệu là q trình xác định và trích xuất các dữ liệu cần thiết, từ một hoặc nhiều nguồn khác nhau, như database, file, archives, ERP, CRM, v.v.
- Load (Tải lên): Quy trình này sẽ bao gồm việc tải các dữ liệu được trích xuất sẽ được lên các database xác định.
- Transform (Chuyển đổi): Chuyển đổi dữ liệu chính là quy trình chuyển đổi các dữ liệu từ hình thức cũ trên hệ thống nguồn sang hình thức mới, để phù hợp cho việc phân tích dữ liệu.
2.6.2. Cách thức hoạt động của ETL
2.6.2.1. Giai đoạn trích xuất dữ liệu
Trong giai đoạn này, dữ liệu được trích xuất từ hệ thống nguồn vào khu vực staging area. Các biến đổi được thực hiện trong khu vực staging area để làm tăng hiệu suất của hệ thống. Việc tải dữ liệu trực tiếp vào DW nếu xảy ra sự cố dữ liệu hỏng, lỗi việc khôi phục sẽ là một thách thức lớn. Khu vực staging area tạo cơ hội xác thực dữ liệu được trích xuất trước khi nó được tải vào KDL.
Extract là khâu đầu tiên trong giai đoạn ETL, đại diện cho nhiệm vụ trích xuất dữ liệu từ hệ thống nguồn. Vì dường như có rất ít doanh nghiệp chỉ dùng tới 1 loại dữ liệu để quản lý. Ở bước này, nguồn dữ liệu có cấu trúc cũng như khơng mang cấu trúc sẽ được cập nhật vào một kho dữ liệu dựa trên ngun tác hợp nhất. Nguồn dữ liệu thơ có thể trích xuất từ nhiều khác nhau như:
- Nguồn CSDL hiện có.
- Ứng dụng phục vụ hoạt động bán hàng và tiếp thị.
- Nền tảng lưu trữ dữ liệu.
- Các ứng dụng và thiết bị di động.
- Hệ thống CRM (Quản lý khách hàng).
- Cơng cụ phân tích.
Có hai phương pháp trích xuất dữ liệu:
- Trích xuất tồn bộ (Full Extraction): Trích xuất tất cả dữ liệu vào khu vực
dàn dựng mà khơng cần áp dụng điều kiện.
- Trích xuất một phần (Với thơng báo cập nhật): Trích xuất dữ liệu với thông báo cập nhật do nguồn gửi, nếu một số dữ liệu đã trích xuất có sửa đổi, chỉ trích xuất dữ liệu đã sửa đổi vào khu vực tổ chức.
- Trích xuất một phần (Khơng có thơng báo cập nhật): Trích xuất dữ liệu đang có điều kiện tải, chẳng hạn như trong một số bộ lập lịch hàng ngày chỉ trích xuất dữ liệu hàng ngày đó. Phần cịn lại của dữ liệu mới được thêm vào sẽ được trích xuất trong ngày tương ứng. Bất kể phương pháp được sử dụng, việc trích xuất khơng được ảnh hưởng đến hiệu suất và thời gian phản hồi của hệ thống nguồn. Các hệ thống nguồn này là cơ sở dữ liệu sản xuất trực tiếp. Bất kỳ sự chậm lại hoặc khóa nào có thể ảnh hưởng đến lợi nhuận của công ty [3].
2.6.2.2. Giai đoạn chuyển đổi dữ liệu
Dữ liệu được trích xuất từ hệ thống nguồn là dữ liệu thô gồm nhiều định dạng, cấu trúc khác nhau vì vậy khơng thể sử dụng. Do đó, dữ liệu cần được chuyển đổi. Trên thực tế, đây là bước quan trọng trong đó quy trình ETL thêm giá trị và thay đổi dữ liệu để có thể tạo ra các báo cáo BI sâu sắc.
Đây là quá trình rất quan trọng, nơi áp dụng một tập hợp các hàm trên dữ liệu được trích xuất. Dữ liệu khơng yêu cầu bất kỳ chuyển đổi nào được gọi là di chuyển trực tiếp hoặc truyền qua dữ liệu.
Một số kỹ thuật được sử dụng trong giai đoạn này:
- Lọc dữ liệu
- Chuyển đổi bộ ký tự và xử lý mã hóa
- Chuyển đổi Đơn vị đo lường như Chuyển đổi ngày giờ, chuyển đổi tiền tệ, chuyển đổi số, chuyển đổi chuỗi thành ngày,v.v.
- Kiểm tra xác thực ngưỡng dữ liệu. Ví dụ: tuổi khơng được nhiều hơn hai chữ số.
- Sắp xếp dữ liệu
- Các trường bắt buộc không được để trống.
- Làm sạch (ví dụ: ánh xạ NULL thành 0 hoặc Giới tính Nam thành "M" và Nữ thành "F", v.v.)
- Tách một cột thành nhiều cột và hợp nhất nhiều cột thành một cột duy nhất.
- Chuyển đổi các hàng và cột,
- Sử dụng tra cứu để hợp nhất dữ liệu
2.6.2.3. Giai đoạn tải dữ liệu
Bước cuối cùng trong quy trình ETL là tải dữ liệu mới được chuyển đổi vào một đích mới. Dữ liệu có thể được tải tất cả cùng một lúc (tải đầy đủ) hoặc theo các khoảng thời gian theo lịch trình (tải tăng dần) [3].
Tải tồn bộ - Trong q trình tải tồn bộ ETL, dữ liệu đều đi vào các bản ghi mới, duy nhất trong kho dữ liệu. Mặc dù điều này hữu ích cho mục đích nghiên cứu, nhưng cách tải tồn bộ tạo ra các tập dữ liệu tăng theo cấp số nhân và có thể nhanh chóng trở nên khó bảo trì [3].
Tải tăng dần - Một cách tiếp cận ít tồn diện hơn nhưng dễ quản lý hơn là tải tăng dần. Tải tăng dần so sánh dữ liệu đến với những gì đã có trước đó và chỉ tạo ra các bản ghi bổ sung nếu tìm thấy thơng tin mới và duy nhất. Kiểu tải này ít gây tốn kém hơn và giúp quản lý kinh doanh thơng minh [3].
Làm tươi tồn bộ - xóa hồn tồn nội dung của 1 hoặc nhiều bảng và tải lại với dữ liệu mới ( Tải đầu tiên là một làm tươi toàn bộ) [3].
Một số kỹ thuật tải dữ liệu
- Create: Là quá trình tạo một bảng mới hồn tồn và tải dữ liệu vào bảng vừa tạo [3].
- Append: Quá trình tải dữ liệu yêu cầu bảng đã tồn tại và tiến trình append sẽ thêm các dữ liệu mới vào, giữ nguyên dữ liệu hiện có trong các bảng mục tiêu [3].
- Replace: Nếu bảng mục tiêu đã tồn tại và dữ liệu đã tồn tại trong bảng, quá
trình replace sẽ xóa tồn bộ dữ liệu đã có cùng với cấu trúc bảng và tải dữ liệu và cấu trúc bảng mới [3].
2.7. Kết luận chương 2
Chương 2, đã thể hiện tổng quan lý thuyết về kho dữ liệu, khái niệm về kho dữ liệu, nêu lên các đặc điểm, cách tiếp cận, kiến trúc của KDL, các tầng trong KDL, tổ chức logic bên trong KDL, mơ hình đa chiều OLAP, các loại bảng fact, cấu trúc bảng fact, dimension. Bên cạnh đó là tổng quan về ETL trong DWH về khái niệm ETL, giao đoạn trích xuất, giai đoạn chuyển đổi và giai doạn load dữ liệu.
CHƯƠNG III: XÂYDựNG QUẢTRÌNHETL PHỤC VỤ CHO HỆTHỐNG E- BANKING
3.1. Kiến trúc ETL tổng thể của hệ thống E-banking
Hình 3.1. Kiến trúc ETL trong hệ thống E-banking
Như thể hiện tại sơ đồ, dữ liệu nguồn sẽ đi qua 3 lớp cụ thể là source systems tới staging/ODS, staging/ODS tới data warehouse và data warehouse tới data mart.
3.1.1. Quá trình tải dữ liệu từ Source system tới Staging and ODS
Hệ thống nguồn sẽ bao gồm dữ liệu từ các hệ thống khác nhau như Bank Admin, INCAS, ISAPP, GENTRONICS. Dữ liệu trích xuất từ hệ thống nguồn sẽ được tải vào vùng lưu trữ tạm thời gọi là Staging area. Dữ liệu tại đây được mapping trực tiếp 1-1 nghĩa là các trường dữ liệu sẽ được tải trực tiếp vào các bảng trong staging. Nên Staging area được coi như một backup store của dữ liệu hệ thống nguồn. Do trong q trình ETL hồn tồn có thể xảy ra lỗi khi tải dữ liệu từ khu vực xử lý sang khu vực trình bày và cần dọn dẹp lại kho và bắt đầu lại q trình tải dữ liệu từ nguồn. Chính vì vậy cần khu vực lưu trữ tạm thời là Staging area để có thể tái sử dụng lại dữ liệu từ hệ thống nguồn mà khơng lo có sự thay đổi nào trên dữ liệu.
R1 - INCAS
R2 - PROFILE
StagingArea Data Loading and Data Migration Process
Staging DB
Hinh 3.2. Minh họa quá trình load dữ liệu vào Staging area
Dữ liệu sau khi được tải vào vùng Staging area sẽ được tải vào khu vực ODS. ODS-Kho dữ liệu hoạt động là nơi tích hợp, lưu trữ dữ liệu hoạt động từ các hệ thống nguồn khác nhau phục vụ cho nhu cầu báo cáo, ra quyết định của doanh nghiệp. Trong ODS, kho dữ liệu được làm mới theo thời gian thực. Do đó, nó được ưa thích rộng rãi cho các hoạt động thường ngày như lưu trữ hồ sơ của Nhân viên. Thời gian lưu trữ dữ liệu cho các bảng STG / ODS như sau:
- STG-tables - 5 ngày
- ODS - 1 ngày
3.1.2. Quá trình tải dữ liệu từ ODS tớiDWH
Dữ liệu từ ODS sau đó được xử lý để tải lên lớp DWH. Quá trình tải dữ liệu lên DWH là liên tục thêm bản ghi mới và tổng hợp dữ liệu theo lịch sử bản ghi cũ. Khác với ODS là liên tục cập nhật dữ liệu theo thời gian thực. Vì vậy, ODS được thiết kế để truy vấn dữ liệu trên tập dữ liệu nhỏ, trong khi kho dữ liệu DWH thực hiện các truy vấn phức tạp trên tập dữ liệu lớn
Mục tiêu của lớp data mart là để hỗ trợ yêu cầu báo cáo cho quyết định kinh doanh. Vì vậy quá trình nạp dữ liệu của Data mart bao gồm việc chuyển đổi dữ liệu sang mơ hình hình sao hoặc bơng tuyết để thuận tiện trong việc truy vấn và phân tích dữ liệu
Các quá trình sau sẽ được đưa vào quá trình tải dữ liệu của Data Mart: 1. Tạo surrogate key trong bảng chiều
2. Bảo toàn dữ liệu lịch sử cho dữ liệu
3. Xác định dữ liệu phân cấp để hỗ trợ xem chi tiết, tổng hợp và xem chi tiết thông qua các chức năng báo cáo
4. Tải dữ liệu Fact dưới dạng cấu trúc giao dịch khơng chuẩn hóa với tham chiếu dữ liệu chiều thơng qua surrogate key để tạo mơ hình sao / bơng tuyết 5. Tải dữ liệu Tóm tắt tổng hợp từ dữ liệu thực tế có mức độ chi tiết thấp hơn
để hỗ trợ báo cáo cấp cao và truy cập dữ liệu nhanh hơn
3.1.4. Quá trình chạy job và thơng báo lỗi
Tồn bộ q trình tải dữ liệu trên kho EDW được thiết kế thành một công việc duy nhất chạy từ đầu đến cuối. Mỗi tầng sẽ được thiết kế một job riêng phục vụ cho công việc ETL tại tầng đó. Các job được thiết kế tại mỗi tầng sẽ được liên kết với nhau trên Server job và được thiết kế chạy tuần tự từ job tại tầng STG chạy thành cơng thì mới chạy tiếp job tại tầng ODS cứ như vậy cho đến job tại tầng DM chạy kết thúc. Nếu trong q trình chạy có bất cứ vấn đề nào sẽ ngừng job và thông báo mail ngay lập tức.
ETL Process Fiow
❖ Staging Data Load Process
Bắt đầu quá trinh,job tại tầng STG sẽ chạy đầu tiên và dữ liệu từ hệ thống nguồn được tải vào khu vực Staging. Neu phát hiện lỗi sẽ gửi gmail thông báo và dừng quy trình.
❖ DWH Data Load Process
Khi job tại tầng STG và ODS chạy thành công. Dữ liệu sẽ được load vào DWH phải đảm bảo đáp ứng được các chuẩn dữ liệu và dữ liệu IFS được tải vào các bảng đích tại DWH mà khơng bị mất dữ liệu. Nếu có phát hiện lỗi sẽ gửi gmail thông báo và dừng quy trình.
❖ DM Data Load Process
Tuong tự job tại tầng DWH chạy thành công, dữ liệu được tải lên tầng DM. Nếu gặp phải bất kỳ vấn đề đối chiếu dữ liệu nào thì gửi thơng báo lỗi qua gmail. Nếu job chạy thành cơng thì gửi gmail thơng báo chạy thành cơng.
3.1.5. Các kiểu xử lý load dữ liệu
Khác với ODS, DWH lưu trữ dữ liệu lịch sử và hiện tại. Nên khi có sự thay đổi ở 1 bản ghi thì DWH phải cập nhật sự thay đổi đó. Sẽ có 2 loại SCD được sử dụng tại hệ thống E-banking là SCD type 1 và SCD type 2
3.1.5.1. Quá trình xử lý SCD type 1
Dữ liệu sau khi được trích xuất tại ODS sẽ so sánh với dữ liệu tại DWH thơng qua khóa natural key. Nếu có tồn tại bản ghi có cùng natural key với DWH thì sẽ dữ liệu nguồn được update vào DWH. Nếu khơng tồn tại bản ghi có cùng khóa natural key với DWH, dữ liệu được insert vào DWH.
Hình 3.4. Sơ đồ xử lý SCD type 1
3.1.5.2. Quá trình xử lý SCD type 2
Tương tự như SCD type 1, dữ liệu được trích xuất từ ODS cũng so sánh với dữ liệu tại DWH thơng qua khóa natural key. Neu khơng có bản ghi nào có cùng khóa natural key thì dữ liệu tại ODS là dữ liệu mới cần được insert vào DWH với effective start date = COB_DT và effective end date = ‘9999-12-31’. Neu bản ghi có khóa tồn tại trong DWH thì có 2 trường hợp xảy ra. Trường hợp bản ghi khơng có sự thay đổi, dữ liệu giống với bản ghi trong DWH thì kết thúc quá trình tải dl. Trường hợp bản ghi có sự thay đổi so với bản ghi trong DWH thì bản ghi tại ODS