2015-08-25 16 views
5

Giả sử chúng tôi có cơ sở dữ liệu cho một công ty xe buýt.Lưu trữ các bản ghi từ cơ sở dữ liệu PostgreSQL vượt qua mốc thời gian

  • Chúng tôi thu thập dữ liệu về những chuyến xe buýt, danh sách hành khách, nhiên liệu, vv
  • Chúng tôi chủ yếu làm việc với dữ liệu về cưỡi sắp tới
  • Đôi khi chúng ta cần phải xem xét trong lịch sử (đối với kế toán), nhưng khung thời gian ngắn (tối đa 3 tháng).
  • Chúng tôi không muốn giữ tất cả hồ sơ trên máy chủ sản xuất/phát triển của chúng tôi vì lý do rõ ràng (lưu trữ chất thải, truy vấn chậm, v.v.).
  • Chúng tôi muốn có cơ sở dữ liệu riêng biệt, nơi chúng tôi sẽ lưu trữ toàn bộ lịch sử.
  • Cách tốt nhất để đạt được điều này trên PostgreSQL là gì?

Chúng tôi đang tìm kiếm một cái gì đó như thế này:

  • Chúng tôi muốn tái tạo cơ sở dữ liệu sản xuất (bao gồm cả những thay đổi cơ cấu, trình tự, vv)
  • Chúng tôi muốn xóa dữ liệu cũ từ cơ sở dữ liệu sản xuất, nhưng loại trừ các câu lệnh này khỏi bản sao chép để giữ cho tệp nén không bị ảnh hưởng.

Ví dụ:

  • Khi một chuyến đi xe buýt cũ hơn 3 tháng, hãy xóa nó từ khâu sản xuất DB, nhưng giữ nó trong kho lưu trữ DB, nơi mà nó đã là.

Những gì chúng ta đang nhìn vào: (? Slony)

  • Một số loại Master/Slave sao chép.
  • ENABLE REPLICA Quy tắc cho các bảng cụ thể mà chúng ta sửa đổi DELETE/UPDATE với một số quy tắc thời gian (WHERE ngày < NOW() - khoảng thời gian '6 tháng)

Cám ơn hiểu biết của bạn.

+1

Tôi sẽ xem xét [Trình dữ liệu ngoài nước] (https://wiki.postgresql.org/wiki/Foreign_data_wrappers) với truy vấn chạy theo lịch biểu (công việc cron hoặc tương tự). Giữ nó đơn giản. Ít cơ hội cho những sai lầm hoặc nhầm lẫn theo cách này. – jpmc26

Trả lời

0

Đây là khu vực nhân bản logic (giống như Bucardo hoặc Slony) thực sự hữu ích, vì bạn chỉ có thể sao chép các bảng bạn muốn và duy trì các trình kích hoạt của riêng bạn xung quanh chúng. Trong trường hợp này, bạn có thể cập nhật và xóa trình kích hoạt để lưu trữ các phiên bản cũ của dữ liệu để bạn có thể xem qua.

Tất nhiên bạn cũng có thể thực hiện việc này bằng trình kích hoạt trong cơ sở dữ liệu sản xuất của mình và sau đó sử dụng trình bao bọc dữ liệu ngoài như nhận xét. Nhưng nếu bạn đang đi tuyến đường đó, bạn cũng có thể xem xét sao chép vào csv và tải để bạn có một khoảng cách không khí và một biến đổi nếu cuối cùng yêu cầu.

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