【问题标题】:Import data from multiple csv data into one master table将多个csv数据中的数据导入到一张主表中
【发布时间】:2019-09-16 10:48:33
【问题描述】:

我有一个 MySQL 数据库,我想从多个 csv 文件中导入数据。对于数据,我提供了一个表,我想在该表上将多个文件合并为一个(连接)。不幸的是,我遇到的问题是我的数据太大,因此在我将所有内容都存储在表中之前非常耗时。因此问题是:处理大量数据的最佳方法是什么?

我冒昧地为每个 csv 文件创建了一个临时表并将数据加载到其中。然后我加入了所有表,并想将我的查询结果插入到大表中,我已经遇到了等待时间长的问题。我想将解决方案限制为以下语言:MySQL、PHP。到目前为止,我使用 datagrip 的 GUI 和 sql-console 来导入这些文件。

【问题讨论】:

    标签: php sql csv import


    【解决方案1】:

    使用任何数据集成工具,如 Pentaho,然后按照以下步骤操作:

    1. Pentaho 有 CSV 导入对象
    2. 您可以使用连接对象连接多个 CSV 文件
    3. 从合并输出中选择所有列
    4. 然后使用 DB 连接器输出对象将其推送到 MySQL

    【讨论】:

      【解决方案2】:

      有一个非常简洁的库可以做到这一点。帮助您将数据从一个来源迁移到另一个来源。而且它做得很快。

      https://github.com/DivineOmega/uxdm

      【讨论】:

        【解决方案3】:

        您可以使用 shell 脚本来遍历文件(假设它们在当前目录中)

        #!/bin/bash
        
        for f in *.csv
        
        do
        
        mysql -e "load data infile '"$f"' into table my_table" -u username --password=your_password my_database
        
        done
        

        【讨论】:

          【解决方案4】:

          您可以使用 pentaho 数据集成(ETL 工具)轻松实现这一目标。 它为我们提供了 csv 数据输入,您可以在其中提及您的 csv 文件。然后链接到 table output 步骤,您可以在其中使用 mysql 数据库的 jdbc 或 jndi 连接

          【讨论】:

            猜你喜欢
            • 2020-12-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-15
            • 1970-01-01
            • 1970-01-01
            • 2019-01-28
            • 1970-01-01
            相关资源
            最近更新 更多