存储和查询大量数据
Posted
技术标签:
【中文标题】存储和查询大量数据【英文标题】:Storing and querying a large amount of data 【发布时间】:2017-10-04 21:45:34 【问题描述】:我在 csv 中有大约 50GB 的大量数据,我想分析 ML 的目的。然而,它适合 Python 的方式很大。理想情况下,我想使用 mysql,因为查询更容易。任何人都可以提供许多提示供我研究。这可以是任何来自:
首先如何存储它,我意识到我可能无法一次全部加载它,我会迭代吗?如果是这样,我可以为此调查什么?另外我听说过索引,这真的会加快对如此庞大的数据集的查询吗?
是否有更好的技术来处理如此大量的数据,并且仍然能够快速查询和进行特征工程。我最终输入算法的内容应该能够在 Python 中完成,但我需要查询并进行一些特征工程,然后才能获得准备好分析的数据集。
非常感谢任何建议,这一切都需要在个人计算机上完成!谢谢!!
【问题讨论】:
使用 Talend Open Studio - 它非常适合 imo 完成此类任务 什么是“机器学习”?例如,任何数据库都可以对无数行表中的列求和。但如果“分析”过于复杂,那就不可行了。 【参考方案1】:谁能提供一些建议让我研究一下
很高兴!
查看 CSV 文件的第一行,看是否有标题。您需要创建一个具有相同字段(和数据类型)的表 其中一个字段似乎每行都是唯一的,并且可以稍后用于查找该行。那是PRIMARY KEY
的候选人。否则添加一个AUTO-INCREMENT
字段为PRIMARY KEY
INDEX
es 用于稍后搜索数据。无论您觉得以后要搜索/过滤的任何字段都应该有某种INDEX
。您以后可以随时添加它们。
如果经常一起搜索,INDEX 可以组合多个字段
为了读取数据,您有两种方法:
-
使用
LOAD DATA INFILE
Load Data Infile Documentation
-
编写自己的脚本:最好的方法是为
INSERT
命令。然后逐行读取您的CSV(循环),拆分字段
进入变量和execute
带有这一行的准备好的语句
价值观
希望这能给你一些想法
【讨论】:
【参考方案2】:这取决于你有什么,你可以使用 Apache spark 然后使用他们的 SQL 功能,spark SQL 让你可以在数据集中编写 SQL 查询,但为了获得最佳性能,你需要一个分布式模式(你可以使用它在本地机器上,但结果有限)和高机器性能。你可以使用python、scala、java来编写你的代码。
【讨论】:
以上是关于存储和查询大量数据的主要内容,如果未能解决你的问题,请参考以下文章