TL, DR
Thực tiễn tốt nhất được chấp nhận trong giới tính toán khoa học để lưu trữ số lượng lớn dữ liệu có cấu trúc phân cấp là gì? Ví dụ, SQL không chơi độc đáo với ma trận thưa thớt lớn. Có một công cụ tốt ngoài kia để cấu trúc, lưu kho và phân tích loại dữ liệu này không? Những kẻ ở LHC sử dụng cái gì?
Chi tiết ca sử dụng
Tôi muốn lưu trữ dữ liệu từ mô phỏng protein theo phân cấp sau:
protein
|__simulation conditions
|____|__residues
|____|____|__conformers
|____|____|____|__atoms
Mỗi protein nên nhận thức được từng dư lượng của nó, mọi nguyên tử nên biết các điều kiện được sử dụng cho mô phỏng của nó, v.v. và ngược lại.
Ban đầu tôi đoán rằng một cơ sở dữ liệu quan hệ sẽ hoàn hảo cho ứng dụng này, và vì vậy tôi đã viết một chương trình sử dụng python và sqlalchemey lưu trữ dữ liệu trong cơ sở dữ liệu SQL. Trong thực tế, tuy nhiên, chương trình này không hoạt động tốt.
Vấn đề lớn nhất liên quan đến thực tế là có một ma trận N x N ở mức dữ liệu tuân thủ lưu trữ năng lượng tiềm tàng do sự tương tác theo cặp giữa mỗi cặp tuân thủ có thể. Hầu hết các mục trong ma trận là số không, vì vậy tôi đang lưu trữ ma trận trong một bảng riêng biệt trong cơ sở dữ liệu theo một định dạng thưa thớt, mỗi hàng một mục. Thật không may, đối với một mô phỏng liên quan đến vài nghìn tuân thủ, bảng cặp vẫn kết thúc với vài trăm nghìn hàng và:
a) xây dựng và truy vấn rất chậm (giờ)
b) chiếm một không gian lớn hơn trên ổ cứng của tôi so với biểu diễn văn bản đơn giản tương đương của dữ liệu dưới dạng ma trận không thưa thớt
c) chiếm hơn mười gigabyte bộ nhớ khi bảng được đọc vào bộ nhớ
Mục tiêu cuối cùng của tôi là lưu trữ hàng chục nghìn lượt chạy (xuất phát từ hàng ngàn protein trong vài chục điều kiện mô phỏng) trong cơ sở dữ liệu để tất cả chúng có thể được phân tích cùng nhau. Điều này có nghĩa là bảng biểu thị các ma trận cặp có thể sẽ tăng lên khoảng một tỷ hàng. Hiện tại có vẻ như tôi sẽ cần một Cray hoặc một số quái vật có bộ nhớ chia sẻ khác để thậm chí chạy một truy vấn duy nhất trên cơ sở dữ liệu này.
Tôi có lựa chọn nào tốt hơn ở đây không? Những kẻ ở LHC sử dụng cái gì?