Tôi đang phát triển một gói phần mềm mô phỏng Monte Carlo liên quan đến nhiều vật lý và mô phỏng. Tôi cần phân tích trực tuyến, theo dõi sự phụ thuộc của dữ liệu có nguồn gốc trên dữ liệu thô và thực hiện các truy vấn như "cung cấp cho tôi dạng sóng cho nhiệt độ> 400 và vị trí gần (x0, y0)". Vì vậy, mô hình dữ liệu trong bộ nhớ khá phức tạp.Độ bền dữ liệu của dữ liệu mô phỏng khoa học, Mongodb + HDF5?
Ứng dụng được viết bằng Python, với mỗi kết quả mô phỏng được mô phỏng như một đối tượng Python. Trong mỗi giờ nó tạo ra ~ 100 kết quả (đối tượng). Hầu hết các đối tượng có dữ liệu nặng (vài MB của mảng số nhị phân), cũng như một số dữ liệu ánh sáng (nhiệt độ, vị trí, vv). Tổng tỷ lệ tạo dữ liệu là vài GB mỗi giờ.
Tôi cần một số giải pháp bảo mật dữ liệu và API truy vấn dễ sử dụng. Tôi đã quyết định lưu trữ dữ liệu nặng (mảng số) trong bộ nhớ HDF5. Tôi đang xem xét việc sử dụng MongoDB như đối với sự kiên trì đối tượng (chỉ dữ liệu ánh sáng) và để lập chỉ mục dữ liệu nặng trong HDF5. Tính bền vững đối tượng với MongoDB rất đơn giản và giao diện truy vấn trông đủ mạnh mẽ.
Tôi biết tùy chọn sqlalchemy + sqlite. Tuy nhiên, việc truyền tải dữ liệu nặng tới HDF5 dường như không được hỗ trợ một cách tự nhiên trong SqlAlchemy, và một lược đồ cố định là cồng kềnh.
Tôi biết bài đăng này ( Searching a HDF5 dataset), nhưng "bảng chỉ mục" chính nó cần một số chỉ mục trong bộ nhớ để truy vấn nhanh.
Tôi tự hỏi liệu có bất kỳ giải pháp thay thế nào mà tôi nên xem xét trước khi tôi tham gia không? Hoặc là có bất kỳ vấn đề tôi đã bỏ qua trong kế hoạch của tôi?
TIA.
Cảm ơn rất nhiều cho con trỏ. Tôi lướt qua tài liệu Vistrails. Ấn tượng mà tôi có là VisTrail hoàn hảo cho việc xử lý sau và tạo đồ thị. Tôi đoán đơn đăng ký của tôi cụ thể hơn cho một vấn đề và cần –
để ẩn nhiều chi tiết phân tích từ người dùng. Tôi đang đọc mã nguồn của nó và xem cách dữ liệu được lưu trữ trong VisTrail, hy vọng tôi có thể học được điều gì đó từ họ. VisTrail là một phần mềm ấn tượng, tôi ước tôi có nó như một sinh viên tốt nghiệp. Cảm ơn bạn. –