0

今天,当我通过 Kinesis、Firehose 和 Redshift 完成第一个学习步骤时,我很高兴地发现 Amazon 有一个“试用我们的演示数据生成器”设置。

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

于是,我去挖了。而且我发现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的单行文件。

其他 SO 帖子似乎表明这实际上是预期的数据格式。

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

4

1 回答 1

1

好的。出现了三个问题。

  1. AWS 示例数据生成器以需要更改 Redshift COPY 命令的格式生成数据,但它们不会告诉您这一点。
  2. 您需要添加 FORMAT AS JSON 's3://yourbucketname/aJsonPathFile.txt'
  3. 您需要创建一个JSON 路径文件,因为默认数据生成器会生成大写的列名,redshift 无法使用
于 2017-01-05T22:48:03.467 回答