【发布时间】:2015-05-06 03:55:55
【问题描述】:
我有一个包含以下列的 matlab 表。让我们称之为“参考表”: [Security(char),RegionId(int 1,2,3)] 这张桌子大约有 49,000 高
我有其他表包含 Security(char) 和一个随机数据点作为列。让我们将这些表称为“数据表”。 这些数据表的总大小为 45Gigs。这些表中的每一个都超过 1 亿行。 我需要使用参考表来映射 regionId 并执行以下操作:
[Security(char),RandomDataPoint(float)] > [Security(char),RegionId(int 1,2,3),RandomDataPoint(float)]
对于这个操作,我通常会使用表连接。但是,由于这些表的大小,我在此实现中遇到了真正的问题。我的主要问题是内存不足。
一种选择是将表格分解为多个部分并进行连接。但是,考虑到 45Gigs 的聚合数据,我怀疑这在时间方面会非常昂贵。
有没有人对我应该如何解决这个问题有任何建议。如果重要,我需要将区域列添加到我的数据表中,这样我就可以将数据写入文本文件并将它们批量加载到 sql 中。
提前致谢
【问题讨论】:
-
您确定要/需要使用 MATLAB 来完成此类任务吗?使用专用的数据库服务器怎么样,或者使用 MATLAB 中的 JDBC 进行接口?
-
问题是我得到了 .mat 文件。我能想到的另一件事是创建一个带有参考数据的临时 sql 表和一个用于数据表的临时 sql 表 -> 加入 sql -> 然后将它们插入我想要的表中。但是,我想找到一些更美观的东西。
-
您可能对 mapreduce 感兴趣:mathworks.com/help/matlab/examples/…。我从未使用过它,但似乎适合您的任务
-
如果您能够与编写文件的人取得联系,他可能会成为这里的资产。至少有人设法生成了巨大的 .mat 文件,所以我猜同样有人知道如何读取数据。
-
谢谢,我以前没听说过。我去看看
标签: matlab join mapping matlab-table