Aws Athena View 列数限制?

Posted

技术标签:

【中文标题】Aws Athena View 列数限制?【英文标题】:Aws Athena View column count limit? 【发布时间】:2021-12-09 07:15:21 【问题描述】:

我似乎遇到了一个雅典娜视图构造限制,我找不到任何文档。这是我为生成视图而运行的查询:

CREATE OR REPLACE VIEW view1 AS
(
    SELECT * FROM table1
)

table1 只有 5 行。如果table1有9334列,则视图构建成功。但如果 table1 有 9335 列,我会收到以下错误:

Exception: com.facebook.presto.v217.spi.PrestoException: 1 validation error detected: Value '/* Presto View: 

后面是一个页长的哈希。有谁知道问题/错误是什么?

【问题讨论】:

你能分享一个更长的错误信息吗?我认为可能会写错误原因。 不幸的是,通过 boto3 客户端或 Athena 的查询编辑器,这就是我得到的全部。 (这也是为什么该错误如此令人沮丧的非信息性的原因)。 【参考方案1】:

问题可能是 Glue API 只允许存储视图元数据的字段为 409600 字节,并且当您添加第 9335 列时,它会被截断并且在读回时不再验证。

您所说的“页面长哈希”实际上是一个基于 64 位编码的 JSON 结构,其中包含视图的内部 Presto 表示。您可以通过检查编码字符串的大小来判断我的预感是否正确。如果是 409600,那么 Glue API 中的限制就是问题所在。

【讨论】:

有趣的观点。不幸的是,我无法验证哈希的完整长度,因为 boto3 客户端将 StateChangeReason 截断为 32768 (32 KB)。但是,我不认为我在此设置中涉及 Glue? (其实我也是故意避开胶水爬行者) 是的.. 即使我没有使用爬虫,Glue 是管理后台元数据的系统。你说的可能是它,我只是在寻找验证它的方法。所以@Theo,这是否意味着 Athena View 永远不能表达比 Athena Table 大一个数量级的数据,因为元数据限制(410KB)小于创建表的查询长度限制(262Kb)的两倍? 是的,Glue 确实是许多服务的集合,表(和视图)存储在 Glue 数据目录中。视图有点特殊,因为 Athena 将内部 Presto 表示保存在目录条目中,常规表不会遇到此特定限制(如果我的理论是正确的,您遇到的限制是 ViewOriginalText 字段的大小)。 这看起来像“'/* Presto View”是这个vieworiginaltext。您知道我在哪里可以找到有关此视图元数据限制为 409600 的文档吗?我似乎在任何地方都找不到它? 这里是包含限制的文档:docs.aws.amazon.com/glue/latest/dg/…

以上是关于Aws Athena View 列数限制?的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Athena View 作为 AWS Glue 作业的来源吗?

“$path”是不是限制 Athena 扫描的数据量?

使用 Athena / Presto 从多个表返回 SQL 数据,受 1 个表中的日期范围限制

ABAP SCREEN的内表列数有限制吗

BigQuery 中的列数限制?

MySQL 表列数和行大小有哪些限制?