我正在使用Kinesis firehose,它在S3中加载数据并创建Menifest文件。
我正在从Menifest复制数据,但是抛出错误。
我的清单文件:mydeliverystream-2018-07-22-08-01-06-bd895f6a-4fad-485
{
"entries" : [ {
"url" : "s3://testings3/2018/07/22/07/mydeliverystream-3-2018-07-22-07-56-04-89605e0e-26bf-4017-a102-338ceb15481d",
"mandatory" : true
} ]
}
我正在使用firehose的复制命令
COPY redshiftproduct FROM 's3://testings3/mydeliverystream' CREDENTIALS 'aws_iam_role=arn:aws:iam::329723704744:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift' delimiter ',' MANIFEST region 'us-east-1'
请注意;我也尝试过在manifest关键字之后添加定界符。
我在复制命令中收到的错误包含语法错误。
Data file:
delhi,ac,4000,2011
Haryana,TV,5000,2001
Channai,TV,3000,2011
Mumbai,Laptop,4000,2012
new delhi,ac,5000,2012
Kolkatta,fridge,1000,2012
Kanpur,TV,2000,2013
Haryana,ac,2000,2019
Kanpur,ac,2000,2019
我在做什么错,我该如何解决?
答案 0 :(得分:0)
1-您需要添加FORMAT AS JSON's3://yourbucketname/aJsonPathFile.txt'。 AWS尚未提到这一点。请注意,这仅在您的数据采用JSON格式(如
)时有效{'attr1':'val1','attr2':'val2'} {'attr1':'val1','attr2':'val2'} {'attr1':'val1','attr2': 'val2'} {'attr1:'val1','attr2':'val2'}
2-您还需要验证kinesis firehouse和csv文件中的列顺序,然后尝试添加
TRUNCATECOLUMNS blanksasnull emptyasnull
3-一个例子
COPY testrbl3(eventId,serverTime,pageName,action,ip,userAgent,位置,平台,语言,广告系列,内容,源,媒体,productID,colorCode,scrolltoppercentage)来自's3:// bucketname /'CREDENTIALS'aws_iam_role = arn:aws:iam ::: role /'清单json'自动'TRUNCATECOLUMNS blanksasnull emptyasnull;