将 csv 文件导入 MySQL table 的单列

Importing csv file into single column of a MySQL table

我用谷歌搜索了很多次,但没有找到与我的问题相符的内容。

我有很多时间序列,包含不同的传感器读数。每个时间序列都存储在一个 .csv 文件中,因此每个文件都包含一个列。

我必须填充这个 MySQL table:

CREATE TABLE scheme.sensor_readings (
    id int unsigned not null auto_increment,
    sensor_id int unsigned not null,
    date_created datetime,
    reading_value double,
    PRIMARY KEY(id),
    FOREIGN KEY (sensor_id) REFERENCES scheme.sensors (id) ON DELETE CASCADE
) ENGINE = InnoDB;

sensors table 是:

CREATE TABLE scheme.sensors ( 
    id int unsigned not null auto_increment,
    sensor_title varchar(255) not null,
    description varchar(255) not null,
    date_created datetime,
    PRIMARY KEY(id)
) ENGINE = InnoDB;

现在,我应该使用上述 .csv 文件中包含的值填充 reading_value 字段。此类文件的示例:

START INFO  
Recording Time  *timestamp*
Oil Pressure    dt: 1,000000 sec
STOP INFO   
0,445328    
0,429459    
0,4245  
0,445099    
0,432434    
0,433426    
...
EOF

我需要设计一个 SQL 查询,在其中填充此 table,同时从 .csv 文件读取值。 我不知道如何继续:我应该使用某种临时 table 作为缓冲区吗?

我使用 HeidiSQL 作为客户。

您要找的那种工具称为 ETL(提取、转换、加载)。

您可以从 csv 文件(以及其他)中提取数据,通过添加来自传感器 db-table(以及其他)的信息从中进行转换,并将其加载到 sensor_reading db- table。

市场上有大量的 ETL。虽然,我应该是不可知论者,一个免费的、易学的并且涵盖你未来所有需求的,你可能会开始评估 PDI(Pentaho Data Integrator,绰号 Kettle)。去there, download the latest Data Integrator, unzip and press the spoon.bat / spoon.sh. A nice getting started is there。并且 Whosebug 标志 Pentaho Data Integration,响应通常很快。

或者您可以尝试 Talend or plenty others