无法在红移光谱外部模式中创建视图

Posted

技术标签:

【中文标题】无法在红移光谱外部模式中创建视图【英文标题】:cannot create a view in redshift spectrum external schema 【发布时间】:2020-05-11 18:28:34 【问题描述】:

我在频谱外部表的外部架构中创建视图时遇到问题。下面是我用来创建视图的脚本

create or replace view external_schema.test_view as
select id, name from external_schema.external_table with no schema binding;

我遇到了错误

错误:未启用对外部架构中本地对象的操作。

请帮助在频谱外部表下创建视图

【问题讨论】:

您遇到什么错误?此外,您是否允许在频谱模式中创建视图?我从未尝试过。 这里出现错误:未启用对外部架构中本地对象的操作。 【参考方案1】:

外部表是在外部架构中创建的。 Amazon Redshift 外部架构引用 AWS Glue 或 Amazon Athena 中的外部数据目录中的数据库或 Hive 元存储中的数据库,例如 Amazon EMR。

Redshift 集群中不存在外部架构,而是从其源中查找。出于同样的原因,外部表也是只读的。

因此,您将无法将您正在创建的视图绑定到未存储在集群中的模式。您可以在外部表之上创建一个视图(没有 SCHEMA BINDING 子句),但该视图将驻留在 Redshift 本地的架构中。

TL;DR Redshift 还不支持在外部架构中创建视图,因此视图只能驻留在 Redshift 本地的架构中。

external_schema 替换为internal_schema,如下所示:

create or replace view internal_schema.test_view as
select id, name from external_schema.external_table with no schema binding;

【讨论】:

以上是关于无法在红移光谱外部模式中创建视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在红移光谱表中加载正确的数据?

如何为红移光谱中的嵌套 Parquet 类型创建外部表

从带有搜索栏的表格单元格创建模式视图时,无法在导航栏中创建后退按钮

反正有没有在红移表中只保留一周的数据

使用胶水数据目录中定义的外部表红移光谱

在 Revit api 中创建门的详细视图