0

我在 aws 胶水中为我的数据库创建了外部架构。我可以看到表格列表,但无法查看 json 数据。红移给我这个错误。

[Amazon](500310) Invalid operation: S3 Query Exception (Fetch)
Details: 
 -----------------------------------------------
  error:  S3 Query Exception (Fetch)
  code:      15001
  context:   Task failed due to an internal error. Error occured during Ion/JSON extractor match: IERR_INVALID_SYNTAX

  query:     250284
  location:  dory_util.cpp:717
  process:   query2_124_250284 [pid=12336]
  -----------------------------------------------;
1 statement failed.

我不想创建外部表,因为我将在 aws 胶水中创建一个组合数据目录中的外部表的视图。

只是一个更新:

我在数据目录中创建表时使用了 aws 胶水爬虫。它们是 json 格式。如果我使用将在 redshift 中上传这些数据的作业,它们将作为平面文件(数组除外)加载到 redshift 表中。

json数据示例:

{
  "array": [
    1,
    2,
    3
  ],
  "boolean": true,
  "null": null,
  "number": 123,
  "object": {
    "a": "b",
    "c": "d",
    "e": "f"
  },
  "string": "Hello World"
}

如果我使用 aws 胶水中的作业上传它们,输出将类似于(如表)

看图片

现在,我在数据目录中抓取了大量的表。我正在努力创建此表的单个脚本,这就是为什么亚马逊红移光谱外部模式会有所帮助的原因。

但是,当我在外部架构中查询外部表时,我收到了上面发布的错误。如果数据目录中的外部表作为 csv 加载,我不会遇到问题,但我需要在红移光谱中读取的格式文件应该是 json。

使用作业加载时,是否可以以相同格式查看红移光谱中的外部表?

4

1 回答 1

0

beni,
RedShift Spectrum 抛出的错误可能并不总是准确的。我只能确认使用 JSON 的查询应该与其他数据格式类似。顺便说一句,外部表需要通过光谱数据库中的SQL客户端进行更正。

所以,我建议参考这个这个来检查你的步骤

于 2019-02-12T20:20:43.433 回答