作为消费者,您可以创建数据库共享的视图吗?

Can you create a View of a database Share, as a consumer?

我正在尝试创建数据库共享的视图(我是共享的使用者)。

例如

create view testview as (select * from myshare);

导致此错误:

SQL execution error: Creating view on shared database 'myshare' is not allowed.

我没有看到关于此的任何结论性文档。如果不允许这样做,是否有任何解决方法来实现类似的结果?

您不能在共享数据库中创建视图(或任何其他对象),因为它是 read-only 提供商数据库的反映。

您可以在引用它的另一个 [database.schema] 中创建一个视图。

这是一个使用 ZEPL 的 US_STOCK_DAILY 来自 Snowflake Marketplace 的份额的示例。

所以这失败了,正如您所发现的:

Use Database US_STOCKS_DAILY;
Use Schema PUBLIC;

Create View MAX_DATE as 
Select max(DATE)  MAXDATE from STOCK_HISTORY;

SQL execution error: Creating view on shared database 'US_STOCKS_DAILY' is not allowed.

但这行得通。

Use Database MY_DATABASE ;
Use Schema MY_SCHEMA;

Create View MAX_DATE as 
Select max(DATE)  MAXDATE 
  from US_STOCKS_DAILY.PUBLIC.STOCK_HISTORY; 

Select max(DATE) MAXDATE from MAX_DATE;

请注意,您需要 fully-qualify 提供程序架构中的对象名称。