【发布时间】:2014-04-06 05:13:12
【问题描述】:
我从一家零售商那里收到了超过 100GB 的数据,其中包含 6700 万条记录。我的目标是做一些市场篮子分析和 CLV。此数据是来自具有 70 列的表之一的直接 sql 转储。我正在尝试找到一种从这些数据中提取信息的方法,因为在小型笔记本电脑/台式机设置中进行自我管理变得非常耗时。我考虑了以下选项
- 解析数据并将其转换为 CSV 格式。文件大小可能会降至 35-40GB 左右,因为每条记录中超过一半的信息是列名。但是,我可能仍然需要使用数据库,因为我无法使用具有 6600 万条记录的 R 或 Excel。
- 将数据迁移到 mysql 数据库。不幸的是,我没有表的架构,我正在尝试重新创建查看数据的架构。我可能必须将数据转储中的
to_date()替换为str_to_date()以匹配MySQL 格式。
有没有更好的方法来处理这个问题?我需要做的就是通过运行一些查询从 sql 转储中提取数据。 Hadoop 等是选项,但我没有设置集群的基础设施。我正在考虑使用 mysql,因为我有存储空间和一些可用内存。
假设我进入 MySQL 路径,我将如何导入数据?我正在考虑以下其中一项
- 使用
sed并将to_date()替换为适当的str_to_date()内联。请注意,我需要为 100GB 的文件执行此操作。然后使用mysqlCLI 导入数据。 - 编写 python/perl 脚本来读取文件、转换数据并直接写入 mysql。
什么会更快?感谢您的帮助。
【问题讨论】:
标签: mysql sql bigdata database-migration