2014-01-20 16 views
0

我正在移動一個設計流程,其中包括運行一個迴歸,該回歸包含在服務器場上運行的多個模擬,使用NFS上的文件使用MySQL數據庫以獲得更高的速度。 (我們有一個相關的流程,只有這個優化,所以我們知道它可以工作)。每個迴歸記錄的所有或多個表的一個SQL表?

我們可能會在一年內運行1000迴歸的順序;每個模擬約100K,每個模擬存儲商場結果/運行時間記錄...

在當前流程中,每個迴歸結果存儲在單獨的(CSV)文件中。目前DB中的每個迴歸存儲在相同的迴歸表中,並且來自每個迴歸的模擬的所有模擬結果都存儲在一個sim_results表中。

爲儘量減少電流的變化,我想考慮爲每個迴歸獨立sim_results表,但

  1. 我不知道如何從iondividual迴歸記錄創建一個單獨的表(其中有ID作爲其主要索引)。
  2. 我不知道我是否應該這樣做 - 以更好地模仿目前的流程; orgo與一個sim_results表,因爲它可能是「SQL方式」。

幫助感謝!

回答

1

SQL方式通常是您不會創建多個表,每個表對應不同的一系列行,除非您爲了在多個節點之間分割數據而將這些表分開例如水平分片)。水平分片通常是一項複雜的任務,有很多注意事項。

但總體而言,您設計模式的方式與您需要適合的用例有關。特別是如果您想要一次運行多個模擬查詢,將所有數據存儲在單個系列表格中就是您的工作方式。如果OTOH你沒有任何查詢計劃,那麼你可能首先不需要關係數據庫。

我不確定數據的格式,但是對於需要「分析」的大量數據常見的一種模式設計是star schema。維基百科頁面是一個很好的閱讀。

如果您要創建許多表,SQLAlchemy的Table()構造是一種Python數據結構,您可以通過編程來構建它。建立一個功能,根據需要創建新的Table()對象,然後在其上調用create()。我曾與那些必須努力工作的公司合作,讓關閉這個特殊設計的,儘管如此,我真的會考慮這個方案是否值得。正確配置的關係表可以存儲數十億行而不會出現問題。

+0

謝謝,單表解決方案也是別人所建議的。 – Paddy3118

相關問題