2016-05-10 4 views
0

私は最初の4つの値を取りたいだけの可変構造のCSVを持っています。 S3に保存されたCSVはそれで7〜8フィールドがあり、そして私は、次のプリペアドステートメントを使用しようとしてきただけで最初の4利用したいと思います:私は取得していますがDataPipeline:パイプラインでCSVの最初の4つの値を使用します

INSERT INTO locations (timestamp, item_id, latitude, longitude) VALUES (?, ?, ?, ?);

を:

私は信じて

Parameter index out of range (5 > number of parameters, which is 4).

は、CSV内の他の変数にロードしようとしていることを意味します。最初の4つの値を取ることは可能ですか?あるいは、可変長のCSVを扱う?

答えて

1

transformSqlオプションを使用します。 redshiftからドキュメント:

入力データの変換に使用されたSQL SELECT式。 DynamoDBまたはAmazon S3からデータをコピーすると、AWS Data Pipelineはステージングと呼ばれる テーブルを作成し、最初にそこにロードします。この テーブルのデータは、ターゲットテーブルの更新に使用されます。 transformSqlオプション が指定されている場合、指定されたSQL ステートメントから2番目のステージング表が作成されます。この第2のステージングテーブルからのデータは、最終目標テーブル で更新されます。 transformSqlは ステージングの表で実行する必要があり、transformSqlの出力スキーマは最終的な ターゲット表のスキーマと一致する必要があります。

関連する問題