2012-03-23 26 views
5

Tôi cần tạo hệ thống phân tích. Tôi đã xây dựng hệ thống bằng cách sử dụng MognoDB và PHP nhưng không sử dụng OLAP. Bây giờ truy vấn của tôi thực sự là tốt nhất tôi có thể nhận được, nhưng hệ thống thực sự chậm vì không có khối lập phương. Có thể mất một phút để tải báo cáo trong 7 ngày qua. Tôi thực sự cần các tùy chọn của khối lập phương - slice & xúc xắc.Khối OLAP - PHP và MongoDB

Vì vậy, giải pháp cho tôi là gì? Có một hệ thống khối lập phương tốt được xây dựng với MongoDB và có thể chèn & xem dữ liệu qua PHP không? Có lẽ MongoDB sẽ không tốt cho tôi? Tôi có nên sử dụng cơ sở dữ liệu khác và bắt đầu tất cả hệ thống từ 0 không? Những giải pháp OLAP nào đang sử dụng PHP?

Chỉnh sửa: Thông tin thêm - Vâng, hệ thống cũng giống như Google Analytics. Cần phải có thể biết số lượt xem mỗi ngày, chỉ cần báo cáo từ nguồn lưu lượng truy cập và quốc gia được chỉ định. Hệ thống cần xử lý 1.000.000 lượt xem duy nhất mỗi ngày. Nhưng không chỉ số lượt xem, cần có thể xem số lượng người dùng đang quay trở lại, thời gian trung bình cho mỗi người dùng, v.v.

Cảm ơn.

+0

Bạn chưa nói gì về loại dữ liệu, số lượng bản ghi, dữ liệu chính, nguồn dữ liệu là gì, yêu cầu báo cáo có thể là gì, bạn sử dụng tổng hợp nào. Làm thế nào chúng ta có thể trả lời điều này mà không bị đoán? bạn cần phải cung cấp nhiều thông tin hơn nữa, và tôi nghi ngờ rất nhiều câu trả lời chỉ là khối lập phương + công cụ olap. – T9b

+0

Than. Xin lỗi, đã thêm. Bạn có thể giải thích thêm một chút về cỗ máy cube + olap này không? Làm thế nào tôi có thể làm điều đó bằng cách sử dụng PHP? Điều gì về mongodb của tôi? Tôi có nên sử dụng một DB khác không? –

+0

Tôi không chắc nỗi ám ảnh của bạn là gì với PHP và mongoDB. Tất cả những gì bạn cần có thể được thực hiện trong bất kỳ cơ sở dữ liệu nào cũng đủ. Có vẻ như bạn không tải dữ liệu của mình một cách thích hợp hoặc SQL của bạn không đủ tốt. Vui lòng cung cấp mã của bạn, cấu trúc DB, v.v. mà bạn nói không hoạt động tốt. – T9b

Trả lời

2

MongoDB không được xây dựng cho các ứng dụng kiểu khối lập phương OLAP. Tôi có thể nghĩ đến hai cách tiếp cận:

1) Xác định trước thời hạn truy vấn bạn cần làm và lưu trữ dữ liệu của bạn ở định dạng tối ưu trước thời hạn. Ví dụ: nếu bạn muốn biết số lượt truy cập mỗi quốc gia mỗi ngày, thì khi mỗi lượt truy cập xảy ra, hãy làm như sau:

db.visits.update ({'country': country, 'day': current_day()}, {$ inc: {visits: 1}})

Lặp lại cho mỗi số liệu. Thông tin cập nhật về Fire-and-forget từ ứng dụng của bạn cho DB phân tích sẽ bổ sung thêm chi phí tối thiểu để phục vụ yêu cầu cho khách truy cập. Sau đó, các truy vấn của bạn sẽ phần lớn là tiền đề.

2) Dùng thử chương trình phụ trợ MongoDB của JasperSoft.

2

Để cập nhật một chút phản hồi, icCube hiện đang cung cấp quyền truy cập vào MongoDB. Bạn sẽ có thể thiết lập một số truy vấn MongoDB để tạo các bảng mà icCube sẽ sử dụng để báo cáo và phân tích.

Các vấn đề liên quan