Là một điều khá mới mẻ với PostgreSQL, tôi chưa bao giờ thực hiện một triển khai lớn bằng cách sử dụng nó trước đây. Nhưng, tôi có kinh nghiệm tốt về các giải pháp doanh nghiệp và tôi muốn thử và áp dụng một số điều tôi đã học được bằng PostgreQuery.
Tôi có trang web có kích thước để xử lý số lượng lớn dữ liệu và lưu lượng truy cập. Cơ sở hạ tầng sẽ được xây dựng bằng cách sử dụng trên amazon (AWS) bằng các phiên bản EC2 và khối lượng EBS.
Thiết kế nên có hai cơ sở dữ liệu, cơ sở dữ liệu giao dịch chính và kho dữ liệu để xử lý phân tích và báo cáo.
Cơ sở dữ liệu giao dịch chính
sẽ được sử dụng cho trang web trực tiếp, trang web được xây dựng trên nhiều nút để mở rộng quy mô người dùng đồng thời. Chủ yếu chúng tôi yêu cầu cơ sở dữ liệu cho trường hợp này phải cực kỳ nhanh trong các hoạt động đọc, chúng tôi hy vọng> 100GB dữ liệu với mức tăng trưởng 30% hàng năm. Tại thời điểm này, chúng tôi đang có kế hoạch sử dụng hai máy chủ EC2 ( và bổ sung thêm sau này khi chúng tôi cần ).
Câu hỏi của tôi, các thiết lập được đề nghị cho các yêu cầu trên là gì? Thêm vào đó, có cách nào để quản lý phân vùng bảng và âm lượng không? Có khuyến nghị nào cho việc sử dụng thiết lập AWS không?
Cơ sở dữ liệu kho dữ liệu
Sẽ được sử dụng chủ yếu để thu thập tất cả dữ liệu từ cơ sở dữ liệu giao dịch chính theo chiều thời gian. vì vậy, ngay cả các bản ghi bị xóa khỏi cơ sở dữ liệu chính sẽ được ghi lại trong DWH. Do đó, dữ liệu sẽ rất lớn và tăng trưởng sẽ còn lớn hơn nữa. Chúng tôi cũng sẽ sử dụng vài phiên bản EC2 trở lên nếu được yêu cầu.
Các thiết lập được đề nghị trong trường hợp này là gì? điều này sẽ yêu cầu thao tác viết nhanh vì viết liên tục (ETL). Chúng ta có thể xây dựng các khối OLAP trong PostgreSQL không? nếu có, có ai ở ngoài đó đã thử không?
Kết nối với cơ sở dữ liệu
Các máy chủ web sẽ được kết nối với cơ sở dữ liệu chính để truy vấn và viết. Chúng tôi hiện đang phát triển một ứng dụng sử dụng django sử dụng thư viện riêng để kết nối. Có nên sử dụng cùng một phương pháp cơ bản? hoặc chúng ta nên cấu hình pgpool?
Kho dữ liệu (ETL)
Cách nào được đề xuất để xây dựng các quy trình ETL để đọc từ chính và tải vào kho dữ liệu? Bất kỳ công cụ? Phương pháp nào để tuân theo? PostgreQuery có cung cấp bất kỳ chức năng / công cụ hữu ích nào trong việc xây dựng các quy trình ETL không?