S3到Redshift输入数据格式

Kor*_*saR 6 amazon-web-services amazon-redshift amazon-data-pipeline

我正在尝试运行一个简单的链式s3-pipeline-redshift,但我完全坚持使用输入数据格式.这是我的档案:

1,Toyota Park,Bridgeview,IL
2,Columbus Crew Stadium,Columbus,OH
3,RFK Stadium,W​​ashington,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,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');
Run Code Online (Sandbox Code Playgroud)

当我使用| 作为分隔符,我收到错误1214 - 未找到分隔符,当我使用逗号时 - 同样的事情,当我将文件转换为utf-8时,我得到"无效的数字,值'.',Pos 0,类型:简短'.我的想法用完了.那件事有什么问题?有人可以给我输入文件的例子或说出我做错了什么吗?先谢谢.我还发现样本文件是在桶awssampledb中可用,但我不知道如何获取它们.

小智 8

基于文件示例中的数据.您需要记住,您的表中有5个字段,并且您的任何数据中都没有第5个字段 - 但它是非空字段.您的复制命令需要引用您在语句开头提供的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 ',';
Run Code Online (Sandbox Code Playgroud)

我发现上面的命令(来自AWS Docs COPY示例为我成功运行,让我在'venueseats'列中保留默认值1000.