แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บข้อมูลการจำลองแบบลำดับชั้น
TL, DR แนวปฏิบัติที่ดีที่สุดที่ได้รับการยอมรับในวงการคำนวณทางวิทยาศาสตร์คืออะไรสำหรับการจัดเก็บข้อมูลที่มีโครงสร้างเป็นลำดับชั้นจำนวนมาก ตัวอย่างเช่น SQL ไม่สามารถเล่นได้ดีกับเมทริกซ์กระจัดกระจายขนาดใหญ่ มีเครื่องมือที่ดีสำหรับการจัดโครงสร้างคลังสินค้าและการวิเคราะห์ข้อมูลประเภทนี้หรือไม่? พวก LHC ใช้อะไร? ใช้รายละเอียดเคส ฉันต้องการจัดเก็บข้อมูลจากการจำลองโปรตีนตามลำดับชั้นดังต่อไปนี้: protein |__simulation conditions |____|__residues |____|____|__conformers |____|____|____|__atoms โปรตีนทุกชนิดควรตระหนักถึงสิ่งตกค้างแต่ละอะตอมทุกอะตอมควรรู้เงื่อนไขที่ใช้ในการจำลองสถานการณ์ ฯลฯ และในทางกลับกัน แต่เดิมฉันคิดว่าฐานข้อมูลเชิงสัมพันธ์จะสมบูรณ์แบบสำหรับแอปพลิเคชันนี้และดังนั้นฉันจึงเขียนโปรแกรมโดยใช้ python และ sqlalchemey ที่เก็บข้อมูลในฐานข้อมูล SQL อย่างไรก็ตามในทางปฏิบัติโปรแกรมนี้ทำงานได้ไม่ดีนัก ปัญหาที่ใหญ่ที่สุดเกี่ยวข้องกับความจริงที่ว่ามีเมทริกซ์ N x N ที่ระดับข้อมูลผู้ตรวจสอบที่เก็บพลังงานที่มีศักยภาพเนื่องจากการมีปฏิสัมพันธ์ระหว่างคู่ที่เป็นไปได้ทุกคู่ที่เป็นไปได้ รายการส่วนใหญ่ในเมทริกซ์เป็นศูนย์ดังนั้นฉันจึงจัดเก็บเมทริกซ์ในตารางแยกต่างหากในฐานข้อมูลในรูปแบบที่กระจัดกระจายหนึ่งแถวต่อรายการ น่าเสียดายที่การจำลองที่เกี่ยวข้องกับผู้ใช้หลายพันคนโต๊ะคู่ยังคงจบลงด้วยแถวหลายแสนแถวและ: a) การสร้างและการสืบค้นช้ามาก (ชั่วโมง) b) ใช้ลำดับความสำคัญของพื้นที่บนฮาร์ดไดรฟ์ของฉันมากกว่าการแสดงข้อความธรรมดาที่เทียบเท่ากันของข้อมูลในฐานะที่เป็นเมทริกซ์ที่ไม่หรี่ c) ใช้หน่วยความจำมากกว่าสิบกิกะไบต์ ตารางถูกอ่านในหน่วยความจำ เป้าหมายสูงสุดของฉันคือการจัดเก็บการวิ่งนับหมื่นนับพัน (มาจากโปรตีนหลายพันภายใต้เงื่อนไขการจำลองหลายโหล) ในฐานข้อมูลเพื่อให้พวกเขาสามารถวิเคราะห์ร่วมกัน นี่หมายความว่าตารางที่แสดงถึงเมทริกซ์การจับคู่ที่น่าจะเติบโตประมาณหนึ่งพันล้านแถว ขณะนี้ดูเหมือนว่าฉันจะต้อง Cray หรือสัตว์ประหลาดหน่วยความจำที่ใช้ร่วมกันอื่น …