首页 > 解决方案 > 在使用阶段 + 存储集成与直接存储集成进行数据加载/卸载时,雪花是否有任何性能影响?

问题描述

如果我有一个 AWS S3 存储集成和一个指向该阶段的阶段:

create stage my_stage
  storage_integration = my_storage_integration
  url = 's3://mybucket/'
  ;

运行这两个命令之间是否有任何性能差异:

COPY INTO ... from 's3://mybucket/myfile.csv' storage_integration=my_storage_integration;
COPY INTO ... FROM '@my_stage/myfile.csv';

一般来说,使用阶段与存储集成之间的处理有什么区别吗?

标签: snowflake-cloud-data-platform

解决方案


根据我们的 Snowflake 解决方案架构,存储集成只是为了避免在 Snowflake 中存储 AWS 访问密钥和密钥。它对性能没有任何影响

因此,改为使用带有嵌入式 AWS 访问密钥和密钥的 S3 阶段。您可以让 S3 阶段指向存储集成。存储集成本身没有 AWS 凭证/机密。您在您的 AWS 账户中提供 IAM 角色的 ARN,以访问您要从中加载/卸载到的 S3 存储桶。然后,存储集成为您提供雪花 iam 用户 arn 和外部 ID,您可以使用该 ID 设置从您帐户中的角色到该雪花用户的信任关系。

然后,当您访问阶段时,Snowflake 将在您的账户中担任 aws 角色,因此无需您提供 aws 凭证即可访问 S3 存储桶。


推荐阅读