snowflake-cloud-data-platform - 在使用阶段 + 存储集成与直接存储集成进行数据加载/卸载时,雪花是否有任何性能影响?
问题描述
如果我有一个 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 解决方案架构,存储集成只是为了避免在 Snowflake 中存储 AWS 访问密钥和密钥。它对性能没有任何影响。
因此,改为使用带有嵌入式 AWS 访问密钥和密钥的 S3 阶段。您可以让 S3 阶段指向存储集成。存储集成本身没有 AWS 凭证/机密。您在您的 AWS 账户中提供 IAM 角色的 ARN,以访问您要从中加载/卸载到的 S3 存储桶。然后,存储集成为您提供雪花 iam 用户 arn 和外部 ID,您可以使用该 ID 设置从您帐户中的角色到该雪花用户的信任关系。
然后,当您访问阶段时,Snowflake 将在您的账户中担任 aws 角色,因此无需您提供 aws 凭证即可访问 S3 存储桶。
推荐阅读
- python - 如何在目录中查找最旧和最新的文件?
- node.js - 对于 nodemailer,nodejs 服务器在托管时如何工作?
- go - 如何在 GKE 中使用 HTTPS 部署 Echo 应用程序?
- javascript - 修复移动设备上的 react-responsive-carousel 显示
- optaplanner - 找到给定日期的最佳培训
- node.js - 将节点 12 与 npm 7 一起使用
- css - 在 b-card 中引导 b-card
- directus - 活动端点在 Directus V8 中返回操作字段 null
- typescript - 导出 NPM 包的测试实用程序以在其他 NPM 包中使用
- php - 创建新的 woocommerce 免费送货方式时,它不会保存更改