自动处理 .csv 的最佳方法 --> MySQL

自动处理 .csv 的最佳方法 --> MySQL

如果有必要,请将其移到适当的位置。不确定在哪里可以得到最好的回应。

我需要创建一个报告应用程序,如果可能的话,我想用 Ubuntu 来做。原始数据来自一个基于设备的应用程序,它可以定期将分隔日志文件通过 FTP 传输到指定位置。我想开发一种机制来使用该数据更新 MySQL 数据库(即将创建),该数据库将用于构建计划报告,最终通过电子邮件发送给各个分发组(以 PDF 或 Excel 格式)。我们有内部智能来创建各种 MySQL 查询(并设计数据库),但不知道如何确定最佳方法的 Linux/Ubuntu。我们正在使用 Crystal Reports 在 Windows 端为另一个应用程序做类似的事情,但考虑到分发此应用程序的需要,我们不希望处理 Windows 许可成本等问题...

我需要有关适当的工具/方法的建议,也需要建议在哪里可以找到能够有效地完成这项工作而又不需要花费太多成本的合格资源。

答案1

您可以使用以下语法解析命令行中的命令:

mysql -u {user} -p{password} {database} <{text.file}

这将解析从 {text.file} 到 {database} 的所有行。文本文件需要包含有效的 MySQL 指令,并且密码以纯文本显示,ps因此您可能需要将其保留my.cnf(安全第一)。

2 种方法...

  • 您可以使用 MySQL 命令加载数据(更多选项请参见链接):

    加载数据 [低优先级 | 并发] [本地] 将 {text2.file} 导入到表 {table} 中

    在 text.file 中将文本文件插入表中。这可能会覆盖现有行,因此您每次都需要创建新文件。LOAD DATA 非常快。更短的方法(Caesium 评论中的一行):

    mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
    
  • 您可以将大量INSERT INTO's 放入 text.file 中。这比 LOAD DATA 慢,但可能更容易实现。

相关内容