2011-11-10 20 views
12

Có lợi thế về hiệu suất nào khi sử dụng máy chủ ROLAP như Mondrian trên cơ sở dữ liệu MySQL, trái ngược với việc đơn giản truy vấn cơ sở dữ liệu MySQL?Tại sao sử dụng ROLAP thay vì MySQL đơn giản?

Tôi hỏi điều này trong ngữ cảnh mà hầu hết các truy vấn của tôi sẽ tương đối đơn giản (chẳng hạn như tìm tất cả doanh số trong một khoảng thời gian nhất định), nhưng kích thước của cơ sở dữ liệu khá lớn (hàng trăm nghìn mục) .

Ý tưởng của tôi là sử dụng OLAP để tăng tốc truy vấn, nhưng bây giờ tôi nhầm lẫn về việc đây có thực sự là mục đích của công nghệ này hay không, đặc biệt là trong dạng ROLAP của nó. Trong khi thử API olap4j, tôi nhận ra rằng tôi có thể sử dụng nó để tạo các truy vấn MDX mà không cần phải có một máy chủ OLAP thực tế (chỉ có một cơ sở dữ liệu quan hệ và một lược đồ OLAP cho nó). Làm thế nào mà có thể được sử dụng bất kỳ về hiệu suất?

Cảm ơn

+1

"* hàng trăm nghìn *" không được coi là "khá lớn". Hàng trăm triệu người. –

+0

Có, bạn đã đúng. Đó là kích thước tôi có bây giờ, nhưng nó chắc chắn sẽ phát triển trong tương lai. – Epicurus

Trả lời

10

Phụ thuộc vào cách bạn sẽ sử dụng.

OLAP là công cụ để đơn giản hóa việc phân tích dữ liệu phức tạp. Nếu các truy vấn của bạn là tĩnh và đơn giản, thì không sử dụng ROLAP. Nó sẽ bổ sung thêm chi phí không cần thiết.

Mặt khác, nếu bạn cần phân tích dữ liệu tương tác phức tạp và chi tiết để báo cáo và thông minh nghiệp vụ, thì bằng mọi cách sử dụng ROLAP.

CẬP NHẬT: Nếu bạn cần OLAP hiệu năng cao cho MySQL, bạn nên xem this post on the MySQL performance blog để thảo luận về sự khác biệt về hiệu suất của các cách tiếp cận và công cụ khác nhau.

3

OLAP cho phép phân tích dữ liệu của bạn theo nhiều thứ nguyên; mỗi thứ nguyên có thể (nếu không phải luôn luôn) là "hệ thống phân cấp" (tức là cây). Điều này cho phép bạn đi từ hình ảnh lớn (dữ liệu tổng hợp cao) đến các chi tiết khi được yêu cầu (drilldown).

Ngoài ra, sức mạnh của ngôn ngữ MDX và/hoặc các phép đo được tính toán cho phép các truy vấn phức tạp khá khó khăn nếu không thể làm trong SQL thuần túy.