存储和查询大量数据

时间:2017-10-04 21:45:34

标签: python mysql bigdata mysql-python

我在csv中有大量50GB左右的数据,我想分析ML的目的。然而,这是适合Python的大型方法。理想情况下我想使用mySQL,因为查询更容易。任何人都可以提供一些技巧供我调查。这可以是:

  1. 如何将它存储在第一位,我意识到我可能无法一次性加载它,我会迭代地进行吗?如果是这样,我可以为此寻找什么?另外,我已经听说过索引,这真的可以加快查询这么庞大的数据集吗?

  2. 是否有更好的技术来处理这些数据,并且仍然能够快速查询和进行特征工程。我最终输入我的算法应该可以在Python中完成但我需要查询并进行一些特征工程才能获得可以分析的数据集。

  3. 我非常感谢任何建议,这一切都需要在个人电脑上完成!谢谢!

2 个答案:

答案 0 :(得分:0)

  

任何人都可以提供一系列提示供我查看

欣然!

  • 查看CSV文件第一行以查看是否有标题。您需要创建一个具有相同字段(和数据类型)的表
  • 其中一个字段可能看起来每行唯一,可以使用稍后来查找该行。这是你PRIMARY KEY的候选人。否则,将AUTO-INCREMENT字段添加为PRIMARY KEY
  • INDEX es用于稍后搜索数据。无论您认为以后要搜索/过滤哪些字段都应该有某种INDEX。您可以随时添加它们。
  • 如果经常一起搜索,则INDEXes可以合并多个字段
  • 为了读入数据,您有两种方法:
    1. 使用LOAD DATA INFILE Load Data Infile Documentation
    1. 编写自己的脚本:最好的方法是为...创建prepared statement INSERT命令。然后逐行读取CSV(在循环中),拆分字段 使用此行的变量和execute准备好的语句 值
  • 您将受益于旨在搜索数据的网页。取决于谁需要使用它。

希望这会给你一些想法

答案 1 :(得分:0)

这取决于你拥有的东西,你可以使用Apache spark然后使用他们的SQL功能,spark SQL让你可以在你的数据集中编写SQL查询,但为了获得最佳性能,你需要一个分布式模式(你可以使用它)在本地机器,但结果是有限的)和高机器性能。你可以用python,scala,java来编写你的代码。