Sql 清理/操作大数据的解决方案(目前使用Stata)
我目前使用的是一个非常大的数据集(10个变量,超过3亿行)的10%样本,当以.dta格式存储整个数据集时,数据量超过200 GB。对于10%的样本,在具有约50G RAM和多核的UNIX服务器上使用Stata MP时,Stata能够在合理的时间内处理egen、折叠、合并等操作 但是,现在我想继续分析整个样本。即使我使用的机器有足够的RAM来保存数据集,简单地生成一个变量也需要很多时间。(我认为可能是后台操作导致Stata运行到虚拟内存中) 这个问题也很容易并行化,即数据集中的行彼此独立,因此我可以很容易地将一个大数据集与100个小数据集联系起来 是否有人对如何处理/分析这些数据有任何建议,或者可以就我目前的一些建议向我提供反馈?我主要使用Stata/SAS/MATLAB,因此可能还有其他一些我根本不知道的方法 以下是我目前的一些想法:Sql 清理/操作大数据的解决方案(目前使用Stata),sql,r,bigdata,stata,data-processing,Sql,R,Bigdata,Stata,Data Processing,我目前使用的是一个非常大的数据集(10个变量,超过3亿行)的10%样本,当以.dta格式存储整个数据集时,数据量超过200 GB。对于10%的样本,在具有约50G RAM和多核的UNIX服务器上使用Stata MP时,Stata能够在合理的时间内处理egen、折叠、合并等操作 但是,现在我想继续分析整个样本。即使我使用的机器有足够的RAM来保存数据集,简单地生成一个变量也需要很多时间。(我认为可能是后台操作导致Stata运行到虚拟内存中) 这个问题也很容易并行化,即数据集中的行彼此独立,因此我可
由于您熟悉Stata,因此有一个关于Stata中的大型数据集的文档化常见问题解答:您可能会发现这很有帮助 我会通过列进行清理,将这些列拆分,运行任何特定的清理例程,然后
merge
稍后返回
根据您的计算机资源,您应该能够使用
tempfile
在多个临时文件中保存各个列。注意只选择与您的分析最相关的变量或列,可以大大减少集合的大小。感谢那些评论和回复的人。我意识到我的问题与此类似。我已经用Stata将一些数据操作代码重新写入SQL,响应时间要快得多。我相信,通过正确利用索引并在必要时通过分区/碎片进行并行处理,我可以获得巨大的优化收益。完成所有数据操作后,我可以通过Stata中的ODBC导入该数据 JSS从R的角度及时涵盖了这些问题。可能会有一些帮助,但是他们在示例中使用的数据大小是12GB。您提到的链接不应该指向吗?谢谢@D3L。这里的问题是,我正在运行一些需要列之间交互的数据操作代码。将行拆分是一种可能的解决方案,但对于我正在执行的任务来说,这相当麻烦。