Kinesis Firehose演示没有分隔符; Redshift无法解析。哪个错了?

时间:2017-01-05 01:18:06

标签: amazon-redshift amazon-kinesis amazon-kinesis-firehose

今天,当我第一次使用Kinesis,Firehose和Redshift学习时,我很高兴地发现亚马逊有一个“尝试我们的演示数据生成器”设置。

我很沮丧地得知它似乎并没有真正发挥作用。

所以,我去挖掘。我发现STL_LOAD_ERROR包含错误,表明预期会有分隔符,并记录的内容看起来像{field:val,field:val}{field:val,field:val}

...{"TICKER_SYMBOL": |     1214 | Delimiter not found 

“必须在某个地方剥离换行符,”我想。

挖掘后,我发现相关的S3存储桶中有生产记录,格式令人惊讶:

{field:val,field:val}{field:val,field:val}...

也就是说,明显记录之间没有分隔符,这些记录是每行几十K的单行文件。

Other SO posts似乎暗示这实际上是预期的数据格式。

为什么Redshift需要数据演示不使用的格式的数据?我要重新配置哪个?

1 个答案:

答案 0 :(得分:1)

好。有三个问题。

  1. AWS示例数据生成器以需要更改Redshift COPY命令的格式生成数据,但他们没有告诉您。
  2. 您需要添加FORMAT AS JSON的3://yourbucketname/aJsonPathFile.txt'
  3. 您需要创建一个JSON path file,因为默认数据生成器会生成大写的列名,redshift不能使用