S3 到 MySQL AWS Data Pipeline Insert table 错误

S3 to MySQL AWS Data Pipeline Insert table error

第一次在这里提问,请多多包涵

我正在尝试创建数据管道以使用 aws 提供的模板将 S3-Bucket 中的 CSV 文件上传到 MySQL 数据库 table(Production1),但在执行时失败RdsMySqlTableCreateActivity。

我在 myRDSTableInsertSql 参数中使用的 sql 语句(所有列名与 CSV 文件匹配):

INSERT INTO `Production1` (`API`, `Normalized Month`, `DATE`, `Monthly Liquid`, `Cum Oil`, `BOPD`, `Monthly Gas Mcf/Month`, `Cum Gas`, `MCFPD`) VALUES(?,?,?,?,?,?,?,?,?);

RdsMySqlTableCreateActivity 错误:

errorId
ActivityFailed:SQLException
errorMessage
No value specified for parameter 1
errorStackTrace
amazonaws.datapipeline.taskrunner.TaskExecutionException: 
private.com.amazonaws.services.datapipeline.redshift.QueryStatementException: Exception No value specified for 
parameter 1 while executing INSERT INTO `Production1` (`API`, `Normalized Month`, `DATE`, `Monthly Liquid`, `Cum Oil`, `BOPD`, `Monthly Gas Mcf/Month`, `Cum Gas`, `MCFPD`) VALUES(?,?,?,?,?,?,?,?,?);... 

我 运行 MySQL workbench 上的插入命令,将 (?,?,?,?,?,?,?,?,?) 替换为 (1,2,3,4,5,6,7,8,9),它起作用了。我使用的 CSV 文件只有 2 行,每列的列名和值分别为 1-9。真的不确定 No value specified for parameter 1 是什么意思,任何 help/guidance 都将不胜感激!!!

对于使用 "Load S3 data into RDS MySQL table" 模板遇到相同问题的任何人

我对每个参数的值如下

myRDSTableInsertSql:

INSERT INTO tableName(`col_name1`, `col_name2`, `col_name3`, `col_name4`, `col_name5`, `col_name6`, `col_name7`, `col_name8`, `col_name9`) VALUES(?,?,?,?,?,?,?,?,?);

我的 RDS 表名称:tableName

myRDSCreateTableSql:

CREATE TABLE tableName(`col_name1` type, `col_name2` type, `col_name3` type, `col_name4` type, `col_name5` type, `col_name6` type, `col_name7` type, `col_name8` type, `col_name9` type);

主要问题出在实际的 CSV 文件格式上,您必须确保没有 header,并且类型完全相同。还要确保您的分隔符是“,”,并且每个值都没有在您的 CSV 文件中被引用。

此模板是一个很好的起点,但必须形成更多 detailed/complex CSV 文件来制作您自己的数据管道!