无法在红移光谱外部模式中创建视图
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;
【讨论】:
以上是关于无法在红移光谱外部模式中创建视图的主要内容,如果未能解决你的问题,请参考以下文章