Công cụ tích hợp dữ liệu, quản lý môi trường kho dữ liệ u

Một phần của tài liệu Nghiên cứu giải pháp kho dữ liệu trong Oracle data warehouse 10g và áp dụng trong bài toán xây dựng kho dữ liệu khách hàng, ngân hàng TMCP Tiên Phong (Trang 33)

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ỗ (adsbygoogle = window.adsbygoogle || []).push({});

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.

2.8. Bảo trì

Sử dụng kỹ thuật phân vùng để cập nhật dữ liệu vào DWH: Hầu hết dữ liệu mới

được tải vào DWH đều theo một lịch trình cụ thể. Có thể:

1. Hàng ngày, hàng tuần, hàng tháng, hàng quý, dữ liệu mới được tải vào trong DWH.

2. Dữ liệu đang được tải vào DWH tại thời điểm cuối của tuần, của tháng chính là dữ liệu giao dịch của tuần hoặc tháng đó.

3. Hiệu năng kho dữ liệu.

2.9. Thực thi song song

Thực thi song song giúp cải thiện đáng kể thời gian trả lời cho các thao tác dữ

liệu chuyên sâu trong các cơ sở dữ liệu lớn như cơ sở dữ liệu phục vụ cho hệ thống hỗ

trợ quyết định, kho dữ liệu.

1. Thực thi song song cải thiện thao tác xử lý cho

• Các truy vấn yêu cầu quét các bảng lớn, hoặc phép liên kết, hoặc quét chỉ mục đã được phân vùng.

• Tạo chỉ số lớn.

• Tạo bảng lớn (bao gồm cả Khung nhìn vật lí).

• Các thao tác Insert, Update, Merge và Delete lượng lớn dữ liệu.

• Thực hiện truy nhập các đối tượng lớn (LOBs). (adsbygoogle = window.adsbygoogle || []).push({});

• Thực thi song song hỗ trợ các hệ thống có các đặc tính sau:

• Đa xử lý đối xứng (Symetric MultiProcessor-SMPs), cluster hoặc hệ

thống song song khổng lồ (Massively Parallel Systems – MPPs).

• Đủ băng thông để thực hiện vào ra.

• Các hệ thống có tỉ lệ sử dụng CPU thấp (dưới 30%).

• Các hệ thống có đủ bộ nhớđể hỗ trợ các xử lý sử dụng nhiều bộ nhớ như

• Thực thi song song được dùng nhiều trong hệ thống hỗ trợ quyết định DSS và DWH. Các hệ thống OLTP cài đặt thực thi song song khi thực hiện các thao tác xử lý theo lô hoặc các thao tác tạo chỉ mục. Các câu lệnh SELECT hoặc DML ở mức độ đơn giản trong hệ thống OLTP không nên cài đặt thực thi song song.

2. Không cài đặt thực thi song song khi

• Các môi trường có nhiều truy vấn và giao tác được thực hiện trong thời gian rất ngắn (vài giây hoặc ít hơn) như hệ thống xử lý giao dịch trực tuyến OLTP.

• Các môi trường trong đó các tài nguyên như bộ xử lý trung tâm, bộ nhớ, vào ra (I/O) đã được sử dụng gần hết.

3. Các thao tác có thể cài đặt thực thi song song

• Các phương thức truy nhập: Quét bảng, quét chỉ mục.

• Các phương thức liên kết: sort, merge, loop, hash.

4. Cơ chế làm việc song song : Thực thi song song chia việc thực hiện xử lý một câu lệnh SQL thành nhiều đơn vị công việc nhỏ hơn, từng đơn vị công việc này sẽ được xử lý bởi một tiến trình riêng rẽ. Các bảng, phân hoạch, chỉ mục cũng

được chia thành các phần gọi là granules. Khi xử lý song song, Oracle có các

điều phối truy vấn để thực hiện các thao tác.

• Phân tích truy vấn và phân tích mức độ song song.

• Cấp phát một hoặc hai phục vụ các luồng hoặc tiến trình.

• Điều khiển các truy vấn và gửi các chỉ lệnh phục vụ tới các câu truy vấn thực thi song song (Parallel Query - PQ).

• Xác định bảng hoặc chỉ số nào cần được quét bởi PQ slaves.

• Tạo ra các đầu ra cuối cùng cho người dùng.

5. Mức song song: Oracle có bộ điều phối thực thi song song. Bộ điều phối này

đăng ký hai hoặc nhiều máy chủ thực thi song song của Oracle Instance để xử

lý một câu lệnh SQL. Số máy chủ thực thi song song được liên kết với một thao tác đơn thể gọi là mức song song. Một thao tác đơn ở đây là một phần của một câu lệnh SQL như là mệnh đề ORDER BY, như là việc quét toàn bộ một bảng

để thực hiện một phép LIÊN KẾT trên cột không được đánh chỉ mục. Mức độ

song song chỉ áp dụng cho cơ chế nội hoạt động song song. Nếu cơ chế này có thể thực hiện thì tổng số máy chủ thực thi song song một câu lệnh có thể gấp hai lần mức song song. Không có nhiều hơn hai bộ máy chủ thực thi song song

có thể chạy đồng thời. Mỗi bộ thực thi song song có thể xử lý nhiều thao tác. Chỉ kích hoạt hai bộ máy chủ thực thi song song khi cần đảm bảo tối ưu nội hoạt động song song. Thực thi song song được thiết kế để sử dụng hiệu quả

CPU và ổ đĩa sẵn có để có được câu trả lời nhanh các truy vấn. Như vậy, khi nhiều người dùng cùng sử dụng cơ chế song song sẽ gây ra tình trạng quá tải sử

dụng tài nguyên. Oracle cung cấp một số phương pháp quản lý sử dụng hiệu quả tài nguyên trong môi trường có cài đặt thực thi song song, bao gồm:

• Thuật toán tương thích đa người dùng được cài đặt mặc định cho phép giảm mức song song khi tải của hệ thống tăng lên. (adsbygoogle = window.adsbygoogle || []).push({});

• Sử dụng cơ chế hồ sơ người dùng để giới hạn tài nguyên được sử dụng.

• Sử dụng chức năng Database Resource Manager để quản lý cấp phát tài nguyên cho nhóm người dùng.

6. Bộ đệm Máy chủ thực thi song song: Khi Instance khởi động, Oracle tạo một vùng đệm các máy chủ thực thi song song để sẵn sàng phục vụ các thao tác song song. Tham số PARALLEL_MIN_SERVERS quy định số máy chủ thực thi song song khi Oracle Database khởi động một Instance. Khi thực thi một thao tác song song, bộ điều phối thực thi song song có được máy chủ thực thi song song từ Vùng đệm và gán nó cho thao tác song song. Nếu thấy cần thiết, Oracle có thể tạo ra thêm máy chủ thực thi song song để thực hiện thao tác song song đó. Những máy chủ thực thi song song này duy trì việc thực thi các thao tác song song cho đến khi lệnh được thực hiện hoàn tất. Sau khi thực hiện xong công việc, các máy chủ thực thi song song này sẽđược bộđiều phối xử lý song song trả về cho Vùng đệm. Bộ điều phối song song và các máy chủ thực thi song song do bộđiều phối đó quản lý chỉ thực hiện một lệnh tại một thời điểm. Do vậy, không thể có chuyện các máy chủ thực thi song song của cùng một bộ điều phối quản lý lại vừa thực hiện một câu lệnh truy vấn, lại vừa thực hiện một câu lệnh thao tác dữ liệu khác (DML) tại một thời điểm. Khi người dùng phát sinh một câu lệnh SQL, bộ tối ưu của database sẽ quyết định có sử dụng cơ chế

song song để thao tác câu lệnh SQL đó không và mức song song cho mỗi thao tác là thế nào. Khi bộ tối ưu chọn cơ chế song song để xử lý câu lệnh SQL, các sự kiện theo trình tự sau được thực hiện:

• Tiến trình tiền cảnh của câu lệnh SQL trở thành bộđiều phối song song.

• Bộđiều phối song song có được số máy chủ xử lý song song phụ thuộc vào mức song song từ vùng đệm máy chủ, hoặc tạo máy chủ xử lý song song mới nếu thấy cần.

• Oracle thực thi câu lệnh như một chuỗi các thao tác, mỗi thao tác được thực hiện song song nếu có thể.

• Khi việc xử lý câu lệnh kết thúc, bộ điều phối trả kết quả về cho tiến trình người dùng phát sinh câu lệnh và trả máy chủ thực thi song song về

cho vùng đệm máy chủ.

7. Cách giao tiếp của máy chủ xử lý song song: Để thực thi một truy vấn trong cơ

chế song song, Oracle tạo hai máy chủ là Producer Queue và Consumer. Producer Queue Server lấy các bản ghi từ bảng và Consumer Server thực hiện các thao tác như liên kết, sắp xếp, DML và DDL trên các bản ghi này. Mỗi máy chủ trong tiến trình thực thi Producer thiết lập một kết nối tới mỗi máy chủ

tương ứng trong tập Consumer. Như vậy số kết nối ảo giữa các máy chủ thực thi song song sẽ tăng theo bình phương của mức song song. Từng kết nối sẽ sử

dụng một tới bốn bộ nhớ đệm. Trong môi trường chỉ có một Instance thì số bộ

nhớđệm thường là ba. Trong môi trường RAC thì số bộ nhớđệm thường là bốn cho mỗi kênh kết nối.

Hình 2-16: Minh họa các tin điện bộ nhớđệm và kết nối giữa các máy chủ thực thi song song

Nếu một kết nối được thực hiện giữa hai xử lý trên cùng một thể hiện thì các máy chủ xử lý song song giao tiếp bằng việc truyền tới truyền lui các vùng đệm. Khi kết nối được thực hiện giữa hai thể hiện khác nhau thì tin điện được truyền sử dụng các giao thức mạng tốc độ cao.

8. Làm song song hóa câu lệnh SQL: Sau khi bộ tối ưu xác định kế hoạch thực hiện câu lệnh SQL, bộ điều phối song song sẽ xác định phương thức thực hiện song song cho từng thao tác trong kế hoạch. Ví dụ: khi quét toàn bộ bảng, phương thức thực hiện song song sẽ chọn phương pháp quét từng vùng khối.

Hoặc thực hiện song song thao tác quét chỉ mục theo phân vùng. Bộ điều phối sẽ xác định liệu một thao tác có được thực hiện song song hay không, nếu có thì bao nhiêu máy chủ thực thi song song tham gia.

9. Chia việc giữa các máy chủ thực thi song song

• Bộ điều phối kiểm tra việc phân phối lại các yêu cầu của mỗi thao tác.

Một phần của tài liệu Nghiên cứu giải pháp kho dữ liệu trong Oracle data warehouse 10g và áp dụng trong bài toán xây dựng kho dữ liệu khách hàng, ngân hàng TMCP Tiên Phong (Trang 33)