【问题标题】: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;

我遇到了错误

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

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

【问题讨论】:

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

标签: sql amazon-web-services amazon-redshift amazon-redshift-spectrum


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2014-07-09
    • 1970-01-01
    • 2020-02-01
    • 2020-01-04
    相关资源
    最近更新 更多