我正在移动一个由运行在服务器场上的多个模拟组成的回归组成的设计流程,从使用NFS上的文件到使用MySQL DB以获得额外的速度。(我们有一个相关的流程,它就是这样的优化,所以我们知道它可以工作)。
我们可能会在一年内运行1000次回归;每次模拟大约100 K,每次模拟都存储其结果/运行时/.
在当前流中,每个回归结果都存储在单独的(CSV)文件中。目前,DB中的每个回归都存储在相同的回归表中,来自每个回归的所有仿真结果都存储在一个sim_results表中。
为了最小化当前流中的更改,我想考虑为每个回归创建单独的sim_results表,但是
帮助感激!
发布于 2014-01-25 02:55:44
SQL方法通常是不创建多个表,每个表对应于不同的行系列,除非为了在多个节点之间分片数据(例如,水平切分)而划分这些表。水平切分通常是一项复杂的任务,需要大量的注意事项。
但是总的来说,设计模式的方式与您需要适应的用例有关。特别是如果您想一次运行多个模拟的查询,那么将所有数据存储在一个表中就是这样做的。如果OTOH您实际上没有任何查询计划,那么您可能一开始就不需要一个关系DB。
我不确定您的数据的格式,但是对于大量的数据进行“分析”,常见的一个模式设计是星型模式。维基百科的网页读得很好。
如果要创建许多表,SQLAlchemy的Table()构造是一个Python结构,您可以通过编程方式构建它。构建一个函数,根据需要创建新的Table()对象,然后对它们调用create()。我曾与一些公司合作过,这些公司必须努力才能摆脱这个特殊的设计,所以我会认真考虑这个计划是否值得。正确配置的关系表可以存储数十亿行,而不存在问题。
https://stackoverflow.com/questions/21231171
复制相似问题