Tải dữ liệu (Loading)

Một phần của tài liệu Data warehouse lý thuyết và thực tiễn (Trang 52)

Đây là pha tải dữ liệu vào hệ thống đích, ở đây là hệ thống Kho dữ liệu. Pha này thực hiện rất khác nhau phụ thuộc vào yêu cầu của mỗi tổ chức. Một số DWH cần lấy dữ liệu hàng tuần ghi đè lại dữ liệu hiện tại. Trong khi một số khác lấy dữ liệu theo dạng lịch sử hàng giờ. Ấn định thời gian và giới hạn để thay thế hay nối tiếp là một lựa chọn mang tính chiến lượng phụ tuộc vào thời gian có thể thực hiện và nhu cầu nghiệp vụ. Các hệ thống DWH phức tạp có thể duy trì tính lịch sử và vết sửa đổi của tất cả các dữ liệu đã tải vào trong DWH.

Khi pha này làm việc với một CSDL, các ràng buộc được định nghĩa trong lược đồ CSDL cũng như các trigger sẽ được khởi động

5 Các phƣơng hƣớng và kiến trúc thành phần ETL 5.1 Mô hình với trạm tạm

Được chia làm 2 cấu hình có hoặc không có trạm ghi tạm

- Tại thành phần ETL có trạm tạm là nơi lưu trữ dữ liệu. Dữ liệu được ghi xuống ổ cứng sau đó ETL thực hiện quá trình chuyển đổi dữ liệu trước khi tải nó vào CSDL DWH. Cấu hình này phù hợp với hoàn cảnh các dữ liệu nguồn rất lớn.

- Dữ liệu được để trong bộ nhớ trong và được xử lý ở đó rồi chuyển trực tiếp luôn vào CSDL DWH. Trong trường hợp dữ liệu đủ nhỏ, ưu tiên tốc độ chuyển tải thì cấu hình này thích hợp hơn.

5.2 Mô hình theo cách thức lấy dữ liệu nguồn

Khi xem xét đến khía cạnh dữ liệu được lấy ra khỏi hệ thống nguồn thì người ta phân nhóm thành 4 loại cấu hình như sau:

Có bốn hướng khác nhau áp dụng cho quá trình ETL

1. ETL thực hiện truy vấn dữ liệu để lấy dữ liệu từ hệ thống nguồn

2. Tại hệ thống nguồn có đặt các trigger , đặt tại các tác vụ cập nhật dữ liệu. Khi dữ liệu được cập nhật, dữ liệu được đẩy ra ngoài

3. Gần giống như 1, điểm khác biệt là chức năng chiết xuất dữ liệu được đặt và điều hành tại hệ thống nguồn.

4. Tại hệ thống nguồn có đặt các file Log mục đích ghi lại những thay đổi của dữ liệu. ETL đóng vai trò Log reader lấy và đọc các file này, ghi nhận những thay đổi dữ liệu

5.3 Các cấu hình xét theo vị trí thành phần ETL

Sẽ có cấu hình được xem xét

- Thành phần ETL nằm giữa các hệ thống nguồn và các máy chủ DWH. Đây là cấu hình hiệu quả nhất vì tính độc lập tương đối nhiệm vụ của các bên tham gia. Tuy nhiên cấu hình này sẽ có chi phí cao hơn vì cần mua thêm máy chủ cũng như các bản quyền phần mềm.

Hình 4.4 Các cấu hình xét theo vị trí của ETL

- Cấu hình thứ 2 khi ETL nằm trong các máy chủ DWH. Điều này thực hiện được khi máy chủ có khả năng dư thừa và có những khe thời gian đáp ứng cho quá trình ETL - Cấu hình thứ 3 là ETL nằm tại các máy chủ nơi có các hệ thống nguồn. Cấu hình này

thích hợp khi chúng ta cần có DWH theo thời gian thực. Tức là khi có thay đổi dữ liệu tại hệ thống nguồn, thì thay đổi này được chuyển tới ngay cho DWH.

Trên thực tế, có thể kết hợp để tận dụng ưu điểm các cấu hình này (mỗi cấu hình áp dụng lên 1 tập các bảng trong CSDL.

6 Hiệu năng tiến trình ETL 6.1 Hiệu năng 6.1 Hiệu năng

Các nhà cung cấp ETL áp dụng tiêu chuẩn các hệ thống ghi của họ là nhiều TB trên mỗi giờ sử dụng các máy chủ mạnh với nhiều CPU, ổ cứng, kết nối mạng lên đến GB và rất nhiều bộ nhớ.

Trên thực tế phần chậm nhất của một tiến trình ETL là pha tải CSDL. Pha này chậm vì nó phải chú ý đến vấn đề tương tranh, bảo đảm tính toàn vẹn, các chỉ mục. Vì thế để có hiệu năng tốt hơn, thì tiến trình này thực hiện bên ngoài CSDL. Một số cách thức sau hay được dùng để tăng hiệu năng:

- Phân hoạch các bảng và các chỉ mục, cố gắng giữa các bảng có kích thương tương tự nhau.

- Thực hiện tất cả các phép kiêm tra hợp lệ dữ liệu trong tầng ETL trước khi tải. Tạm bỏ phép kiểm tra toàn vẹn trong bảng đích trong quá trình tải.

- Dừng các trigger tại CSDL đích trong khi tải, thực hiện chúng tại một bước riêng. - Tạo các định danh ID trong tầng ETL chứ không phải trong CSDL.

- Bỏ các chỉ mục trước khi tải và tạo lại chúng sau khi tải.

- Sử dụng tải theo mẻ song song khi có thể. Chú ý là việc cố tải song song vào cùng một bảng thường gây ra lỗi khóa.

6.2 Xử lý song song

Các phần mềm ETL hầu như thực thi xử lý song song. Có 3 kiểu thực thi song song:

- Dữ liệu : bằng việc chia các file thành các mảnh nhỏ hơn cung cấp truy cập song song - Ống : cho phép chạy đồng thời nhiều thành phần trên cùng một dòng dữ liệu. Ví dụ :

Chỉ vào một giá trị trên bản ghi một đồng thời với thêm 2 trường vào bản ghi 2

- Thành phần : Chạy đồng thời nhiều tiến trình trên các dòng dữ liệu khác nhau trong cùng một một nhiệm vụ. Sắp xếp mọt file đầu vào trong khi thực hiện phép loại lặp trên file khác

Tất cả 3 kiểu trên thường được ghép vào trong một nhiệm vụ.

7 Một số công cụ ETL

Việc xây dựng một công cụ ETL có thể bằng bất kỳ ngôn ngữ lập trình nào nhưng việc xây dụng chúng là một công việc rất phức tạp. Chính vì thế các công ty thường chọn mua công cụ có sẵn.

Một công cụ ETL tốt cần phải có khả năng liên lạc với nhiều hệ quản trị cơ sở dữ liệu và đọc được nhiều định dạng file. Rất nhiều nhà cung cấp ETL hiện nay có các hồ sơ dữ liệu, chất lượng dữ liệu và metadata

- Enterprise Application Integration

- Enterprise Service Bus

7.1 Các môi trƣờng ETL mã nguồn mở

- Clover.ETL

- Enhydra Octopus (launches from web browser via Java Web Start) - Pentaho Data Integration

- Talend Open Studio - Scriptella

CHƢƠNG V: XỬ LÝ PHÂN TÍCH TRỰC TUYẾN OLAP 1 Giới thiệu chung

OLAP là một hệ thống xử lý phân tích trực tuyến. OLAP sử dụng kỹ thuật sử dụng phương pháp biểu diễn dữ liệu đa chiều nhằm cung cấp khả năng truy xuất nhanh đến dữ liệu của DWH. Biểu diễn dữ liệu đa chiều ở đây chính là khối (cube) được tạo dựng từ các bảng chiều (dimension table) và bảng sự kiện (fact table) trong kho dữ liệu. OLAP cung cấp khả năng thực hiện các truy vấn ở bậc cao và phân tích khác cho các ứng dụng khách.

Trong khi kho dữ liệu và trung tâm dữ liệu lưu trữ dữ liệu cho phân tích, thì OLAP cho phép các ứng dụng khách truy xuất hiệu quả dữ liệu này. Các đặc trưng của OLAP :

- Cung cấp mô hình dữ liệu đa chiều trực quan cho phép dễ dàng lựa chọn, định hướng và khám phá dữ liệu.

- Sử dụng ngôn ngữ truy vấn phân tích, cung cấp sức mạnh để khám phá các mối quan hệ trong dữ liệu kinh doanh phức tạp.

- Dữ liệu được tính toán trước đối với các truy vấn thường xuyên nhằm làm cho thời gian trả lời rất nhanh đối với các truy vấn đặc biệt hoặc làm kết cấu cho các truy vấn khác.

- Cung cấp các công cụ mạnh giúp người dùng tạo các khung nhìn mới của dữ liệu dựa trên một tập các hàm tính toán đặc biệt.

- Xử lý các truy vấn liên quan đến lượng dữ liệu rất lớn mà nếu cho thực thi các truy vấn này trong hệ thống OLTP sẽ không thể cho kết quả hoặc sẽ mất rất nhiều thời gian. Các phép xử lý cơ bản mà OLAP cung cấp trên không gian dữ liệu bao gồm cắt lát (slice) dữ liệu theo nhiều khía cạnh khác nhau, khoan xuống (drill down) mức chi tiết hơn hay cuộn lên (roll up) mức tổng hợp hơn của dữ liệu.

Tiến trình cơ sở của OLAP là dữ liệu được lấy ra từ kho dữ liệu hoặc từ trung tâm dữ liệu theo chủ đề sau đó được chuyển thành mô hình đa chiều và được lưu trữ trong một kho dữ liệu đa chiều.

Đối tượng chính của OLAP là khối, một sự biểu diễn đa chiều của dữ liệu chi tiết và tổng thể. Một khối bao gồm một bảng sự kiện (Fact), một hoặc nhiều bảng chiều (Dimensions), các đại lượng đo (Measures) và các phân hoạch (Partitions).

1.1 Các tính chất cần có của dịch vụ OLAP

- Dễ sử dụng: Bằng cách cung cấp các giao diện người dùng và các trợ giúp thực hiện (wizard).

- Linh động: Mô hình dữ liệu mạnh cho định nghĩa khối (cube) và lưu trữ.

- Các khối có thể ghi (Write-enable): Cho các kịch bản phân tích dạng “what if”.

- Kiến trúc có thể co dãn (scalable architecture): Cung cấp một sự đa dạng các kịch bản lưu trữ và giải pháp tự động đối với “hội chứng bùng nổ dữ liệu” mà gây khó chịu cho các kỹ thuật OLAP.

- Tích hợp các công cụ quản trị, bảo mật, nguồn dữ liệu và client/server caching. - Hỗ trợ rộng rãi các hàm API và kiến trúc mở để hỗ trợ các ứng dụng tuỳ ý.

4

1.1.1 So sánh OLAP với OLTP

Đặc trưng của các ứng dụng OLTP (On-Line Transaction Processing) là các tác vụ xử lý tự động ghi chép dữ liệu xử lý tác vụ của một tổ chức như ghi nhận đơn đặt hàng và các giao dịch ngân hàng (chúng là những công việc hàng ngày của tổ chức thương mại) mà cần phải đọc hoặc cập nhật một vài mẩu tin dựa trên khoá chính của chúng. Những tác vụ đó có cấu trúc, được lặp lại, bao gồm các giao dịch ngắn, tối giản và tách biệt, yêu cầu dữ liệu chi tiết và mới cập nhật. Các cơ sở dữ liệu tác nghiệp có xu hướng từ vài trăm megabyte đến hàng gigabyte kích thước và chỉ lưu trữ các dữ liệu hiện hành. Tính nhất quán và khả năng phục hồi của cơ sở dữ liệu là then chốt, và tối đa thông lượng giao dịch là thước đo chính yếu. Vì thế cơ sở dữ liệu được thiết kế để tối thiểu các xung đột trùng lắp.

Còn kho dữ liệu, mục tiêu là hỗ trợ quyết định cho các nhà quản lý. Tính chi tiết và riêng lẻ của các mẩu tin thì ít quan trọng hơn tính lịch sử, tổng kết và hợp nhất của dữ liệu. Do đó, kho dữ liệu thường chứa dữ liệu hợp nhất từ một hoặc nhiều cơ sở dữ liệu tác nghiệp và được thu thập qua một thời gian dài. Kết quả là kích thước kho dữ liệu có khuynh hướng từ vài trăm gigabyte đến hàng terabyte so với các cơ sở dữ liệu tác nghiệp. Kho dữ liệu hỗ trợ các truy vấn phức tạp với thời gian hồi đáp nhanh, các truy vấn phức tạp có thể truy xuất hàng triệu mẩu tin và thực hiện nhiều lần các thao tác quét, kết và tổng hợp. Đối với kho dữ liệu, số lượng truy vấn đưa vào và thời gian hồi đáp quan trọng hơn số lượng giao dịch đưa vào. Mà OLAP là một trong những công cụ cho phép thực hiện hiệu quả các truy vấn này.

Căn cứ vào đó, các cơ sở dữ liệu tác nghiệp được xây dựng để hỗ trợ tốt các tác vụ OLTP, vì thế nếu cố gắng thực thi các truy vấn OLAP phức tạp đối với các cơ sở dữ liệu tác nghiệp sẽ cho kết quả là hiệu quả thực hiện không thể chấp nhận được.

Ngƣời dùng Chuyên viên Các chuyên gia

Chức năng Thao tác hàng ngày Hỗ trợ quyết định

thiết kế CSDL Hướng ứng dụng Hướng chủ thể

Dữ liệu Hiện thời, cập nhật, chi tiết, và là các csdl độc lập

Lịch sử, tóm tắt, tích hợp đa chiều, và tổng hợp

Cơ chế truy cập Đọc/ ghi/ lập chỉ mục Duyệt nhiều lần

công việc cơ sở Toàn tác ngắn, đơn giản Câu hỏi phức

Số các bản ghi đƣợc truy cập

Vài chục Vài triệu

Số ngƣờ dùng Vài ngàn Vài trăm

Kích thƣớc CSDL 100MB-GB 100GB-TB

2 Kiến trúc khối của OLAP 2.1 Khối 2.1 Khối

Đối tượng chính của OLAP là khối (cube), một thể hiện đa chiều của dữ liệu chi tiết và tổng hợp. Một khối bao gồm một nguồn dữ liệu (Data source), các chiều (Dimensions), các độ đo (Measures) và các phần dành riêng (Partitions). Các khối được thiết kế dựa trên yêu cầu phân tích của người dùng. Một kho dữ liệu có thể hỗ trợ nhiều khối khác nhau như khối Bán hàng, khối Bảng kiểm kê,…

Dữ liệu nguồn của một khối chỉ ra nơi chứa kho dữ liệu cung cấp dữ liệu cho khối.

Chúng ta có thể bắt gặp khối 2 chiều trong các file dữ liệu excel, được dùng khá phổ biến với chức năng Pivot – table.

2.1.1 Đại lƣợng đo lƣờng thống kê

Các độ đo (measure) xác định các giá trị số từ bảng sự kiện (fact table) mà được tổng hợp cho phân tích như giá bán, chi phí hoặc số lượng bán.

- Tổng, số lượng, lớn nhất, nhỏ nhất - Trung bình (tổng/ số lượng)

2.1.2 Lƣới các khối

Từ ngữ cảnh tổng thể, ta có thể xây dựng một lưới các khối có mối liên quan với nhau. Mỗi lớp khối bao gồm các khối có cùng số lượng chiều. Ví dụ như bài toán bán hàng chúng ta có lưới các khối như hình dưới đây.

- ô khối 4 chiều

 Thời gian, mục hàng, địa điểm, nhà cung cấp - Ô khối 3 chiều

 thời gian, mục hàng, địa điểm

 thời gian, mục hàng, nhà cung cấp

 thời gian địa điểm, nhà cung cấp

 mục hàng, địa điểm, nhà cung cấp - Ô khối 2 chiều

Các ô (view) trên lưới khối:

Với mỗi lớp khối chúng ta cần xác định: - Có bao nhiêu ô giá trị

- Những ô giá trị khác 0

all

time item location supplier

time,item time,item,location time,item,location,supplier 0-D (apex) cuboid 1-D cuboid 2-D cuboid 3-D cuboid 4-D (base) cuboid

Với một khối dữ liệu n chiều, và Li là số cấp của chiều thứ i (trong phân cấp của chiều), tổng số các ô được sinh ra là     n i i L T 1 ) 1 ( .

2.1.3 Các phân hoạch (partition)

Là các vật chứa lưu trữ đa chiều, giữ dữ liệu của khối. Mỗi khối chứa ít nhất một phân hoạch, và dữ liệu của khối có thể kết hợp từ nhiều phân hoạch. Mỗi phân hoạch có thể lấy dữ liệu một nguồn dữ liệu khác nhau và có thể lưu trong một vị trí riêng biệt. Dữ liệu của một phân hoạch có thể được cập nhật độc lập với các phân hoạch khác trong một khối. Ví dụ, dữ liệu của một khối có thể được chia theo thời gian, với một phân hoạch chứa dữ liệu của năm hiện

SALES

Model Year Color Sales Chevy 1990 red 5 Chevy 1990 white 87 Chevy 1990 blue 62 Chevy 1991 red 54 Chevy 1991 white 95 Chevy 1991 blue 49 Chevy 1992 red 31 Chevy 1992 white 54 Chevy 1992 blue 71 Ford 1990 red 64 Ford 1990 white 62 Ford 1990 blue 63 Ford 1991 red 52 Ford 1991 white 9 Ford 1991 blue 55 Ford 1992 red 27 Ford 1992 white 62 Ford 1992 blue 39 DATA CUBE

Model Year Color Sales

ALL ALL ALL 942

chevy ALL ALL 510

ford ALL ALL 432

ALL 1990 ALL 343

ALL 1991 ALL 314

ALL 1992 ALL 285

ALL ALL red 165

ALL ALL white 273

ALL ALL blue 339

chevy 1990 ALL 154 chevy 1991 ALL 199 chevy 1992 ALL 157 ford 1990 ALL 189 ford 1991 ALL 116 ford 1992 ALL 128

chevy ALL red 91

chevy ALL white 236 chevy ALL blue 183

ford ALL red 144

ford ALL white 133

ford ALL blue 156

ALL 1990 red 69 ALL 1990 white 149 ALL 1990 blue 125 ALL 1991 red 107 ALL 1991 white 104 ALL 1991 blue 104 ALL 1992 red 59 ALL 1992 white 116 ALL 1992 blue 110

hành, một phân hoạch khác chứa dữ liệu của năm trước, và một phân hoạch thứ ba chứa tất cả dữ liệu của các năm trước nữa.

Các phân hoạch của một khối có thể được lưu trữ độc lập trong các cách thức khác nhau với các mức độ tổng kết khác nhau. Các phân hoạch không thể hiện đối với người dùng, đối với

Một phần của tài liệu Data warehouse lý thuyết và thực tiễn (Trang 52)

Tải bản đầy đủ (PDF)

(126 trang)