我从一家零售商那里收到了超过100GB的数据和6700万条记录。我的目标是做一些市场篮子分析和CLV。此数据是来自其中一个包含70列的表的直接sql转储。我试图找到一种从这些数据中提取信息的方法,因为在小型笔记本电脑/台式机设置中管理自己变得非常耗时。我考虑了以下选项
to_date()
替换为str_to_date()
以匹配MySQL格式。 有没有更好的方法来处理这个问题?我需要做的就是通过运行一些查询从sql转储中提取数据。 Hadoop等是选项,但我没有基础设施来设置集群。我考虑使用mysql,因为我有存储空间和一些内存。
假设我进入MySQL路径,我将如何导入数据?我考虑以下其中一个
sed
并将to_date()
替换为适当的str_to_date()
内联。请注意,我需要为100GB文件执行此操作。然后使用mysql
CLI导入数据。什么会更快?谢谢你的帮助。
答案 0 :(得分:0)
在我看来,编写脚本会更快,因为你将跳过SED部分。
我认为您需要在单独的PC上设置服务器,并从笔记本电脑运行脚本。
还可以使用tail来更快地从这个大文件的底部获取一个部分,以便在你在这个100GB文件上运行它之前在该部分上测试你的脚本。
答案 1 :(得分:0)
我决定选择MySQL路径。我创建了查看数据的模式(必须增加一些列大小,因为数据中存在意外的变化),并使用MySQLdb模块编写了一个python脚本。在我的2011 MacBook Pro上以4小时40分钟完成导入,在6700万条记录中有8154个失败。这些失败主要是数据问题。客户端和服务器都在我的MBP上运行。
@kpopovbg,是的,编写脚本更快。谢谢。