大量 CSV 数据到一个数据库中的新 MySQL 表中
Posted
技术标签:
【中文标题】大量 CSV 数据到一个数据库中的新 MySQL 表中【英文标题】:tons of CSV data into new MySQL Tables in one Database 【发布时间】:2017-10-23 14:43:09 【问题描述】:我遇到了一个问题,经过几个小时的研究,我只想死。
有没有办法将大量 CSV 数据导入到一个 mysql 数据库中,但使用 CSV 数据的文件名创建新表?
示例:如果我将data1.csv
导入db
,则该表应命名为data1
,其中包含来自data1.csv
的所有数据。
感谢您的建议和回答。
【问题讨论】:
dev.mysql.com/doc/workbench/en/… 这看起来好像覆盖了它...***.com/questions/9998596/…。特别是。 csvkit 似乎可以做到。 @Idgorman 在 MySQL-Workbench 中一次只能导入一个以上的 CSV 数据是不可能的 【参考方案1】:没有内置的工具/方法/命令/查询可以单独在 MySQL 中完成您想要的。
需要的是 2 个部分。
第一。当然是你的 MySQL 数据库,将在其中创建表。
第二。一些可以与您的数据库交互的第三方程序。例如。 (Java、javascript、Python,甚至 Unix shell 脚本)
以下是所需内容的 sudo 示例。
这个程序要做的事情相对简单。
这将需要几个输入: 数据库 IP、用户名、密码(这些可以是传递到程序中的参数,或者为了简化测试直接硬编码到程序中)
下一个输入将是您的文件名。数据1.csv
使用输入,程序将获取“data1”名称以及 data1.csv 文件的第一行来命名每一列。
一旦程序收集到这些信息,它就可以连接到数据库并为CREATE TABLE TableName (RowName1 VARCHAR(255), RowName2 VARCHAR(255), ect...)
运行 MySQL 语句
最后它可以执行一个 MySQL 命令将他的 *.csv 文件导入到新创建的表中。例如。
LOAD DATA LOCAL INFILE 'C:/Stuff/csvFiles/Data1.csv'
INTO TABLE `SchemaName`.`Data1`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
希望这有助于您稍微了解一下方法。
【讨论】:
以上是关于大量 CSV 数据到一个数据库中的新 MySQL 表中的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas(和 glob?)合并目录中的大量(csv)数据文本文件