我有多个具有相同模式的数据集,我不确定应该如何设计
SQL
对了。问题很简单,但我没有
SQL
. 假设有40个表将矩阵数据存储为
row_num, col_num, val
. 每个这样的表都有自己的名称。因为表有数亿行,所以从性能的角度来看,将它们全部放在一个表中似乎是错误的。所以,我想创造
40
表,但我不确定在这种情况下最佳模式应该是什么样子。每一个这样的表,依次代表一个矩阵,将具有具有不同模式的相关表:
table_of_type_MATRIX_1 --> table_of_type_BIRDS (relevant for table_of_type_MATRIX_1 only!)
table_of_type_MATRIX_2 --> table_of_type_BIRDS (relevant for table_of_type_MATRIX_2 only!)
所以,基本上,有一堆断开连接的数据,我想存储在一个数据库,我不知道如何组织它。当然,会有查询,这将需要查看具有相同模式的多个表。如有任何建议,将不胜感激。
例子
矩阵看起来是这样的:
gene cell_id expr
0 0610005C13Rik GCTAAGTATTTN_CTL-6_OPC 0.000000
1 0610007N19Rik GCTAAGTATTTN_CTL-6_OPC 0.000000
2 0610007P14Rik GCTAAGTATTTN_CTL-6_OPC 3.593143
3 0610009B22Rik GCTAAGTATTTN_CTL-6_OPC 3.593143
4 0610009D07Rik GCTAAGTATTTN_CTL-6_OPC 10.779429
...
other dozen millions of rows
这是基因表达的矩阵:在第一列中,我们有在第二列所示细胞中表达的基因,在第三列中显示表达水平。在降维和聚类算法运行之后,单元(第二列)也被分组到集群中,因此,我们有与第一列相关的第二个表:
cell_id cluster
GCTAAGTATTTN_CTL-6_OPC 1
GCTGGGTATTTN_CTL-6_OPC 2
GCTAAGTATAAN_CTL-6_OPC 2
GCTAAGTATTTN_CTL-6_OPC 3
...
and so on for all of the cells
因此,这两个相关的表:基因表达矩阵和细胞簇的分配本身将形成一个断开连接的数据集。将有许多这样的两个表组需要存储。