如何使用s3 stage集成将数据插入snowflake
在aws和snowfalke之间创建存储集成。
在s3和snowflake之间创建stage集成。
发布于 2021-09-28 21:27:09
USE DATABASE Database_name;
USE SCHEMA scema_name;
truncate table table_name_tmp;
COPY INTO table_name_tmp FROM
(
SELECT $1:emp_id::INTEGER,$1:col2::DATE,$1:col3::string
FROM @Stagename.schema_name.{0}/{1}
)
on_error = 'continue'
file_format = (type = parquet, null_if = ('NULL'), trim_space = true);
MERGE INTO table_name dst USING table_name_tmp srs
ON (dst.emp_id=srs.emp_id)
WHEN MATCHED THEN
UPDATE SET
dst.emp_id=srs.emp_id,dst.col2=srs.col2,dst.col3=srs.col3
WHEN NOT MATCHED THEN INSERT (emp_id,col2,col3 )
values
(srs.emp_id,srs.col2,srs.col3
);
truncate table table_name_tmp;
发布于 2021-09-28 23:38:44
我认为这个问题可以更好地表达;您知道s3存储集成是一种将Snowflake连接到外部stage的方法,而不是从集成中提取;您仍然使用外部stage将其复制到Snowflake中。另一种方法是使用secrets和keys,尽管Snowflake建议使用Storage集成,因为这是一次性的活动,这意味着您不必处理这些设置的keys。
顺便说一句,S3是亚马逊网络服务的blob存储,文档中有分步指南,https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html
https://stackoverflow.com/questions/69368663
复制相似问题