MySQL使用regex分隔符导入CSV文件
我有一个大的文本文件(我称之为CSV文件,尽管从技术上讲它不是),其中每一行看起来如下: col1值a col2值b col3值c…MySQL使用regex分隔符导入CSV文件,mysql,sql,database,csv,import,Mysql,Sql,Database,Csv,Import,我有一个大的文本文件(我称之为CSV文件,尽管从技术上讲它不是),其中每一行看起来如下: col1值a col2值b col3值c… col1 valueX col2 valueY col3 valueZ 不是在文件顶部有一行声明每列的标题,而是每行中每列的名称都在该列的值之前 我正在尝试将此文件中的值(valueA、valueB、valueC等)导入MySQL数据库。我知道我可以使用以下方法导入更简单的CSV样式文件的内容: LOAD DATA LOCAL INFILE 'test.csv'
col1 valueX col2 valueY col3 valueZ 不是在文件顶部有一行声明每列的标题,而是每行中每列的名称都在该列的值之前 我正在尝试将此文件中的值(valueA、valueB、valueC等)导入MySQL数据库。我知道我可以使用以下方法导入更简单的CSV样式文件的内容:
LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE test
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
但是,对于我试图导入的文件的结构来说,这实际上不起作用
由于我的数据文件中的每一列的名称都可以有一个可变的长度,我理想地希望为以选项结尾的字段指定一个正则表达式(类似于[a-z]{3,}),但这不起作用
那么,如何将这些数据解析到数据库表中呢?多大是“大”?通常有两种方法:将其加载到模拟源文件结构的暂存表中,或预处理源文件以匹配目标表。详细信息(平台、硬件、文件大小)将指导解决方案。该文件包含大约1000000行。我在iMac上使用的是OS X,它有3.1GHz的Core 2 Duo和8GB的ram,尽管我有一台Linux(Ubuntu)服务器,可以使用许多内核(我想是12个)和24GB的ram。不过,我更愿意将数据加载到Mac上的数据库中。