6

単純なチェーン s3-pipeline-redshift を実行しようとしていますが、入力データ形式に完全に行き詰まっています。これが私のファイルです:

1,Toyota Park,Bridgeview,IL
2,Columbus Crew Stadium,Columbus,OH
3,RFK Stadium,Washington,DC
4,CommunityAmerica Ballpark,Kansas City,KS
5,Gillette Stadium,Foxborough,MA
6,New York Giants Stadium,East Rutherford,NJ
7,BMO Field,Toronto,ON
8,The Home Depot Center,Carson,CA
9,Dick's Sporting Goods Park,Commerce City,CO
10,Pizza Hut Park,Frisco,TX

ここに私が使用しているテーブルがあります:

    create table venue_new(
    venueid smallint not null,
    venuename varchar(100) not null,
    venuecity varchar(30),
    venuestate char(2),
    venueseats integer not null default '1000');

私が使用する場合 | 区切り文字として、コンマを使用するとエラー 1214 - Delimiter not found が発生します - 同じこと、ファイルを utf-8 に変換すると、「Invalid digit, Value '.', Pos 0, Type:短い'.私はアイデアを使い果たしました.それは一体何が悪いのですか?誰かが入力ファイルの例を教えてください.または私が間違っていることを教えてもらえますか?事前に感謝.バケット awssampledb で利用できますが、それらを取得する方法がわかりません。

4

1 に答える 1

8

ファイル例のデータに基づいています。テーブルに 5 つのフィールドがあり、どのデータにも 5 番目のフィールドがないことを覚えておく必要がありますが、これは非 null フィールドです。Copy コマンドは、ステートメントの開始時に提供する 4 つの列を参照する必要があります。

copy venue_new(venueid, venuename, venuecity, venuestate) 
from 's3://mybucket/data/venue_noseats.txt' 
credentials 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>'
delimiter ',';

上記のコマンドが見つかりました (AWS Docs COPY の例から)が正常に機能し、「venueseats」列にデフォルトの 1000 が残りました。

于 2014-02-20T11:37:01.280 に答える