我有多个具有相同架构的数据集,并且不确定在这里如何正确设计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
因此,这两个相关的表:基因表达矩阵和细胞的簇分配将自身形成一个断开的数据集。将需要存储许多这样的2表组。