2.7.1. Tổng quan về ETL
Quá trình lấy dữ liệu từ nguồn và đưa nó vào kho dữ liệu gọi là ETL. Tùy theo từng yêu cầu nghiệp vụ, trong quá trình chiết xuât, dữ liệu được nhận biết và trích xuất từ một hoặc nhiều nguồn khác nhau và có thể có sự biến đổi trong quá trình trích xuất.
Sau khi trích xuất, dữ liệu được chuyển tới hệ thống đích hoặc một hệ thống trung gian nào đó để xử lý tiếp. Việc biến đổi dữ liệu cũng có thểđược thực hiện ở bước này.
Một công cụ hỗ trợ quá trình ETL là OWB. Tuy nhiên, với những nghiệp vụ
phức tạp ta cần viết các thủ tục, hàm riêng để thực hiện tiến trình ETL trong kho dữ
liệu.
Hình 2-14: Công cụ Oracle Warehouse Builder
2.7.2. Trích xuất dữ liệu
Trích xuất dữ liệu là thao tác lấy dữ liệu từ nguồn để sử dụng cho DWH. Đây là bước đầu tiên của quá trình ETL. Sau khi trích xuất, dữ liệu có thể được biến đổi và
được tải vào trong DWH.
Nguồn dữ liệu cho việc trích xuất có thể rất phức tạp hoặc không được lập tài liệu đầy đủ, do vậy, quá trình xác định dữ liệu nào được trích xuất là khó khăn. Thiết kế tiến trình trích xuất dữ liệu chúng ta quan tâm tới hai vấn đề sau:
1. Thứ nhất: Lựa chọn phương thức trích xuất. Điều này gây ảnh hưởng tới nguồn dữ liệu, tiến trình truyền và thời gian làm tươi DWH.
2. Thứ hai: Cung cấp dữ liệu đã được trích xuất như thế nào để sử dụng trong tương lai. Điều này ảnh hưởng tới phương thức truyền, cũng như nhu cầu làm sạch và biến đổi dữ liệu.
Việc đánh giá lựa chọn phương pháp trích xuất dữ liệu phụ thuộc vào nguồn dữ
liệu và nghiệp vụ cụ thể. Có những phương pháp logic và vật lý giúp cụ thể hơn việc trích xuất dữ liệu từ nguồn.
1. Phương pháp logic:
• Trích xuất đầy đủ: Lấy ra tất cả dữ liệu đang có tại nguồn. Ví dụ như thao tác lấy tất cả dữ liệu ra từ một bảng. Khi trích xuất đầy đủ, sẽ không cần thao tác lần vết theo sự thay đổi kể từ lần trích xuất thành công cuối cùng. Thao tác này được thực hiện với trích xuất tăng.
• Trích xuất tăng: Là trích xuất dữ liệu đã có sự thay đổi kể từ một thời điểm cụ
thể nào đó trong quá khứđược lưu lại, như là thời điểm trích xuất dữ liệu gần nhất, hay là ngày đặt hàng cuối cùng của một kỳ tài chính.
Để nhận biết được những thay đổi này cần có một cơ chếđể đánh dấu dữ liệu đã có sự thay đổi sau thời điểm đó (thời điểm trích xuất dữ liệu trước đó).
Nhiều DWH không sử dụng phương pháp bắt những dữ liệu đã có sự thay đổi, thay vào đó là kỹ thuật so sánh toàn bộ các bảng được trích xuất với bảng đã được trích xuất trước đó từ nguồn để nhận dạng dữ liệu có sự thay đổi. Tuy nhiên, với bảng lớn thì phép toán này sẽ rất tốn tài nguyên hệ thống. Oracle hỗ trợ cơ chế Oracle's Change Data Capture (CDC) giúp ghi nhận và bảo trì những thay đổi của dữ liệu.
2. Phương pháp vật lý:
• Trích xuất trực tuyến: Dữ liệu được trích xuất trực tiếp từ nguồn. Tiến trình trích xuất có thể kết nối trực tiếp tới nguồn để lấy dữ liệu hoặc qua một hệ
thông trung gian nào đó đã lưu sẵn dữ liệu theo cách tổ chức đã được cấu hình từ trước.
• Trích xuất ngoại tuyến: Dữ liệu được lấy từ nguồn lưu trữ dạng ngoại tuyến như các tệp tin phẳng hay các tệp tin kết xuất, các không gian lưu trữ dữ liệu có thể trao đổi.
2.7.3. Trao đổi dữ liệu
Vận chuyển là thao tác chuyển dữ liệu từ một hệ thống sang hệ thống khác. Có thể là thao tác chuyển dữ liệu từ hệ thống nguồn tới cơ sở dữ liệu trung gian hoặc cơ
sở dữ liệu DWH, từ cơ sở dữ liệu trung gian tới cơ sở dữ liệu DWH, từ cơ sở dữ liệu DWH tới vùng lưu trữ siêu dữ liệu.
Các cơ chế vận chuyển dữ liệu trong DWH:
1. Vận chuyển sử dụng các tập tin dữ liệu: Dữ liệu nguồn có thể được kết xuất ra dạng tệp tin dữ liệu, được truyền tới máy đích thông qua giao thức FTP, sau đó các tập tin dữ liệu này có thể được đưa vào DWH. Đây là cơ chế đơn giản và hiệu quả để thực hiện việc vận chuyển dữ liệu ngoại tuyên ngay cả khi nguồn và DWH không cùng hệđiều hành hoặc không cùng database.
2. Vận chuyển thông qua các thao tác phân tán: Thông qua các truy vấn phân tán, cơ chế này thực hiện chuyển dữ liệu trực tiếp tới hệ thống đích, do vậy nó hỗ
trợ đồng thời cả trích xuất và vận chuyển dữ liệu. Kết quả vận chuyển dữ liệu
được biết ngay sau khi thực hiện các truy vấn hoặc giao dịch phân tán.
3. Vận chuyển sử dụng các không gian lưu trữ dự liệu có thể trao đổi: Cơ chế này phù hợp khi vận chuyển lượng lớn dữ liệu. Các không gian lưu trữ dự liệu này có thể trao đổi hỗ trợ vận chuyển đồng thời cả dữ liệu và siêu dữ liệu. Các tệp tin dữ liệu bao gồm hầu hết các đối tượng trong CSDL đều được vận chuyển từ
CSDL này tới CSDL khác. Hạn chế của cơ chế này là chỉ chạy trên cùng hệ điều hành, chỉ có từ phiên bản Oracle 8i trở lên, phải cùng bộđịnh dạng kí tự.
Ứng dụng các không gian lưu trữ dữ liệu có thể trao đổi trong DWH là khi vận chuyển dữ liệu từ nguồn dữ liệu trung gian sang DWH hoặc từ DWH sang vùng lưu trữ siêu dữ liệu. Các không gian lưu trữ dữ liệu có thể trao đổi phải được thiết lập dạng READ ONLY để có thể vận chuyển được.
2.7.4. Tải dữ liệu
Biến đổi dữ liệu là một công việc phức tạp đòi hỏi người làm phải có kỹ năng cao
đểđáp ứng các yêu cầu nghiệp vụđề ra, ởđây, kinh nghiệm về PLSQL và am hiểu về
nghiệp vụđóng vai trò quan trọng. Ngoài các thao tác biến đổi dữ liệu bên trong cơ sở
1. Cơ chế tải dữ liệu: Có thể sử dụng SQL*Loader, bảng ngoài để tải dữ liệu từ
các tệp tin dữ liệu hoặc bảng ngoài vào trong cơ sở dữ liệu DWH.
2. Cơ chế biến đổi dữ liệu: Khi dữ liệu đã được chuyển vào database, có thể biến
đổi dữ liệu sử dụng SQL hoặc PL/SQL. Khi sử dụng SQL, có thể sử dụng các câu lệnh INSERT, UPDATE, MERGE để biến đổi dữ liệu. Sử dụng ngôn ngữ
thủ tục PL/SQL để thực hiện các thao tác biến đổi dữ liệu phức tạp.