Trong đó hệ thống ETL là một thành phần chính chịu tráchnhiệmchoquátrìnhETL Extract,Transform,Loadtrong khokhodữliệu; chophéptríchrút cácdữ liệu từ nhiều nguồn khác nhau,làm sạch, tùy ch
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 22 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 PHẠM THẾ QUẾ
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ôngnghệ 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
Trang 3dữ liệutrênphụcvụchoviệcphântíchkinhdoanhtạicácđơnvịviễnthông Tuy nhiên việcxây dựng một hệ thống như thế vấp phải một số hạn chế về mặt kỹ thuật, đặc biệt là khikích thước cũng như độ phức tạp của môi trường thông tin tăng lên Lưu trữ phân tán ởnhiều dạng không tương thích với nhau, thậm chí còn ở những dạng phi cấu trúc Nhiều
hệ CSDL đã được xây dựng không tương thích với nhau và không tương thích với những
hệ thông tin mới được xây dựng Nhiều khách hàng không thoả mãn với những hệ thốngthông tin hiện thời
Kho dữ liệu thườngbao gồmcácthành phần khácnhau, mỗithành phầncó thiếtkế,
kĩ thuật và công cụ riêng [6] Trong đó hệ thống ETL là một thành phần chính chịu tráchnhiệmchoquátrìnhETL( Extract,Transform,Load)trong khokhodữliệu; chophéptríchrút cácdữ liệu từ nhiều nguồn khác nhau,làm sạch, tùy chỉnh vàchuyển đổi, và cuối cùngtải vào kho dữ liệu[1] Việc xây dựng ETL chiếm đến 80% phát triển dự án và 55% thờigian của kho dữ liệu [4] Vì vậyviệc đánh giá đúngvai trò của quá trìnhETLtừ đó có thểthể mô hìnhhóa, thiết kế và tốiưu ETLtrong việc xâydựng kho dữ liệusẽ quyết định sựthànhbạicủakhodữliệu[6]
Vớimụcđích nghiêncứuvềcácquátrìnhETLtrongviệcxâydựngkhodữliệu, tôichọnđềtài “Nghiên cứu quy trình ETL trong kho dữ liệu ứng dụng vào hệ thống dữ liệu kinh doanh trong doanh nghiệp viễn thông”.
1 Mục đích của đề tài: Tiếp cận các phương pháp tìmhiểu cácbướctrong mộtquytrinhxâydựngmộthệ thốngETL,cácphươngán xửlýtrongtừngtrườnghợpcụthểđể cóthểápdụngtrongcácbàitoánthựctế
2 Đối tượng và phạm vi nghiên cứu: Việc nghiên cứu sẽ tập trung vào lý thuyết xây
dựng hệ thống ETL, áp dụng vào xây dựng chức năng trích xuất với nguồn dữ liệu từ hệ
Trang 4thống dữ liệu Vinaphone.
3 Phương pháp nghiên cứu: Tìm hiểu các tài liệu liên quan đến các kỹ thuật
ELT trong kho dữ liệu, các phương pháp xây dựng hệ thống ETL
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
Chương này trình bày các khái niệm, các thành phần, chức năng trong kho dữ liệu,các ứng dụng cũng như những mô hình kho dữ liệu Tổng quan về ETL, các thành phần vàvai trò ETL trong kho dữ liệu
Chương 2: Kiến trúc và các thành phần ETL
Chương này tập trung vào chi tiết các thành phần của ETL, các bước thực hiện củamột hệ thống ETL, những vấn đề gặp phải với mỗi thành phần cụ thể trong một hệ thốngETL Các biện pháp giải quyết với mỗi tình huống trong những bài toán cụ thể
Chương 3: Xây dựng modul trích xuất dữ liệu trong ETL
Chương cuối cùng của luận văn trình bày một thử nghiệm nhỏ áp dụng phần lýthuyết đã nêu ở 2 chương trước Đó là áp dụng thử nghiệm phương pháp trích xuất đãnghiên cứu trong phần lý thuyết vào bài toán trích xuất dữ liệu từ hệ thống dữ liệu chi tiếtcước và dữ liệu của hệ thống trả trước
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ ETL TRONG KHO DỮ LIỆU
1 Kho dữ liệu
1.1 Khái niệm kho dữ liệu
Định nghĩa do W.H.Inmon đưa ra : Kho dữ liệu (Data Warehouse) là tập hợp dữ liệu tíchhợp theo hướng chủ đề, tương đối ổn định,cập nhật định kỳ nhằm hỗ trợ quá trình tạo quyếtđịnh.[2]
Như vậy, có thể thấy rằng thông thường một kho dữ liệu được xem như một cơ sở dữ liệuđược duy trì riêng biệt trên cơ sở dữ liệu từ nhiều nguồn cơ sở dữ liệu tác nghiệp
1.1.2 Các đặc trưng của kho dữ liệu
Một kho dữ liệu được xác định là một cơ sở dữ liệu trong đó có chứa bốn đặc tính sau:hướng chủ đề, tính ổn định, được tích hợp, gắn với thời gian
1.1.3 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ệunguồn, vùng dữ liệu trung gian và kho dữ liệu
Hình 1.1 Kiến trúc kho dữ liệu
1.1.3.1 Kho dữ liệu chủ đề (Datamart)
Kho dữ liệu chủ đề (Data Mart) cũng là một cơ sở dữ liệu có những đặc điểm giốngvới kho dữ liệu nhưng quy mô của nó nhỏ hơn và lưu trữ dữ liệu về một lĩnh vực,một chuyên ngành cụ thể Có 2 loại
Trang 6- Datamart độc lập.
1.1.3.2 Siêu dữ liệu (MetaData)
Metadata là một loại “dữ liệu về dữ liệu”, nó được xây dựng nhằm mục đích mô tảcấu trúc nội dung về dữ liệu bên trong cơ sở dữ liệu Metadata có ý nghĩa đặc biệt quantrọng trong việc xây dựng và tổ chức lưu trữ dữ liệu của Data Warehouse
1.1.3.3 Cơ sở dữ liệu kho dữ liệu
Cơ sở dữ liệu tập trung là một nền tảng cơ bản của môi trường kho dữ liệu Cơ sở dữliệu này 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)
1.1.4 Các ứng dụng của kho dữ liệu
Kho dữ liệu được sử dụng theo ba cách chính:
Cách sử dụng truyền thống
Trong cách sử dụng này việc khai thác thông tin dựa trên các công cụ truy vấn vàbáo cáo Nhờ có việc trích lọc, tích hợp và chuyển đổi các dữ liệu thô sang dạng dữliệu có chất lượng cao và có tính ổn định
Hỗ trợ trực tuyến (OLAP)
Nếu ngôn ngữ truy vấn chuẩn SQL và các công cụ làm báo cáo truyền thống chỉ cóthể miêu tả những gì có trong cơ sở dữ liệu thì phân tích trực tuyến có khả năng phântích dữ liệu, xem xét xem giả thuyết là đúng hay sai Tuy nhiên phân tích trực tuyếnlại không có khả năng đưa ra giả thuyết Do kích thước quá lớn và có tính chất phứctạp nên khó có thể sử dụng Data Warehouse cho mục đích này
Công nghệ khai phá dữ liệu (Data mining)
Trong hoàn cảnh hiện nay sự phát triển của dữ liệu đặt ra yêu cầu phải lưu trữ dữliệu phức tạp và có kích thước lớn Việc khai phá dữ liệu trở thành một nhu cầu khoahọc và trong hoạt động thực tiễn
1.1.5 Thiết kế CSDL cho kho dữ liệu
1.1.5.1 Giản đồ hình sao
Trang 7Giản đồ hình sao được đưa ra lần đầu tiên bởi Raph Kimball như là một lựa chọn thiết kếCSDL cho kho dữ liệu Trong giản đồ hình sao, dữ liệu được xác định và phân loại theo 2kiểu: sự kiện (bảng Fact) và chiều (các bảng Dimension: các bảng liên kết).
1.1.5.2 Giản đồ hình tuyết rơi
Giản đồ hình tuyết rơi là một sự mở rộng của giản đồ hình sao, tại đó mỗi cánh saokhông phải là một bảng Chiều mà là nhiều bảng Trong dạng giản đồ này, mỗi bảngtheo chiều của giản đồ hình sao được chuẩn hóa hơn Giản đồ hình tuyết rơi cải thiện năngsuất truy vấn, tối thiểu không gian đĩa cần thiết để lưu trữ dữ liệu và cải thiện năng suấtnhờ việc chỉ phải kết hợp những bảng có kích thước nhỏ hơn thay vì phải kết hợp
những bảng có kích thước lớn lại không chuẩn hóa 1.1.5.3 Giản đồ kết hợp
Là kết hợp giữa giản đồ hình sao dựa trên bảng Sự kiện và những bảng Chiều khôngchuẩn hóa theo các chuẩn 1, 2, 3 và giản đồ hình tuyết rơi trong đó tất cả các bảng Chiềuđều đã được chuẩn hóa
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ốngETL đượ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 đưavà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 [7, tr.xii]
1.2.1 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ụngngười sử dụng một khuôn dạng dữ liệu phù hợp Bản chất Kho dữ liệu là quá trình lấy dữliệu từ các hệ thống LS và hệ thống cơ sở dữ liệu tác nghiệp và chuyển đổi thành thông tin
có tổ chức trong một định dạng thân thiện với người sử dụng; trên cơ sở đó có thể phân tích
dữ liệu và hỗ trợ quyết định kinh doanh Quá 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 hay bảng sự kiện sẽ chi phí ít nhất 70% thời gian, nỗ lực củahầu hết các dự án kho dữ liệu Trong tài liệu [7, tr.23] có đưa ra một định nghĩa về kho dữliệu nói lên vai trò của ETL trong kho dữ liệu
Trang 81.2.2 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
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
Trang 9CHƯƠNG 2 KIẾN TRÚC VÀ CÁC THÀNH PHẦN CỦA ETL.
2.1 Tổng quan ETL
2.1.1 Những đặc điểm chính của ETL
Mỗi chức năng ETL thực hiện một mục đích quan trọng Khi muốn chuyển dữ liệu
từ hệ thống nguồn vào hệ thống thông tin được lưu trữ trong kho dữ liệu, việc thực hiện cácchức năng này đều cần thiết Để thay đổi dữ liệu thành thông tin, trước tiên phải xác địnhcác dữ liệu Sau khi xác định dữ liệu, không thể đơn giản là đổ dữ liệu vào kho Dữ liệuphải được trích xuất và qua các biến đổi phù hợp để được chuyển đổi thành thông tin Saukhi đã chuyển đổi dữ liệu, nó vẫn không hữu ích với người sử dụng cuối cùng cho đến khi
nó được chuyển vào kho dữ liệu Tải dữ liệu là một chức năng cuối cùng Như vậy ta phảithực hiện cả 3 chức năng của ETL để chuyển đổi dữ liệu thành thông tin
2.1.2 Các chi phí cho hệ thống ETL
Nói chung ta sẽ tiêu tốn khoảng 50-70% công sức của dự án vào các chức năng ETL
2.1.3 Yêu cầu với ETL và các bước
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ình 2.1 Các bước chính của một quy trình ETL.
2.1.4 Các yếu tố quan trọng đối với ETL
- Xác định được độ phức tạp và đa dạng của các hệ thống nguồn dữ liệu để có thể xây dựngđược các chức năng trích xuất và chuyển đổi phù hợp
- Xác định được các kiểu tải và thời gian tải cho các loại dữ liệu để có phương án phù hợp
Trang 102.2 Vùng dữ liệu trung gian
Trong tất cả các kiến trúc kho dữ liệu, luôn có một vùng chứa dữ liệu gọi làvùng trung gian hay còn gọi là vùng xử lý Dữ liệu được chuyển từ nhiều nguồn vào vùng
xử lí mà không thông qua (hoặc rất ít) công đoạn xử lí nào
2.3 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
Hình 2.2 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
Dữ liệu trong hệ thống nguồn có thể rơi vào hai loại
Giá trị hiện tại Hầu hết các thuộc tính trong các hệ thống nguồn rơi vào loại này Ở
đây giá trị được lưu trữ của một thuộc tính mô tả giá trị của thuộc tính ngay thời điểm nàycủa thời gian Các giá trị tạm thời hoặc nhất thời Khi các giao dịch xảy ra, các giá trị thayđổi Không có cách nào để biết bao lâu giá trị hiện tại sẽ giữ nguyên hay sẽ thay đổi
Trang 11Trạng thái định kì Loại này không phổ biến như thể loại trước Trong loại này, giá
trị của một thuộc tính được giữ như một trạng thái mỗi khi có thay đổi xảy ra Tại mỗi thờiđiểm, gíá trị trạng thái được lưu trữ với tham chiếu đến thời gian khi giá trị thay đổi
Khi triển khai một hệ thống kho dữ liệu, các dữ liệu ban đầu với một thời gian nhấtđịnh phải được chuyển vào kho dữ liệu, sau đó ta phải đưa vào các dữ liệu thay đổi sau tảiban đầu Nói rộng ra, có 2 loại chính của trích xuất dữ liệu là dữ liệu tĩnh và dữ liệu thayđổi.Trích xuất dữ liệu tĩnh chiếm chủ yếu trong tải ban đầu, và trích xuất dữ liệu thay đổitrong tải gia tăng
Tải gia tăng có thể phân chia thành trích xuất theo thời gian thực hoặc trích xuấtchậm chậm Trong thời gian thực nắm bắt dữ liệu có 3 tùy chọn, nắm bắt dữ liệu chậm ta có
2 tùy chọn
2.3.2.2 Các kỹ thuật trích xuất dữ liệu thời gian thực
Nắm bắt dữ liệu qua bản ghi giao dịch Tùy chọn này sử dụng bản ghi giao dịch của hệ
quản trị cơ sở dữ liệu được duy trì cho việc khôi phục khi có lỗi xảy ra Mỗi giao dịch thêm,cập nhật hay xóa một bản ghi trong bảng cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu ngay lậptức sinh ra một bản ghi log
Nắm bắt thông qua trigger cơ sở dữ liệu Tùy chọn này cũng được áp dụng cho các hệ
thống nguồn dữ liệu sử dụng ứng dụng cơ sở dữ liệu Ta có thể tạo các trigger cho tất cả các
sự kiện mà ta cần nắm bắt Đầu ra của trigger được ghi vào một tệp độc lập và sẽ được sửdụng để trích xuất dữ liệu cho kho dữ liệu việc tạo và duy trì trigger trong suốt các quátrình của hệ thống nguồn sẽ tăng thêm các chi phí tài nguyên và thời gian của hệ thốngnguồn
Nắm bắt trong các ứng dụng nguồn Kỹ thuật này được xem như nắm bắt dữ liệu ứng dụng
hỗ trợ Nói cách khác, các ứng dụng nguồn được thực hiện để hỗ trợ cho việc nắm bắt dữliệu cho kho dữ liệu Ta phải chỉnh sửa các chương trình ứng dụng liên quan được viết chocác têp và cơ sở dữ liệu 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 giancung 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
Trang 12vớ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ụpcủ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
- 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
- Chuyển đổi Bộ ký tự
- Chuyển đổi đơn vị đo lường
- Chuyển đổi thời gian
- Tổng hợp
- Cơ cấu lại khóa
- Xóa bản ghi trùng
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ơpcác nguồn này mà không sợ bị trùng lặp hay bị thiếu