存储和查询大量数据

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 INDEXes 用于稍后搜索数据。无论您觉得以后要搜索/过滤的任何字段都应该有某种INDEX。您以后可以随时添加它们。 如果经常一起搜索,INDEX 可以组合多个字段 为了读取数据,您有两种方法:
    使用LOAD DATA INFILE Load Data Infile Documentation
    编写自己的脚本:最好的方法是为 INSERT 命令。然后逐行读取您的CSV(循环),拆分字段 进入变量和execute 带有这一行的准备好的语句 价值观
您将从旨在搜索数据的网页中受益。取决于谁需要使用它。

希望这能给你一些想法

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于存储和查询大量数据的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中存储大量传感器数据,优化查询性能

提供大量数据的查询的最佳 MySQL 设置?

利用存储过程生成大量的数据(oracle,mysql)

mysql如何批量查询大量数据

行存储和列存储

Bigquery:数据集中的大量表会影响性能吗?