【问题标题】:Invalid operation: Specified types or functions (one per INFO message) not supported on Redshift tables无效操作:Redshift 表不支持指定的类型或函数(每个 INFO 消息一个)
【发布时间】:2022-01-22 22:42:54
【问题描述】:

我有一个用例,我需要将 pg_tablessvv_table_info 连接起来,并从 pg_tables 中获取列表所有者。当我尝试在 Redshift 上使用以下查询连接两个表时,它会引发以下错误。

我需要什么?

我需要加入 svv_table_info 并从中获取 tableowner col pg_tables

使用的查询:

select a.schema, a.table, b.schemaname , b.tablename ,b.tableowner 
from svv_table_info a 
left join pg_tables b
on a.schema = b.schemaname
and a.table = b.tablename limit 10;

错误:

SQL 错误 [500310] [0A000]:亚马逊无效操作:指定类型 或 Redshift 表不支持的函数(每条 INFO 消息一个)。;

  • 我尝试使用 Cast、Convert 并尝试创建一个临时表并访问 tableowner,但没有任何效果

谢谢,悟空

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    这条神秘的错误消息是 Redshift 的说法,即您将来自领导节点的源数据与来自计算节点的数据结合使用。某些系统表仅存在于领导节点上,您可以查询它们,但不能(轻松)将它们与计算节点数据结合起来,因为在查询期间源数据没有从领导节点流向计算节点的路径。

    在这种情况下,其中一个源是仅领导者数据表,另一个是计算节点数据集。 (您可以通过将表与用户定义的单行表交叉连接来测试表是否仅是领导者,并查看它是否会产生此错误。)如果我是正确的,您可以通过使用不同的目录快速解决此问题位于集群同一部分的表。

    我希望 AWS 能够记录哪些目录表是仅限领导者的,这样人们就不会掉入这个陷阱。

    如果需要比解释错误消息更多的帮助,请与我们联系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多