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

Kinesis Firehose demo has no delimiters; Redshift can't parse without. Which is wrong?

今天,当我完成 Kinesis、Firehose 和 Redshift 的初步学习步骤时,我很高兴地发现亚马逊有一个 "try our demo data producer" 设置。

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

所以,我去挖了。我发现 STL_LOAD_ERROR 包含错误,表明需要分隔符,并且记录的前面看起来像 {field:val,field:val}{field:val,field:val}.

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

"Must be stripping newlines somewhere,"我以为。

挖掘后发现相关S3 bucket中有生产记录,格式奇葩:

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

也就是表象记录之间没有分隔符,都是几十K的单行文件。

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

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

好的。遇到了三个问题。

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