VẤN ĐỀ TÍCH HỢP DỮ LIỆU VÀO KHO - elearning-etl

Download Report

Transcript VẤN ĐỀ TÍCH HỢP DỮ LIỆU VÀO KHO - elearning-etl

VẤN ĐỀ TÍCH HỢP DỮ LIỆU VÀO
KHO DỮ LIỆU:
KHẢO SÁT LÍ THUYẾT VÀ XÂY DỰNG
ỨNG DỤNG
Thực hiện: Nguyễn Minh Hùng – 0712012
Lê Văn Huy – 0712192
GVHD: PGS.TS Đồng Thị Bích Thủy
1. Giới thiệu
• Nhu cầu tích hợp dữ liệu
CSDL
Học tập
trực tuyến
OLAP
CSDL
Giáo vụ
Bảng
điểm
CSDL
Kho dữ liệu
Báo biểu
1. Giới thiệu
• Mục tiêu của đề tài:
– Xây dựng kho dữ liệu
– Xây dựng quy trình tích hợp dữ liệu
– Sử dụng công cụ mã nguồn mở miễn phí
– Dễ triển khai
– Dễ sử dụng
1.Giới thiệu
• Đối tượng và phạm vi nghiên cứu:
– Các kiến trúc kho dữ liệu điển hình
– Quy trình tích hợp dữ liệu (ETL)
– Công cụ mã nguồn mở PDI
– Xây dựng kho dữ liệu từ CSDL của moodle, file
điểm định dạng excel
– Xây dựng phần mềm đóng gói quy trình tích hợp
dữ liệu trên HĐH Windows.
2. Các kiến trúc kho dữ liệu
• Kiến trúc DDS đơn
Dữ liệu
CSDL
nguồn
Quy trình tích hợp dữ liệu
ETL
ETL
Bảng
Dữ liệu
điểm
nguồn
Vùng xử lí
DDS
Ứng dụng
đầu cuối
2. Các kiến trúc kho dữ liệu
• Kiến trúc NDS + DDS
Dữ liệu
CSDL
nguồn
Quy trình tích hợp dữ liệu
ETL
ETL
ETL
Bảng
Dữ liệu
điểm
nguồn
Vùng xử lí
NDS
DDS
Ứng dụng
đầu cuối
2. Các kiến trúc kho dữ liệu
• Kiến trúc ODS + DDS
Dữ liệu
CSDL
nguồn
Quy trình tích hợp dữ liệu
ETL
ETL
ETL
DDS
Bảng
Dữ liệu
điểm
nguồn
Vùng xử lí
ODS
Ứng dụng
tác nghiệp
Ứng dụng
đầu cuối
3. Mô hình hóa đa chiều
• So sánh CSDL tác nghiệp và CSDL phục vụ kho
dữ liệu
• Định nghĩa:
Đây là kĩ thuật thiết kế cơ sở dữ liệu cho kho
dữ liệu đặc biệt để hỗ trợ truy vấn đầu cuối
một cách hiệu quả. [6]
3. Mô hình hóa đa chiều
• Lược đồ hình sao
NGAY THANG
THOI GIAN
Các bảng chiều
TRUY CAP
Bảng dữ kiện
SINH VIEN
MON HOC
3. Mô hình hóa đa chiều
• Chiều:
Các đối tượng tham gia vào một sự kiện hay là
ngữ cảnh của sự kiện đó [5]
• Dữ kiện:
Con số thể hiện độ đo của một sự kiện gọi là
dữ kiện [5]
3. Mô hình hóa đa chiều
• Giảm dạng chuẩn và phân cấp trên chiều
– Mục đích
– Phương pháp
4. Tích hợp dữ liệu
• Mục đích
– Kết hợp dữ liệu từ nhiều nguồn khác nhau
– Tập trung dữ liệu đã kết hợp vào một khung nhìn
chung
4. Tích hợp dữ liệu
• Quy trình tích hợp dữ liệu
Dữ liệu
CSDL
nguồn
Rút trích
A
Bảng
Dữ liệu
điểm
nguồn
Extract
Biến đổi
A -> a
Transform
ETL
Nạp
a
Load
CSDL của
Kho dữ liệu
4.1. Rút trích dữ liệu
• Nắm bắt thay đổi trên dữ liệu nguồn
– Khái niệm:
• Là quá trình theo dõi các thay đổi trên dữ liệu nguồn
• Cập nhật dữ liệu tương ứng vào hệ thống đích
– Tác dụng:
• Giảm ảnh hưởng lên hệ thống nguồn
• Giảm thời gian xử lý
– Các phương pháp: 4 phương pháp
4.1. Rút trích dữ liệu
• Xử lý dữ liệu đầu vào
– Vùng xử lý
4.2. Biến đổi dữ liệu
•
•
•
•
•
Kiểm tra tính hợp lệ
Làm sạch dữ liệu
Giải nghĩa và ánh xạ dữ liệu
Tạo và quản lý khóa
Tổng hợp dữ liệu
4.3. Nạp dữ liệu
• Nạp và duy trì các chiều
– Chiều thay đổi chậm
– Bảng cầu nối
– Chiều thời gian
• Nạp dữ kiện
– Dữ liệu lớn
– Tham chiếu đến các bảng chiều
5. Công cụ Pentaho Data Integration
5. Công cụ Pentaho Data Integration
• Các loại đối tượng của Kettle:
– Biến đổi (transformation)
5. Công cụ Pentaho Data Integration
• Các loại đối tượng của Kettle:
– Công việc (job)
5. Công cụ Pentaho Data Integration
• Các thành phần chính:
– Giao diện phát triển đồ họa
5. Công cụ Pentaho Data Integration
• Các thành phần chính:
– Bộ lập lịch
5. Công cụ Pentaho Data Integration
• Các thành phần chính:
– Công cụ dòng lệnh (Pan/Kitchen)
6. Xây dựng ứng dụng thử nghiệm
• Yêu cầu của ứng dụng:
– Yêu cầu phân tích trên dữ liệu
– Yêu cầu hệ thống
6. Xây dựng ứng dụng thử nghiệm
• Danh sách các nghiệp vụ
Nghiệp vụ
Ngữ cảnh
Thời
Người
Học
gian
dùng
phần
x
x
x
x
x
Vai trò
Chức
năng
Phân tích các truy cập vào
hệ thống
Phân tích kết quả học tập
x
x
6. Xây dựng ứng dụng thử nghiệm
• Mô hình kiến trúc của ứng dụng
6. Xây dựng ứng dụng thử nghiệm
• Cấu trúc dữ liệu nguồn: các bảng cần lấy
thông tin
Tên bảng
Ý nghĩa
mdl_course
Chứa thông tin về các học phần
mdl_course_categories
Chứa thông tin về các nhóm học phần
mdl_module
Chứa thông tin về các thành phần của hệ thống Moodle
mdl_role_assignment
Chứa thông tin về phân quyền người dùng
mdl_context
Chứa thông tin bổ sung cần cho các truy vấn
mdl_user
Chứa thông tin về người dùng
mdl_log
Chứa thông tin về các truy cập
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế vùng xử lý:
– Vùng xử lý dữ liệu lấy từ CSDL
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế vùng xử lý:
– Vùng xử lý dữ liệu lấy từ file
Tên cột
Ý nghĩa
Tên cột
Ý nghĩa
TermNumber
Thứ tự học kì trong năm học
CourseID
Chứa mã học phần
TermName
Tên học kì
StudentID
Chứa mã sinh viên
AcademicYear
Năm bắt đầu của năm học
Value
Điểm số của sinh viên
AcademicYearName
Tên năm học
BeginDate
Ngày bắt đầu học kì
EndDate
Ngày kết thúc học kì
Cấu trúc tập tin Excel chứa thông tin về học kì,
năm học
Cấu trúc tập tin Excel chứa kết quả
học tập
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế CSDL chuẩn hóa:
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế CSDL của kho dữ liệu
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế CSDL của kho dữ liệu
– Thiết kế các chiều liên quan đến thời gian
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế CSDL của kho dữ liệu
– Lựa chọn loại thay đổi chậm cho các chiều
6. Xây dựng ứng dụng thử nghiệm
• Thiết kế CSDL của kho dữ liệu
– Sử dụng bảng cầu nối đối với chiều đa trị và đệ
quy
6. Xây dựng ứng dụng thử nghiệm
• Xây dựng quy trình tích hợp dữ liệu
Nếu vùng xử lí
có dữ liệu
Bắt đầu
Sai
Lấy dữ liệu mới từ
CSDL Moodle đưa
vào vùng xử lí
Đúng
Kiểm tra tính hợp lệ
Làm sạch dữ liệu
Giải nghĩa và đổi tên
Sao chép các tập tin
ngày tháng, điểm số
vào vùng xử lí
Tạo khoá nghiệp vụ
Đưa dữ liệu vào
vùng CSDL chuẩn
hoá
Nạp chiều ngày
tháng, thời gian
Sai
Nếu đã nạp chiều
ngày tháng, thời gian
Đúng
Nạp bảng dữ kiện
truy cập và bảng
dữ kiện điểm số
Cập nhật thông tin
học kì, ngày nghỉ
Tạo các bảng cầu
nối
Tính dữ kiện thời
gian truy cập và
số lượt truy cập
Tạo khoá đại diện và
nạp các bảng chiều
còn lại
Xoá dữ liệu trong
vùng xử lí
Kết thúc
6. Xây dựng ứng dụng thử nghiệm
• Nắm bắt các thay đổi trên dữ liệu
Bắt đầu
Bắt đầu
So sánh từng dòng dữ liệu
trong Moodle với NDS
dựa trên khoá nghiệp vụ
Nếu
last_update < time_modified
Hoặc
Không tồn tại trong NDS
Sai
Đúng
So sánh từng dòng dữ liệu
trong Moodle với NDS
dựa trên khoá nghiệp vụ
Sai
Sai
Nếu giá trị các thuộc tính bị thay đổi
Hoặc
Không tồn tại trong NDS
last_update: Thời điểm cập nhật cuối
cùng vào NDS
time_modified: Thời điểm dữ liệu
Moodle bị thay đổi
Đúng
Sai
last_update = thời điểm hiện hành
last_update: Thời điểm cập nhật cuối
cùng vào NDS
last_update = time_modified
Cập nhật các thuộc
tính còn lại trong
NDS
Cập nhật các thuộc
tính còn lại trong
NDS
Nếu đã so sánh hết
Nếu đã so sánh hết
Đúng
Kết thúc
Đúng
Kết thúc
6. Xây dựng ứng dụng thử nghiệm
• Xử lí xung đột với các nguồn dữ liệu cùng cấu
trúc:
– Tạo khóa tự nhiên và khóa đại diện
6. Xây dựng ứng dụng thử nghiệm
• Xây dựng ứng dụng đóng gói
– Mô hình của ứng dụng
Tạo/Cập nhật
file batch
Ứng dụng
đóng gói
File
batch
Truyền tham số
Xuất log
Đọc/ghi cấu hình
Công cụ dòng lệnh
(Kitchen)
Thực thi công việc
File job
(.ktj)
File XML
cấu hình
Dữ liệu
CSDL
nguồn
ETL
Bảng
Dữ liệu
điểm
nguồn
Tích hợp dữ liệu
Kho dữ liệu
6. Xây dựng ứng dụng thử nghiệm
• Xây dựng ứng dụng đóng gói
– Các chức năng:
•
•
•
•
•
Tạo tài khoản người dùng
Cấu hình các nguồn dữ liệu
Cấu hình kho dữ liệu
Cấu hình ngày tháng hệ thống
Cấu hình đường dẫn thư mục chứa Kettle và các
tập tin công việc (file job)
6. Xây dựng ứng dụng thử nghiệm
• Lập lịch:
• (hình ảnh công cụ lập lịch)
7. Kết luận
• Các kết quả đạt được
– Thiết kế hoàn chỉnh kho dữ liệu phục vụ cho môi
trường học tập trực tuyến
– Cài đặt hoàn chỉnh quy trình tích hợp dữ liệu từ
nhiều nguồn có thể loại và cấu trúc khác nhau
– Ứng dụng thử nghiệm
7. Kết luận
• Những vấn đề còn tồn tại:
– Quy trình tích hợp dữ liệu chưa có khả năng tự
giám sát (audit) bằng siêu dữ liệu (metadata)
– Phần mềm đóng gói chưa có bộ lập lịch tích hợp
mà phải sử dụng bộ lập lịch của bên thứ 3
7. Kết luận
• Hướng phát triển:
– Mở rộng kho dữ liệu cho nhiều yêu cầu phân tích
khác.
– Mở rộng hỗ trợ tích hợp dữ liệu cho nhiều nguồn
hệ thống học tập trực tuyến khác (Sakai, APS…)
– Tích hợp bộ lập lịch vào phần mềm đóng gói.