AWS Athena 为啥单行或其列的大小不能超过 32 MB 错误 select * from tableName 但不是在 where 条件

Posted

技术标签:

【中文标题】AWS Athena 为啥单行或其列的大小不能超过 32 MB 错误 select * from tableName 但不是在 where 条件【英文标题】:AWS Athena why size of a single row or its columns cannot exceed 32 MB error in select * from tableName but not in where conditionAWS Athena 为什么单行或其列的大小不能超过 32 MB 错误 select * from tableName 但不是在 where 条件 【发布时间】:2021-11-03 12:32:36 【问题描述】:

当我运行 select * from tableName 时,我在 AWS Athena 中遇到以下错误:

您的查询存在以下错误: [ErrorCategory:USER_ERROR, ErrorCode:DATA_ERROR], Detail: 单行或列的大小不能超过 32 MB

当我运行select * from tableName where col1 is not null 时。我可以看到所有数据。

我担心的是:为什么 select * from tableName 没有 where 条件会在 AWS Athena 上给我错误,而 with where 条件不会给我错误

后端针对这两个查询会发生什么。我正在从 S3 读取镶木地板数据并在 AWS Athena 上进行查询。

请分享您的意见。

【问题讨论】:

可能是另一列太宽,但 col1 在这些特定行上为空。例如,选择 col1 is null 可能会碰到列太大的行。 @JohnRotenstein 有道理。如果您可以共享表中每一列的数据类型以确认是这种情况,那就太好了。 【参考方案1】:

我确实有类似的问题。此外,我检查了条件列无论如何都不应该影响。

SELECT * FROM tableName; 失败并出现错误单行大小或其列不能超过 32 MB

虽然SELECT * FROM tableName WHERE colName < 30 * 1024 * 1024; 没有失败。

最有趣的是SELECT count(*) FROM tableName;的结果等于SELECT count(*) FROM tableName WHERE colName < 30 * 1024 * 1024;的结果

【讨论】:

这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review

以上是关于AWS Athena 为啥单行或其列的大小不能超过 32 MB 错误 select * from tableName 但不是在 where 条件的主要内容,如果未能解决你的问题,请参考以下文章

从 AWS Athena 中的数组元素分组

AWS Athena数据集的注意事项? TSV

AWS Athena 可以更新或插入存储在 S3 中的数据吗?

腾讯微云上传文件大小限制是多少?为啥我不能上传超过1g的文件?今天刚用不了解,我记得以前不是宣传

使用 AWS Glue Scala 查询 Athena(添加分区)

AWS Athena 分析日志