我有一個指向公共檔案的 S3 URL,類似于以下 URL 示例:s3://test-public/new/solution/file.csv (這不是實際鏈接。只是我正在使用的那個的一個接近示例)
我可以在 python 腳本中使用s3fs模塊讀取檔案,無需放置任何 AWS 密鑰 ID 或 AWS 密鑰,如下所示:
with fs.open('test-public/new/solution/file.csv'):
但是,當我嘗試從 S3 到 Snowflake 階段或從Table -> Load table讀取相同的檔案時,Snowlake 報告說缺少 AWS 密鑰 ID 和 AWS 密鑰,盡管這些欄位是可選的

有沒有一種方法可以將 S3 中的公共檔案讀取到雪花表中,而無需任何 AWS 憑證(與 s3fs 一樣)?
uj5u.com熱心網友回復:
STORAGE_INTEGRATION或者CREDENTIALS僅當存盤位置是私有的時才需要,公共存盤桶不需要。
確保您已正確定義存盤桶策略。
{
"Version": "2012-10-17",
"Id": "Policy16361",
"Statement": [
{
"Sid": "Pub Bucket Policy",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::pubucket",
"arn:aws:s3:::pubucket/*"
]
}
]
}
為 S3 存盤桶定義上述策略后,您可以創建階段或直接加載到表中:
--create stage, list files, view file content
create or replace stage my_s3_stage url='s3://pubucket/test.csv';
ls @my_s3_stage;
select $1 from @my_s3_stage;
--or even load directly from file
create or replace table mytable (cola varchar);
copy into mytable from 's3://pubucket/test.csv';
select * from mytable;
uj5u.com熱心網友回復:
這種方法可以將資料從 S3 匯入到雪花表中:
COPY INTO SNOW_SCHEMA.table_name FROM 's3://test-public/new/solution/file.csv'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/350308.html
