Tải bản đầy đủ (.pdf) (24 trang)

NGHIÊN CỨU QUY TRÌNH ETL TRONG XÂY DỰNG KHO DỮ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 24 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

QUẢN ĐÌNH THĂNG

NGHIÊN CỨU QUY TRÌNH ETL TRONG
XÂY DỰNG KHO DỮ LIỆU

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI -2013


1
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS VŨ VĂN THỎA
Phản biện 1: …………………………………………………………………………
Phản biện 2: …………………………………………………………………………..

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ...............
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



2
MỞ ĐẦU
1. Lý do chọn đề tài
Tại Việt Nam, các tập đoàn kinh tế hiện đang có rất nhiều dữ liệu cần khai thác và
cũng đang từng bước xây dựng và hoàn thiện hệ thống dữ liệu để phục vụ công tác khai
thác nguồn tài nguyên.
Trong các hệ thống lưu trữ dữ liệu tập trung lớn (Data warehouse), tạm gọi là kho dữ
liệu bao gồm nhiều thành phần, mỗi thành phần có một chức năng riêng trong đó thành phần
chịu trách nhiệm cho việc trích xuất, chuyển đổi và tải dữ liệu (Extract, Transform, Load
hay gọi tắt là ETL) đóng vai trò then chốt. Cụ thể hơn, hệ thống ETL đảm nhiệm việc trích
rút các dữ liệu từ nhiều nguồn khác nhau, làm sạch, tùy chỉnh theo khuôn dạng nhất định và
tải dữ liệu vào trong kho dữ liệu. Việc xây dựng ETL chiếm phần lớn trong thời gian xây
dựng hệ thống kho dữ liệu. Vì vậy, việc đánh giá đúng vai trò và đầu tư đúng hướng cho
việc xây dựng ETL sẽ giúp cho việc xây dựng kho dữ liệu được tốt nhất.
Với những lý do nêu trên, luận văn chọn đề tài nghiên cứu về thiết kế, cài đặt và phát triển quá trinh
ETL trong xây dựng kho dữ liệu. Đồng thời, trong luận văn sẽ xây dựng ứng dụng ETL phục vụ
cho hệ thống dữ liệu của doanh nghiệp viễn thông.

1. Mục đích của đề tài: Nghiên cứu mô hình một quá trình ETL, phương pháp xây dựng
một chương trình ETL và áp dụng để xây dựng module ETL.
2.Đối tượng và phạm vi nghiên cứu:Lý thuyết xây dựng một hệ thống ETL, tìm hiểu
một số hệ thống ETL trên thế giới, xây dựng mô hình một module ETL.
3. Phương pháp nghiên cứu: Tìm hiểu các tài liệu xây dựng ETL trong kho dữ liệu, một
tài liệu của các hệ thống ETL trên thế giới.
4. Kết cấu của luận văn
Luận văn gồm 3 chương
Chương 1: Tổng quan về ETL trong kho dữ liệu
Trình bày tóm lượt một số kiến thức quả kho dữ liệu và vị trí vai trò của ETL trong
kho dữ liệu.
Chương 2: Kiến trúc và các thành phần ETL

Kiến trúc của một hệ thống ETL, cách thức hoạt động và xây dựng một hệ thống
ETL. Một số những khó khăn gặp phải khi xây dựng hệ thống.
Chương 3: Xây dựng module ETL
Tìm hiểu về một số hệ thống ETL trên thế giới, xây dựng một module ETL. Áp dụng
cho doanh nghiệp viễn thông.


3

CHƯƠNG 1. TỔNG QUAN VỀ ETL TRONG KHO DỮ LIỆU
1.1. Kho dữ liệu
1.1.1 Khái niệm kho dữ liệu
Định nghĩa kho dữ liệu do W.H.Inmon [3] đưa ra : Kho dữ liệu (Data Warehouse) là
tập hợp dữ liệu tích hợp theo hướng chủ đề từ nhiều nguồn khác nhau, tương đối ổn định
trong khoảng thời gian, được cập nhật định kỳ nhằm hỗ trợ quá trình tạo quyết định.

1.1.2. Các đặc trưng của kho dữ liệu
-

Hướng chủ đề

-

Tính tích hợp

-

Tính bền vững.

-


Dữ liệu theo thời gian

-

Dữ liệu tổng hợp

1.1.3 Mục tiêu của kho dữ liệu
Mục tiêu chính của kho dữ liệu là nhằm đáp ứng các tiêu chuẩn cơ bản sau:
-

Truy cập dễ dàng.

-

Thông tin nhất quán.

-

Bảo mật.

-

Hỗ trợ ra quyết định.

1.1.4. Kiến trúc kho dữ liệu
Mô hình kiến trúc của hệ thống kho dữ liệu cơ bản gồm có ba thành phần: Dữ liệu
nguồn, vùng dữ liệu trung gian và kho dữ liệu .



4

Hình 1.1. Kiến trúc kho dữ liệu

1.1.3.1. Kho dữ liệu chủ đề
Kho dữ liệu chủ đề (Datamart - DM) là CSDL có những đặc điểm giống với
kho dữ liệu nhưng với quy mô nhỏ hơn và lưu trữ dữ liệu về một lĩnh vực, một chủ đề.
Các Datamart có thể được hình thành từ một tập con dữ liệu của kho dữ liệu hoặc cũng
có thể được xây dựng độc lập và sau khi xây dựng xong các Datamart có thể được kết
nối, tích hợp lại với nhau tạo thành kho dữ liệu
Có thể chia Datamart ra làm 2 loại: Datamart độc lập và Datamart phụ thuộc

1.1.3.2. Siêu dữ liệu
Trong việc tổ chức kho dữ liệu, không chỉ những người dùng đầu cuối mà ngay cả
những nhân viên quản trị đều cần truy nhập toàn bộ thông tin trong bảng gồm các đối tượng
cũng như các thuộc tính. Do đó họ muốn biết một số vấn đề:
• Có thể tìm thấy dữ liệu ở đâu?
• Tồn tại những loại thông tin, dữ liệu nào?
• Dữ liệu thuộc loại nào, có dạng ra sao?
• Trong các cơ sở dữ liệu khác nhau thì dữ liệu có liên quan với nhau như thế nào?
• Dữ liệu được lấy từ đâu và thuộc ai quản lý?
Vì vậy hình thành một dạng cơ sở dữ liệu khác được gọi là siêu dữ liệu nhằm mô tả cấu trúc
nội dung của cơ sở dữ liệu chính.

1.1.3.3. Cơ sở dữ liệu kho dữ liệu
Cơ sở dữ liệu kho dữ liệu hầu hết được cài đặt dựa trên công nghệ của Hệ thống quản
trị cơ sở dữ liệu quan hệ (RDBMS).


5


1.1.4. Xây dựng CSDL cho kho dữ liệu
Những dự án dùng phương pháp kho dữ liệu buộc phải lựa chọn giữa một mô hình
dữ liệu và một giản đồ dữ liệu liên quan trực quan cho việc phân tích nhưng không phong
phú về thể hiện. Khi phương pháp kho dữ liệu được tiếp tục phát triển thì những cách
tiếp cận mới cho việc thiết kế giản đồ dữ liệu phù hợp hơn với việc phân tích được hình
thành và đó là điều cốt yếu dẫn đến thành công của phương pháp kho dữ liệu. Có các loại
thiết kế giản đồ như sau:
-

Giản đồ hình sao.

-

Giản đồ hình tuyết rơi.

-

Giản đồ kết hợp.

1.2. ETL và vai trò ETL trong kho dữ liệu
1.2.1. Khái niệm ETL
Hệ thống ETL (Extract-Transform-Load) là nền tảng của kho dữ liệu. Một hệ thống
ETL được thiết kế cho việc trích xuất dữ liệu từ các hệ thống nguồn, chuyển đổi dữ liệu
đảm bảo các nguồn độc lập có thể tích hợp, và cuối cùng dữ liệu sau chuyển đổi được đưa
vào kho dữ liệu phục vụ mục đích phát triển ứng dụng hay phục vụ các mục đích kho dữ
liệu.

1.2.2 Vị trí và vai trò của ETL trong kho dữ liệu
Hệ thống ETL phải đóng một vai trò quan trọng trong việc cung cấp cho các ứng

dụng người sử dụng một khuôn dạng dữ liệu phù hợp. Quá trình ETL bắt đầu từ các hệ
thống nguồn đến khi dữ liệu được đưa vào các bảng chiều, bảng sự kiện tốn kém phần lớn
thời gian của việc xây dựng kho dữ liệu.


6

CHƯƠNG 2. KIẾN TRÚC VÀ CÁC THÀNH PHẦN CỦA ETL.
2.1. Kiến trúc của quá trình ETL trong kho dữ liệu
2.1.1. Các thành phần của ETL

Hình 2.1. Các thành phần của ETL
Trích xuất: Dữ liệu nguồn từ rất nhiều nguồn khác nhau và có thể có rất nhiều cấu trúc dữ
liệu khác nhau như nhiều loại cơ sở dữ liệu, từ tệp dữ liệu excel hay từ tệp dữ liệu thô. Vì
thế nhiệm vụ chính của bước này là trích xuất dữ liệu từ hệ thống nguồn để xử lý.
Chuyển đổi : Đây là quá trình rất phức tạp dùng để chuyển đổi dữ liệu nguồn một mô hình
khác phù hợp và chuyển vào cơ sở dữ liệu đích. Ở bước này sẽ phải sử dụng các phép
chuyển đổi:
 Chọn các cột dữ liệu phù hợp (chỉ chọn các cột cần thiết )
 Chuyển đổi dữ liệu.
 Tạo ra các trường dữ liệu cần thiết mới.
 Lọc dữ liệu theo chủ đề.
 Sắp xếp dữ liệu theo các tiêu chí lưu chữ.
 Thực hiện các phép tổng hợp dữ liệu từ dữ liệu nguồn.
 Tạo ra các giá trị mới.
 Tìm kiếm hay so sánh dữ liệu.


7
Có thể nói đây là bước quan trọng nhất trong tiến trình ETL , nó thực hiện hầu hết

các nhiệm vụ của tiến trình ETL.
Tải dữ liệu: Đây là quá trình đẩy dữ liệu sau khi đã được chuyển đổi vào kho dữ liệu. Dữ
liệu sau khi đã được chuyển đổi sẽ được tải vào kho dữ liệu.
2.1.2. Yêu cầu với ETL
Danh sách sau đây liệt kê các hoạt động và tác vụ tạo nên quy trình ETL. Danh sách
này không hoàn toàn đúng với tất cả các kho dữ liệu, nhưng cho ta cái nhìn về những gì cần
được thực hiện để hoàn thành quá trình ETL.
ETL Cho bảng sự kiện
ETL cho bảng chiều
Viết các thủ tục cho tải tất cả dữ liệu
Tổ chức vùng xử lý dữ liệu và công cụ kiểm thử
Kế hoạch cho các bảng tổng hợp
Xác định các dữ liệu chuyển đổi và các luật làm sạch
Thiết lập các luật trích xuất dữ liệu
Chuẩn bị cho việc ánh xạ giữa các thành phần dữ liệu đích với dữ liệu nguồn
Xác định nguồn dữ liệu, cả dữ liệu trong và ngoài
Xác định các dữ liệu đích cần thiết trong kho dữ liệu

Hình2.1. Các bước chính của một quy trình ETL.

-

Kết hợp nhiều nguồn dữ liệu có cấu trúc vào bản ghi của cơ sở dữ liệu đích của kho
dữ liệu.

-

Chia nhỏ một dữ liệu nguồn dữ liệu có cấu trúc vào một số bản ghi của cơ sở dữ liệu
đích.


-

Đọc dữ liệu từ các danh mục dữ liệu từ điển của hệ thống nguồn.

-

Đọc dữ liệu từ nhiều file có cấu trúc bao gồm tệp phẳng, tệp chỉ mục (VASM), và
các hệ thống cơ sở dữ liệu cũ.

-

Tải các chi tiết cho việc tập hợp các bảng sự kiện.

-

Tổng hợp hoặc tóm tắt cho bảng sự kiện.

-

Chuyển đổi dữ liệu từ một định dạng nguồn thành định dạng khác trong nền tảng
đích.

-

Lấy giá trị mục tiêu từ các trường đầu vào.


8
-


Thay đổi giá trị khó hiểu bằng giá trị có nghĩa cho người dùng.

2.1.3. Các yếu tố quan trọng đối với ETL
-

Sự phức tạp của các chức năng trích xuất và chuyển đổi có nguyên nhân từ sự đa
dạng của hệ thống nguồn.

-

Chức năng tải dữ liệu khi làm mới kho dữ liêu hoặc tải dữ liệu phải làm việc với
lượng lớn dữ liệu vì vậy cần đảm bảo thời gian chạy.

2.1.4. Các khó khăn gặp phải khi xây dựng hệ thống ETL
-

Trích xuất dữ liệu phụ thuộc vào độ phức tạp của hệ thống nguồn.

-

Các chức năng chuyển đổi dữ liệu có thể thực hiện hàng loạt các phương thức
chuyển đổi khác nhau.

-

Với chức năng tải dữ liệu. Kích thước dữ liệu ban đầu được tải vào vùng đệm là rất
lớn và được cập nhật từ nhiều nguồn khác nhau với nhiều tiến trình chạy.

2.2. Vùng dữ liệu trung gian
Trong kiến trúc kho dữ liệu, thường có một vùng chứa dữ liệu gọi là vùng trung

gian giành cho việc tiền xử lý dữ liệu. Dữ liệu được chuyển từ nguồn vào vùng xử lí mà
không qua (hoặc rất ít) xử lí nào.

2.3. Trích xuất dữ liệu
Trích xuất dữ liệu hiệu quả là chìa khóa cho sự thành công của việc xây dựng
kho dữ liệu. Trong quá trình xây dựng hệ thống trích xuất ta cần quan tâm đến các
vấn đề quan trọng và xây dựng một chiến lược trích xuất cho kho dữ liệu. Đây là các
vấn đề quan trọng trong trích xuất dữ liệu
2.3.1. Xác định nguồn dữ liệu
Xác định nguồn dữ liệu bao gồm việc xác định tất cả các nguồn dữ liệu thích hợp,
các dữ liệu cần thiết để đưa vào kho dữ liệu.


9

Hình 2.3. Các bước xác định nguồn dữ liệu

2.3.2. Các kỹ thuật trích xuất dữ liệu
2.3.2.1. Các loại kỹ thuật trích xuất
- Nắm bắt dữ liệu tĩnh
- Nắm bắt dữ liệu tăng thêm

2.3.2.2. Các kỹ thuật trích xuất dữ liệu thời gian thực

Hình 2.5. Trích xuất dữ liệu theo thời gian thực


10
-


Nắm bắt dữ liệu qua bản ghi giao dịch..

-

Nắm bắt thông qua trigger cơ sở dữ liệu.

-

Nắm bắt trong các ứng dụng nguồn.

2.3.2.3. Các kỹ thuật trích xuất dữ liệu chậm
Nắm bắt dựa trên ngày tháng và nhãn thời gian. Mỗi khi một bản ghi được tạo ra hoặc cập
nhật nó có thẻ được đánh dấu bởi một nhãn biểu diễn bởi ngày và thời gian. Nhãn thời gian
cung cấp cơ sở cho việc chọn ra các bản ghi cho việc trích xuất.
Trích xuất bằng cách so sánh tập tin. Nếu các kỹ thuật trên không khả thi cho tập tin nguồn
cụ thể, khi đó kỹ thuật này được xem như biện pháp cuối cùng. Kỹ thuật này cũng được gọi
với tên khác là kỹ thuật so sánh sự khác nhau giữa ảnh chụp bởi vì nó so sánh 2 ảnh chụp
của nguồn dữ liệu.

2.3.2.4. Đánh giá các kỹ thuật trích xuất
2.4. Làm sạch và chuyển đổi dữ liệu
2.4.1 Các nhiệm vụ cơ bản của chuyển đổi dữ liệu
Trích chọn. Nhiệm vụ này nằm ở phần đầu của toàn bộ quá trình chuyển đổi. Có thể toàn
bộ hoặc một số bản ghi từ dữ liệu nguồn
Tách/Nhập. Nhiệm vụ này bao gồm các loại thao tác dữ liệu để thực hiện việc chọn các
phần dữ liệu nguồn.
Chuyển đổi. chuẩn hóa giữa dữ liệu trích xuất từ các nguồn khác nhau và tạo ra các trường
mà người dùng thể sử dụng và có thể hiểu được.
Tổng hợp.Khi việc lưu trữ dữ liệu tổng hợp được yêu cầu thay vì lưu trữ dữ liệu ở mức
thấp.

Làm giàu dữ liệu: Nhiệm vụ này sắp xếp và đơn giản hóa các trường riêng biết để làm cho
chúng trở nên hữu dụng hơn cho kho dữ liệu.

2.4.2 Các kiểu chuyển đổi dữ liệu
- Cơ cấu lại khóa.
- Xóa bản ghi trùng.
- Sửa lại định dạng.
- Giải mã các trường.
- Giá trị tính toán và giá trị thứ phát.
- Chia nhỏ các trường đơn.
- Gộp thông tin.


11
- Chuyển đổi Bộ ký tự.
- Chuyển đổi đơn vị đo lường.
- Chuyển đổi thời gian.
- Tổng hợp.

2.4.3. Tích hợp và hợp nhất dữ liệu
2.4.3.1. Xác định thực thể trong chuyển đổi dữ liệu.
Thực thể có thể xuất hiện trong nhiều hệ thống khác nhau, làm thế nào để tổng hơp
các nguồn này mà không sợ bị trùng lặp hay bị thiếu.
- Bước đầu tiên, tất cả các bản gi, không phân biệt có trùng nhau hay không, được định
danh duy nhất.
- Bước thứ hai là hợp các bản ghi trùng một cách định kỳ thông qua các giải thuật tự
động và kiểm tra thủ công.

2.4.3.2. Tích hợp nhiều nguồn dữ liệu.
Vấn đề này là kết quả của việc một phần tử dữ liệu có nhiều hơn một nguồn dữ liệu. Một

giải pháp đơn giản là đặt ưu tiên cho các nguồn và chọn nguồn có độ ưu tiên cao

2.4.4. Chuyển đổi các thuộc tính chiều
Trong phần này xem xét các loại thay đổi với thuộc tính chiều, các phương pháp để xử lý
các loại thay đổi dữ liệu chiều.
-

Thay đổi loại 1 là sửa lỗi. Các loại này được áp dụng cho kho dữ liệu không cần
giữ tính lịch sử.

-

Loại 2 thay đổi giữ tính lịch sử của kho dữ liệu.

-

Loại 3 thay đổi là những thay đổi dự kiến nơi người dùng cần có khả năng phân
tích các số liệu trong cả 2 cách – có thay đổi, không thay đổi.

2.5. Tải dữ liệu
2.5.1. Các loại tải dữ liệu
Tải lần đầu tiên – tập hợp tất cả các bảng kho dữ liệu cho lần đầu tiên.
Tải bổ sung – áp dụng trên những thay đổi khi cần thiết một cách định kì
Làm mới toàn bộ - xóa hoàn toà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


12

2.5.1. Kỹ thuật và quy trình tải dữ liệu
Load.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 tải sẽ xóa dữ

liệu đã có và tải dữ liệu từ tập tin đến. Nếu bảng đã rỗng trước khi tải, tiến trình tải đơn giản
tải dữ liệu từ file đến.
Append. Tải append giống như một mở rộng của Load. Nếu dữ liệu đã tồn tại trong bảng,
tiến trình append sẽ thêm vô điều kiện các dữ liệu vào, giữ nguyên dữ liệu hiện có trong các
bảng mục tiêu. Khi một bản ghi trùng với một bản ghi đã có, ta có thể xác định cách xử lý
dữ liệu đẩy trùng. Các bản ghi đầu vào có thể cho phép thêm vào như là dữ liệu trùng.
Trong trường hợp khác, bản ghi trùng ở đầu và bị loại bỏ trong quá trình append.
Destructive Merge.Trong mô hình này,ta tải dữ liệu đầu vào vào bảng dữ liệu đích. Nếu
khóa chính của bản ghi đầu với giống khóa của một bản ghi đã có, khi đó nó cập nhật bản
ghi đích tương ứng. Nếu bản ghi đầu vào là một bản ghi mới không trùng khóa với bản ghi
đã có, khi đó bản ghi được thêm vào bảng dữ liệu đích.
Constructive Merge.Chế độ này hơi khác so với Destructive Merge. Nếu khóa chính của
một bản ghi trùng với khóa của bản ghi đã có, để lại bản ghi này, thêm bản ghi mới và đánh
dấu bản ghi thêm mới như bản ghi thay thế cho bản ghi cũ.
Cách áp dụng cho 3 loại tải của kho dữ liệu.
*)Quy trình tải cho từng loại
Tải ban đầu: Với lần chạy đầu tiên của tải ban đầu ta sử dụng kiểu tải Load, sau đó tiếp tục
với chế độ Append.
Tải gia tăng.Các ứng dụng liên tục thay đổi theo các hệ thống nguồn. Vì vậy, ta cần một
phương pháp để nắm bắt được chu kỳ thay đổi.
Tải làm tươi toàn bộ. Loại ứng dụng liên quan đến định kỳ ghi lại toàn bộ kho dữ liệu. Đôi
khi, ta cần làm mới lại một số bảng cụ thể. Làm tươi một phần rất hiếm bởi vì mọi bảng
chiều được gắn với bảng sự kiện.

2.5.2 Làm tươi dữ liệu và cập nhât dữ liệu
Sau tải ban đầu, ta có thể duy trì kho dữ liệu và cập nhật nó với 2 phương thức:
 Cập nhật - ứng dụng cho dữ liệu thay đổi trong hệ thống nguồn.
 Làm tươi – tải lại toàn bộ theo chu kỳ.

2.5.3. Phương pháp tải với các bảng chiều

Trong kho dữ liệu, ta sử dụng khóa sinh bởi hệ thống. Bản ghi trong hệ thống nguồn
có khóa của chúng. Vì vậy, trước khi dữ liệu nguồn có thể đưa vào bảng chiều, cho dù là tải


13
ban đầu hay tải trên dữ liệu thay đổi, thì khóa của sản phẩm cần chuyển sang khóa của hệ
thống trong kho dữ liệu. Ta có thể cần coi chuyển đổi khóa như một phần của chức năng
truyển đổi hoặc thực hiện một cách riêng biệt trước khi thực hiện các chức năng tải.

2.5.4. Tải lịch sử và tải gia tăng cho bảng sự kiện
Khóa của bảng sự kiện là sự tải kết hợp các khóa của bảng chiều. Do nguyên nhân
này, các bản chi cho chiều dữ liệu được tải trước tiên. Sau đó, trước khi tải dữ liệu cho các
bảng sự kiện, ta phải tạo khóa kết nối cho các bảng sự kiện tới các khóa tương ứng trong
bảng chiều.


14

CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG ETL CHO DOANH NGHIỆP

VIỄN THÔNG
3.1. Yêu cầu bài toán
3.1.1. Doanh nghiệp Viễn Thông
Mô hình quản lý của doanh nghiệp viễn thông cụ thể với tập đoàn VNPT

3.1.1 Mục tiêu của bài toán
Một số yêu cầu đối với ứng dụng:
-

Đảm bảo tính đúng đắn vè mặt số liệu so với hệ thống dữ liệu nguồn, tuân thủ các

luật trong việc trích rút dữ liệu.

-

Ứng dụng phải đảm bảo tính mềm dẻo và linh động đối với các nguồn dữ liệu khác
nhau.

-

Cho phép theo dõi và cảnh báo về các thay đổi trong hệ thống dữ liệu nguồn cũng
như vấn đề xảy ra trong quá trình khai thác.


15

3.1.2. Một số hệ thống hỗ trợ ETL trên thế giới đang sử dụng
3.1.2.1. ETL trong SQL Server Integration Services
Microsoft xây dựng SQL Server Integration Services với mục đích cung cấp nền
tảng để xây dựng các giải pháp tích hợp dữ liệu với hiệu suất cao bao gồm việc kiết xuất ,
chuyển đổi và tải dữ liệu (ETL). SSIS cho phép ta tạo các gói tạo thành các nhiệm vụ thực
hiện việc chuyển dữ liệu giữa các hệ thống.

3.1.2.2. ELT với Oracle
Oracle có 4 sản phẩm hỗ trợ ETL
- ODI (Oracle Data Integator),
- OWB(Oracle Warehouse Builder ),
- ODIEE(Oracle Business Intelligence Enterprise Edition),
- OWBEE(bản nâng cấp của OWB)
Kiến trúc ODI
Các thành phần kiến trúc của ODI như sau:

 Repository: Đây là nơi lưu giữ tất cả các thông tin được xử lý bởi ODI,cụ thể là, các
chi tiết kết nối, siêu dữ liệu, quy tắc chuyển đổi và các kịch bản,tạo ra mã, các bản
ghi thực hiện, và số liệu thống kê.
 Studio: Studio là giao diện đồ họa của ODI. Nó được sử dụng bởi
quản trị viên, các nhà phát triển, và các nhà khai thác.
 Agents: Chứa các Agent
 Console: Console là một công cụ web cho phép người dùng duyệt kho lưu trữ ODI,
tuy nhiên nó không phải là một công cụ được sử dụng để phát triển các biến đổi mới.
 The Oracle Enterprise Manager plugin cho ODI tích hợp giám sát trực tiếp
vào OEM để các quản trị viên có thể củng cố giám sát của tất cả các sản phẩm của
Oracle của họ trong một giao diện đồ họa duy nhất.

3.1.2.3. Đánh giá tính phù hợp của các công cụ ETL với việc xây dựng kho dữ liệu
tại tập đoàn VNPT
3.1.3. Mục tiêu của bài toán
3.1.3.1. Mục tiêu
Mục tiêu của bài toán đặt ra trong luận văn này là xây dựng một module ETL phục vụ cho
việc trích xuất làm sach và tải dữ liệu từ nhiều nguồn khác nhau vào kho dữ liệu.


16

3.1.3.2. Phạm vi nguồn dữ liệu
Dữ liệu được sử dụng từ dữ của hệ thống phát triển thuê bao và quản lý mạng ngoại vi của
các đơn vị thành viên của VNPT. Dữ liêu bao gồm : dữ liệu phát triển các dịch vụ, dữ liệu
quản lý mạng ngoại vi, dữ liệu cắt mở và hủy dịch vụ.

3.2. Mô hình hóa bài toán
3.2.1. Kiến trúc ứng dụng
KHU VỰC XỬ LÝ

GHI

FILE

Dữ liệu ngoại vi
FoxPro

FTP

Đ
ỌC

Dữ liệu
trích xuất

Phát triển dịch vụ
(Oracle)

Đọc

Module trích

Ghi

xuất dữ liệu

Phát triển dịch vu
(SQL)

Làm sạch

Đọc

Kho dữ liệu
Du lieu cắt mở dịch vụ
(Oracle)

chứa dữ liệu đã
làm sạch

Hình 3.8. Kiến trúc ứng dụng ETL

3.2.2. Một số công nghệ sử dụng trong việc xây dựng bài toán:
Kết nối nguồn dữ liệu
- Kết nối dữ liệu Foxpro từ hệ thống nguồn qua FTP đẩy các file dữ liệu lên máy chủ.
- Kết nối với dữ liệu Oracle qua kết nối cơ sở dữ liệu (ODBC, OCI).
- Kết nối với dữ liệu SQL Server thông qua ODBC.
Trích xuất dữ liệu


17
- Phương pháp: Do các bản ghi trong dữ liệu gắn liền với thời gian như vậy ta sử dụng
kiểu trích xuất định kỳ.
- Nắm bắt thay đổi dữ liệu: Ở đây ta sử dụng phương pháp nắm bắt dữ liệu chậm sử
dụng ngày tháng và nhãn thời gian.
Tải dữ liệu
- Sử dụng SQL Loader để tải dữ liệu vào cơ sở dữ liệu Oracle.
- Sử dụng DBLink của Oracle làm cơ sở tải dữ liệu từ các dữ liệu Oracle và SQL Server
khác.
Làm sạch dữ liệu
Công đoạn làm sạch dữ liệu được làm trên vùng đệm và chủ yếu sử dụng câu lệnh

SQL và các hàm xử lý của Oracle như định dạng lại ngày tháng, truy vấn tìm bản ghi
trùng...

3.2.3. Mô hình hóa module với UML

Trích xuất

Tải

Data Staging

Làm sạch

Nguồn dữ liệu

Chuyển đổi

Kho dữ liệu
Tải

Cơ sở dữ liệu tác nghiệp

Nguồn mở rộng
Dữ liệu chuyên đề

Hình 3.10. Sơ đồ trường hợp sử dụng của module ETL


18


D: Data Source

E:Extractor

DB: Data staging area

C: Cleaner

T: Transformer

L:Loader

DB: Data Warehouse/ Data Mart

1: Set connection()

2: Extract data()

Load Data
3: Install data()

4: Read data()

5: Clean data()

6: Trasform data()

7: Get data()

8: Load data()


Hình 3.11. Sơ đồ tuần tự của hệ thống ETL

3.3. Triển khai cài đặt
3.3.1. Xây dựng ứng dụng
 Công cụ phân tích thiết kế: Microsoft Visio 10.
 Môi trường lập trình: Visual Studio 10.
 Ngôn ngữ lập trình: Visual C#

3.3.2. Dữ liệu đích:
Dữ liệu chuyên đề phát triển dịch vụ


19

Hình 3.12. Lược đồ quan hệ kho dữ liệu chuyên đề phát triển dịch vụ

CTR_CONTRACT : Bảng dữ liệu lập hợp đồng đăng ký dịch vụ
CTR_CUSTOMER : Bảng dữ liệu khác hàng
CTR_SUBSCRIBER : Bảng dữ liệu dịch vụ đăng ký của khác hàng
COM_PROVINCE : Bảng dữ liệu danh bạ theo tỉnh thành.
Dữ liệu chuyên đề mạng ngoai vi


20

Hình 3.13. Lược đồ quan hệ kho dữ liệu chuyên đề ngoại vi
Trong đó các bảng
GCN_EXCHANGE : Tổng đài
GCN_CABINETS : Các tủ hộp cáp

GCN_CABLES : Các dây cáp
GCN_JUMPER : Tình trạng sử dụng cáp và tủ cáp

3.3.3. Trích xuất và tải dữ liệu :
-

Sử dụng tải oracle loader để tải dữ liệu ban đầu, các dữ liệu lớn và dữ liệu được trích
xuất từ dữ liệu foxpro

-

Các dữ liệu từ foxpro được export ra dạng file text trước khi được tải vào các bảng
trung gian bằng oracle loader. Sau đây là một file về dữ liệu ngoại vi

3.3.4. Làm sạch dữ liệu :
Trong phần làm sạch dữ liệu được thực hiện tại vùng đệm của kho dữ liệu tận dụng bộ các
hàm của Oracle trong việc xủ lý dữ liệu.
-

Chuyển đổi Bộ ký tự

-

Chuyển đổi thời gian :

-

Thêm và sửa các trường dữ liệu

-


Xóa bản ghi trùng


21

3.3.5. Cấu hình ứng dụng
Để đảm bảo cho việc linh động trong việc thêm, sửa hay loại bỏ nguồn dữ liệu, thông tin về
kết nối và các thông tin về ánh xạ giữa dữ liệu nguồn và đích sẽ được lưu dưới dạng file
XML.

3.4 Phân tích đánh giá kết quả thử nghiệm
Thử nghiệm trên dữ liệu đầu vào là dữ liệu quản lý mạng ngoại vi và dữ liệu phát triển thuê
bao của một số VNPT Tỉnh Thành.


22

KẾT LUẬN
Các kết quả đạt được của luận văn:
Luận văn với đề tài “NGHIÊN CỨU QUÁ TRÌNH ETL TRONG XÂY DỰNG
KHO DỮ LIỆU” đã đạt được các kết quả chính như sau:

 Phân tích công nghệ, cấu trúc, kiến trúc, và công cụ để xây dựng công cụ ETL
phục vụ cho việc xây dựng kho dữ liệu. Tìm hiểu các phương pháp, kỹ thuật trích
xuất, chuyển đổi, tải áp dụng với từng loại dữ liệu, với các trường hợp cụ thể để
mang lại hiệu quả cao nhất cho hệ thống ETL.
 Thực hiện xây dựng kho dữ liệu thử nghiệm từ hệ thống nguồn dữ liệu phát triển
dịch vụ và quản lý mạng ngoại vi của VNPT.
 Kết quả thu được là hệ thống cho phép trích xuất dữ liệu từ các nguồn dữ liệu với

khuôn dạng khác nhau như Oracle, FoxPro, SQL Server tải vào kho dữ liệu và qua quá
trình làm sạch. Kết quả này cho thấy có thể áp dụng hệ thống cho hệ thống thực tế
đang trong quá trình triển khai.
Qua đó, có thể khẳng định xây dựng hệ thống ETL cho việc xây dựng hệ thống kho
dữ liệu của doanh nghiệp là hết sức cần thiết đối với các doanh nghiệp. Việc hiểu được
tầm quan trọng và phương pháp xây dựng hệ thống ETL đóng vai trò quyết định trong việc
xây dựng cho hệ thống kho dữ liệu nói riêng và các hệ thống dựa trên nền tảng kho dữ liệu
nói chung.
Hướng nghiên cứu tiếp theo:
Luận văn mới chỉ dừng lại ở việc nghiên cứu mô hình cách xây dựng một module
ETL và kiểm thử trên một số dữ liệu nhất định. Nếu có điều kiện nghiên cứu tiếp và được
tiếp cận với một lượng lớn CSDL thì tác giả luận văn sẽ đi sâu vào các tính toán và tối ưu
hóa trong vận hành hệ thống ETL để đạt được kết quả tốt và nhanh nhất.


23

TÀI LIỆU THAM KHẢO
[1] Arktos : towards the modeling, design, control and execution of ETL processes,
Panos Vassiliadis*, Zografoula Vagena, Spiros Skiadopoulos, Nikos Karayannidis, Timos
Sellis, 2001.
[2] A UML Based Approach for Modeling ETL Processes in Data Warehouses, Juan
Trujillo and Sergio Luj´n-Moraa, Dept. de Lenguajes y Sistemas Inform´ticosa Universidad
de Alicante (Spain).
[3] Building the Data Warehouse, W.H.Inmon, Copyright © 2005 John Wiley &
Sons, Inc.
[4] Conceptual Modeling for ETL Processes, Panos Vassiliadis, Alkis Simitsis,
Spiros Skiadopoulos.
[5] Data Warehousing Fundamentals: A Comprehensive Guide for IT Professionals.
Paulraj Ponniah, Copyright © 2001 John Wiley & Sons, Inc.

[6] Data Cleaning: Problems and Current Approaches, Erhard Rahm *, Hong Hai
Do, University of Leipzig, Germany.
[7] The Data Warehouse ETL Toolkit Practical Techniques for Extracting, Cleaning,
Conforming, and Delivering Data, Ralph Kimball, Joe Caserta.
[8] Hierarchical Approach to Data Extraction using UML 2.0, Payal Pahwa1,
Geetika Chaudhary, Khyati Jain, Neha Sharma and Ruchira Gupta.



×