2

我已经以 Parquet 格式将数据从 Redshift 上传到 S3,并在 Glue 中创建了数据目录。我已经能够从 Athena 查询表,但是当我在 Redshift 上创建外部模式并尝试在表上查询时,我收到以下错误

ERROR:  S3 Query Exception (Fetch)
DETAIL:
  -----------------------------------------------
  error:  S3 Query Exception (Fetch)
  code:      15001
  context:   Task failed due to an internal error. File 'https://s3-eu-west-1.amazonaws.com/bucket/folder/partition_key/filename.parquet_1  has an incompatible Parquet schema for column 's3://bucket/folder
  query:     560922
  location:  dory_util.cpp:717
  process:   query1_118_560922 [pid=32409]
  -----------------------------------------------

查询在 Athena 中运行良好

4

2 回答 2

1

它有点告诉你出了什么问题 - 表/分区的架构和文件内容差异太大。解决这个问题的最简单方法是在数据位置上运行爬虫,并选中“从表中更新每个分区定义”。

于 2018-07-03T04:45:55.287 回答
0

我以前也遇到过这种情况。Athena 似乎没有像 Redshift 那样严格检查文件架构。

每个镶木地板文件中都有一个模式定义。如果文件中的架构定义与表定义不匹配或与一个或多个其他文件不同,则 Redshift 查询将失败,而如果受影响的列不在查询中,则 Athena 查询可能会成功。

于 2018-07-30T16:43:11.763 回答