AWS Kinesis Firehose中的复制命令不起作用

时间:2018-07-22 08:55:34

标签: amazon amazon-redshift-spectrum

我正在使用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

我在做什么错,我该如何解决?

1 个答案:

答案 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;