我在谷歌上搜索了很多,但没有发现任何与我的问题相匹配的东西。
我有很多时间序列,包含不同的传感器读数。每个时间序列都存储在一个.csv文件中,因此每个文件都包含一列。
我必须填充这个mysql表:
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
表为:
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;
现在,我应该填补 reading_value
包含在上述.csv文件中的值的字段。此类文件的一个示例:
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查询,在这个查询中,我在从.csv文件读取值时填充这个表。我不知道如何继续:我应该使用某种临时表作为缓冲区吗?
我使用heidisql作为客户机。
1条答案
按热度按时间kulphzqa1#
您需要的工具称为etl(extract、transform、load)。
您可以从csv文件(以及其他文件)中提取数据,通过从sensor db表(以及其他文件)中添加信息来转换数据,并将其加载到sensor\u reading db表中。
市场上有很多etl。虽然,我应该是不可知论者,一个免费的,易于学习的,并涵盖所有您未来的需要,您可以开始评估pdi(pentaho数据集成商,昵称水壶)。去那里,下载最新的数据集成器,解压缩并按spoon.bat/spoon.sh。有一个很好的开始。以及stackoverflow标志
Pentaho Data Integration
,通常React很快。或者你可以尝试泰伦德或其他很多。