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 họ một khối (cube) là một đối tượng đơn, và chúng cung cấp các tuỳ chọn đa dạng để quản lý dữ liệu OLAP.
Một khối ảo (virtual cube) là một khung nhìn luận lý (logic) của các phần chia của một hoặc nhiều khối. Một khối ảo có thể được sử dụng để kết (join) các khối khác nhau để chia sẻ một chiều chung nào đó, ví dụ như có thể kết giữa khối Bán hàng và khối Kho nhằm các mục đích phân tích đặc biệt nào đó trong khi duy trì các khối tách biệt cho đơn giản. Các chiều (dimension) và các độ đo (measure) có thể được chọn từ các khối được kết để thể hiện trong khối ảo.
2.1.4 Các phép xử lý trên khối
Lát cắt (Slice - dice) Lát cắt là một “mặt phẳng” được chỉ ra bởi một tập các chiều nằm trong tập chiều của khối tại các giá trị cố định của các chiều còn lại.
Phép khoan dữ liệu (drill down): Phép khoan dữ liệu là một kỹ thuật đáp ứng nhu cầu khai thác thông tin thông qua các cấp độ của chiều từ mức độ tổng thể tới các mức độ chi tiết hơn
Phép cuốn dữ liệu (roll up): là phép toán ngược lại phép khoan, đó là quá trình xem dữ liệu ở cấp độ càng ngày càng tổng quát hơn
Phép quay (Pivot): Là phép thay đổi vị trí các chiều trong thể hiện của báo cáo
3 Các tiêu chuẩn đánh giá một công cụ OLAP
Hiện nay trên thị trường có nhiều công cụ OLAP do các nhà phát triển khác nhau phát hành. Theo hiệp hội OLAP www.olap.org 1995, E.F. Codd đưa ra 12 tiêu chuẩn để đánh giá các công cụ OLAP:
1. Khung nhìn khái niệm đa chiều: mô hình đa chiều tương ứng với các vấn đề kinh doanh Geography Product Item Type Category All City State Country All Time Month Year Day Week All Quarter 200 100 30 time city product LA NY Jan Feb Mar Apr 1 3 2 50 100 time product city 1 2 Jan Feb Mar Apr LA NY 3
2. Trong suốt: hệ quản trị CSDL, sự hỗn tạp của dữ liệu nguồn, và kiến trúc trong suốt tới người dùng
3. Có thể truy cập: chỉ có dữ liệu được yêu cầu cho phân tích được truy cập Thiết lập báo cáo phù hợp: việc tăng dung lượng CSDL hoặc chiều không làm giảm hiệu suất
4. Kiến trúc khách chủ: Hệ thống OLAP phải tuân theo các nguyên tắc cơ bản để có sự linh động, điều hành liên kết
5. Chiều chung: các chiều dữ liệu phải tương đương về cấu trúc và các khả năng xử lí 6. Điều khiển ma trận rời rạc
7. Hỗ trợ nhiều người dùng
8. Các toán tử qua các chiều không bị giới hạn: nhận dạng các phân cấp của chiều và tiến hành tính toán trong các chiều giao nhau.
9. Thao tác dữ liệu trực quan
10. Lập báo cáo linh động, tương tác được với người dùng 11. Không giới hạn số chiều và mức độ tổng hợp
Tổng hợp
• Các hướng lưu trữ:
ROLAP: (Relational Online Analytical Processing) Xử lý phân tích trực tuyến quan hệ
MOLAP: (Multi dimensional Online Analytical Processing) Xử lý phân tích trực tuyến đa chiều
HOLAP: (Hybric Online Analytical Processing) Xử lý phân tích trực tuyến kết hợp
DOLAP: (Database Online Analytical Processing) Xử lý phân tích trực tuyến CSDL
4 Các mô hình lƣu trữ hỗ trợ OLAP
Dịch vụ OLAP hỗ trợ nhiều mô hình lưu trữ dữ liệu khác nhau, mỗi mô hình có các ưu và khuyết điểm riêng, chúng được sử dụng tuỳ theo mục đích khai thác. Việc lựa chọn mô hình nào là sự thỏa hiệp giữa hai yếu tố: kích thước lưu trữ và tốc độ đáp ứng truy vấn.
4.1 Mô hình Multidimensional OLAP (MOLAP)
Mô hình OLAP đa chiều (MOLAP) lưu trữ dữ liệu cơ sở (là dữ liệu từ các bảng của kho dữ liệu hoặc trung tâm dữ liệu chủ đề) và thông tin tổng hợp (là các độ đo được tính toán từ các bảng) trong các cấu trúc đa chiều gọi là các khối (cube). Các cấu trúc này được lưu bên ngoài cơ sở dữ liệu data mart hoặc kho dữ liệu.
Mô hình dữ liệu MOLAP
Lưu trữ các khối (cube) trong cấu trúc MOLAP là tốt nhất cho các truy vấn tổng hợp dữ liệu thường xuyên mà cần thời gian hồi đáp nhanh. Ví dụ, tổng sản phẩm bán được của tất cả các vùng theo quý.
Mô hình MOLAP cho phép thực hiện các truy vấn phân tích dữ liệu tốt nhất vì các đặc điểm sau:
- Thông tin tổng hợp và dữ liệu cơ sở được lưu trữ trong cấu trúc đa chiều.
- Các thao tác kết (join), là một trong những thao tác tốn chi phí nhất của mô hình quan hệ, thì không cần thiết.
- MOLAP sử dụng các thuật toán nén dữ liệu cho phép lưu trữ với ít không gian hơn. - MOLAP sử dụng chỉ mục bitmap cho hiệu quả thực thi tốt hơn.
- MOLAP lấy dữ liệu trong khối (cube) rất nhanh bằng cách sử dụng các xử lý truy vấn tốc độ cao và cache dữ liệu (data cache). Thông tin nhận được từ khối (cube) và các bảng OLAP cơ sở chỉ được truy xuất thông tin chi tiết.
- MOLAP không xử dụng cơ chế khoá vì dữ liệu là chỉ đọc. - MOLAP có thể được nạp trước vào bộ nhớ cache.
4.1.1 Mô hình Relational OLAP (ROLAP)
Mô hình OLAP quan hệ (ROLAP) lưu trữ dữ liệu cơ sở và thông tin tổng hợp trong các bảng quan hệ. Các bảng này được lưu trữ trong cùng cơ sở dữ liệu như là các bảng của data mart hoặc kho dữ liệu.
Mô hình dữ liệu ROLAP
Lưu trữ các khối trong cấu trúc ROLAP là tốt nhất cho các truy vấn dữ liệu không thường xuyên. Ví dụ như nếu 80% người dùng truy vấn chỉ dữ liệu trong vòng một năm trở lại đây, các dữ liệu cũ hơn một năm sẽ được đưa vào một cấu trúc ROLAP để giảm không gian đĩa bị