0

我正在尝试将 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?而且我对谷歌云存储不太感兴趣,GCS 存储桶中的场景会是什么?

4

1 回答 1

0

您可能无法将预设 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

于 2021-07-22T04:00:33.737 回答