使用 Canned ACL 直接将 Snowflake 数据卸载到 S3 位置

Unloading Snowflake data to S3 Location directly with Canned ACL

我正在尝试将 Snowflake 中特定查询的结果直接卸载到 S3 位置。

copy into 's3://bucket-name/folder/text.csv' 
from <Some SQL Query>
file_format = (type = CSV file_extension = '.csv' field_optionally_enclosed_by = NONE empty_field_as_null = false) 
max_file_size = 5000000000 
storage_integration = aws 
single = true;

问题是写入成功后,由于ACL,存储桶拥有者无法从S3读取新文件。 那么,如何在从 Snowflake 写入 S3 时添加 "Bucket-Owner-Full-Control" 的固定 ACL?而且我对Google Cloud Storage不是很了解,GCS buckets会是什么场景??

您可能无法将固定 ACL 添加到 COPY INTO 语句中,但是您可以将所需的参数添加到存储集成中。

当您创建存储集成时或如果您必须更新它,请将其添加到声明中。 STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'

这应该确保您从 Snowflake 卸载到存储桶的任何数据都将让存储桶拥有者完全控制该对象。

https://docs.snowflake.com/en/user-guide/data-unload-s3.html#configuring-support-for-amazon-s3-access-control-lists-optional