mysql - 大数据从Oracle迁移到MySQL

标签 mysql sql bigdata database-migration

我从其中一家零售商那里收到了超过 100GB 的数据,其中包含 6700 万条记录。我的目标是进行一些市场篮分析和 CLV。该数据是来自具有 70 列的表之一的直接 SQL 转储。我正在尝试找到一种方法从这些数据中提取信息,因为在小型笔记本电脑/台式机设置中进行 self 管理变得非常耗时。我考虑了以下选项

  • 解析数据并将其转换为 CSV 格式。文件大小可能会降至 35-40GB 左右,因为每条记录中超过一半的信息是列名称。但是,我可能仍然需要使用数据库,因为我无法使用 R 或 Excel 来处理 6600 万条记录。
  • 将数据迁移到mysql数据库。不幸的是,我没有该表的架构,我正在尝试重新创建查看数据的架构。我可能必须将数据转储中的 to_date() 替换为 str_to_date() 以与 MySQL 格式匹配。

有没有更好的方法来处理这个问题?我需要做的就是通过运行一些查询从 sql 转储中提取数据。 Hadoop 等是选项,但我没有设置集群的基础设施。我正在考虑mysql,因为我有存储空间和一些空闲内存。

假设我进入MySQL路径,我将如何导入数据?我正在考虑以下其中一项

  • 使用 sed 并用适当的内联 str_to_date() 替换 to_date()。请注意,我需要对 100GB 文件执行此操作。然后使用 mysql CLI 导入数据。
  • 编写 python/perl 脚本来读取文件、转换数据并直接写入 mysql。

什么会更快?感谢您的帮助。

最佳答案

我认为编写脚本会更快,因为您将跳过 SED 部分。

我认为您需要在单独的 PC 上设置服务器,并从笔记本电脑运行脚本。

还可以使用 tail 更快地从这个大文件的底部获取一部分,以便在这个 100GB 文件上运行脚本之前测试该部分的脚本。

关于mysql - 大数据从Oracle迁移到MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890248/

相关文章:

mysql - rake 数据库 :migrate error

php - Ajax成功if语句并回显mySQL查询结果

mysql - if结果下如何设置where条件

mysql - 按任一列分组

mysql - 从三个多表列创建单列 View

qt - 渲染海量数据

mysql - 如何只编辑列中的某些字符串?

sql - INDEX 创建的 UNIQUE 参数 - 有什么用?

database - 管理大数据中的数据

blockchain - BigChainDB - 那到底是什么?