gpt4 book ai didi

mysql - 使用事务将巨大的 CSV 文件导入 MySQL

转载 作者:行者123 更新时间:2023-12-03 22:35:46 24 4
gpt4 key购买 nike

所以我们的想法是使用 Node.JS 完成这项工作,但任何其他编程语言/平台都可能有所帮助,因为程序应该很简单。

问题:

该程序必须定期从需要导入 MySQL 的 FTP 服务器下载 CSV 文件。

挑战:

  • 这些 CSV 文件有时可能包含数百万行,我们需要防止内存耗尽。
  • 如果导入失败,应该有回滚(SQL 事务?)。
  • 我们需要修改正在导入的数据。

  • 我知道一个名为“fast-csv”的 NodeJS 包,它实现了读取流以防止高内存使用。这可能是答案。问题是我没有找到任何允许我使用事务将数据作为流导入 MySQL 以及 以允许回滚的库。

    关于这种情况下使用什么的任何想法?正如我所说,它不一定是一个 NodeJS 程序。

    最佳答案

    您应该在事务中使用 LOAD DATA。如果您的库没有 native 支持,请查看您是否可以直接对数据库执行查询。

    类似的东西:

    START TRANSACTION;

    LOAD DATA INFILE '/tmp/yourfile.csv' INTO TABLE yourtable
    FIELDS TERMINATED BY ',';

    UPDATE yourtable SET col1=col2*3;

    COMMIT;

    LOAD DATA 本身已经允许基本操作作为加载的一部分。执行语句时只需检查它们是否成功,并在失败时使用 ROLLBACK 中止。

    关于mysql - 使用事务将巨大的 CSV 文件导入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60910360/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com