我们知道Snowflake是基于云的分析数据仓库,以Saas的形式提供,它可以在这些云环境(AWS, Azure, GCP)上使用。我们可以选择像AWS这样的云环境,将数据存储在snowflake托管的S3桶中。是否可以使用我们的AWS云环境而不是snowflake管理的存储?有其他选择吗?
使用您自己的公共云管理环境的唯一方法是作为外部平台,您可以:
- 加载到雪花前的阶段数据
- 雪花卸载后的阶段数据
- 阶段数据,并使用外部表 在snowflake中查询它们
是的,您可以使用自己的基于云的存储,但从性能和特性的角度来看,这将是次优的。要做到这一点,你需要使用外部舞台。外部表存储有关数据文件的文件级元数据,例如文件名、版本标识符和相关属性。这样就可以在外部阶段查询存储在文件中的数据,就像在数据库中一样。外部表可以访问COPY INTO <table>
语句支持的任何格式的数据。
外部表是只读的,因此不能对其执行DML操作;但是,外部表可以用于查询和连接操作。可以针对外部表创建视图。
查询存储在数据库外部的数据可能比查询本地数据库表慢;但是,基于外部表的物化视图可以提高查询性能。
https://docs.snowflake.com/en/user-guide/tables-external-intro.html