【问题标题】:Aws Athena View column count limit?Aws Athena View 列数限制?
【发布时间】: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 的查询编辑器,这就是我得到的全部。 (这也是为什么该错误如此令人沮丧的非信息性的原因)。

标签: amazon-web-services amazon-athena presto


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
相关资源
最近更新 更多