【问题标题】:Converting LARGE csv file to sql and then split it?将LARGE csv文件转换为sql然后拆分它?
【发布时间】:2014-08-31 07:07:28
【问题描述】:

我有一个大的(4 列,大约 900,000 行)csv 文件,我需要将其转换为 sql,然后显然将其拆分为更易于管理的大小,以便我可以导入它。

有人知道有什么程序可以做到这一点吗?显然我可以手动完成,但是有 900,000 行代码需要一段时间,我宁愿自动化。

为清楚起见进行编辑:我在我的 Windows PC 上拥有 .csv 格式的所有数据。我想拆分然后在本地转换,然后通过 phpmyadmin 上传到其他地方托管的在线服务器。谢谢

干杯

【问题讨论】:

  • 哪个操作系统?哪个数据库?您的数据是什么样的?
  • 四列是填一张表,还是需要分多张表?
  • 我的 Windows PC 上有 .csv 格式的所有数据。我想拆分然后在本地转换,然后通过 phpmyadmin 上传到其他地方托管的在线服务器。谢谢
  • 您使用的是哪个 DBMS?一些 DBMS 能够直接访问 csv 文件,就好像它们是表(“外部表”)
  • 它将被导入 MySQL,但目前我的 PC 上只有本地的 .csv。我可以直接导入为 .csv,但我更喜欢使用 .sql 文件……我发现这样我的麻烦少了。谢谢

标签: mysql sql csv split


【解决方案1】:

我认为你是在倒退,因为 csv 是一种微不足道的格式,你肯定应该将它拆分为那种格式,然后再担心 SQL,而不是反过来。

要将其拆分为多个 csv 文件,只要您可以访问流式 API(以避免一次读取所有 900 000 行),几乎可以轻松使用任何语言,您是否精通任何语言?

(C# / C++ / PowerShell / 其他?)

您在什么操作系统下运行?您的目标是什么 SQL DBMS?例如,如果您使用带有 SQL 服务器的 Windows 和带有 MySQL 的 ubuntu,则解决方案可能会有很大差异(取决于您的 DBMS,可能会内置解决方案来执行此操作)。

【讨论】:

  • 谢谢。我将把它导入 MySQL。我对任何编程语言都不太精通。我的大部分非常有限技能都在 webdev 中。谢谢。
  • 正如另一条评论所建议的,您应该使用内置功能从 phpmyadmin 导入 csv 导入,或者让我们知道为什么这是不可能的。
  • 对不起,这不是答案
【解决方案2】:

这就是我最终做的:

我下载了一个 .csv 拆分器并将我的文件拆分为 9 个文件,每个文件 100,000 行。这可能仍然有点大,但它确实有效。

拆分后,我将它们全部转换为 .sql 并将它们导入数据库。

显然,由于文件太大,转换和导入需要很长时间,但它确实有效。

我尝试直接从 .csv 导入,但服务器不接受。不完全确定为什么,但是嘿 - 我现在将数据放入我的数据库中,这就是我真正想要的。

【讨论】:

  • 通常你会创建一个临时表,所有列都为 varchar(max)
猜你喜欢
  • 1970-01-01
  • 2019-08-05
  • 2018-05-18
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多