每个回归记录的所有或多个表的一个SQL表?

时间:2014-01-20 10:11:18

标签: mysql sqlalchemy

我正在移动一个设计流程,包括运行一个回归,该回归包括在服务器场上运行的多个模拟,从使用NFS上的文件到使用MySQL DB来提高速度。 (我们有一个关联的流程,只有这个优化,所以我们知道它可以工作)。

我们可能会在一年内以1000次回归的顺序运行;每个大约100K模拟,每个模拟存储其结果/运行时间的商城记录......

在当前流程中,每个回归结果都存储在单独的(CSV)文件中。目前,数据库中的每个回归都存储在同一个回归表中,每个回归模拟的所有模拟结果都存储在一个sim_results表中。

为了尽量减少当前流程的变化,我想考虑为每个回归创建单独的sim_results表,但

  1. 我不知道如何从离子个人回归记录(以ID作为主要索引)创建单独的表格。
  2. 我不知道我是否应该这样做 - 更好地模仿当前的流量; orgo与一个sim_results表,因为它可能是“SQL方式”。
  3. 帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

SQL方式通常是您不创建多个表,每个表对应不同的行系列,除非您为了在多个节点之间分片数据而分解这些表(例如水平分片)。水平分片通常是一项复杂的任务,需要注意很多。

但总的来说,您设计架构的方式与您需要适合的用例有关。特别是如果您想同时在多个模拟中运行查询,那么将所有数据存储在一系列表中就是如何做到的。如果OTOH你真的没有任何查询计划,那么你可能首先不需要关系数据库。

我不确定您的数据格式,但是一种常用于“分析”大量数据的架构设计是star schema。维基百科页面读得很好。

如果您要创建许多表,SQLAlchemy的Table()构造是一个Python数据结构,您可以通过编程方式构建它。构建一个根据需要创建新Table()对象的函数,然后在其上调用create()。我和那些不得不努力工作以获得 off 这些特定设计的公司合作过,所以我真的考虑这个方案是否值得。正确配置的关系表可以毫无问题地存储数十亿行。