在从雪管加载数据之前截断雪花表

时间:2021-06-15 15:50:51

标签: snowflake-cloud-data-platform

我是雪花的新手,正在按照 Automating Snowpipe for Amazon S3 文档进行 POC。

这是我创建的雪管

create pipe demo_db.public.storage_to_snowflake_pipe 
auto_ingest=true as copy into demo_db.public.test_table(Name) from (Select $1 FROM @demo_db.public.stage_table)file_format = (type = 'CSV' skip_header = 1);

在snowpipe 将数据加载到雪花表(test_table) 之前,是否有可能截断/删除雪花表中的数据?

提前致谢

2 个答案:

答案 0 :(得分:0)

由于您正在截断表,我假设它是一个临时表,您将有另一个进程从中读取数据并移动到另一个表。

如果是这种情况,您可以使用 ALTER TABLE .. SWAP WITH ... 来实现您的目标。

假设您的表是 T_STAGE 并且它正在由 Snowpipe 加载,您可以创建一个具有相同结构的二级阶段表 T_STAGE_INC

SWAP 将在表之间交换数据。

在从 T_STAGE 读取数据的进程开始时,您需要运行

ALTER TABLE T_STAGE SWAP WITH T_STAGE_INC

并使用 T_STAGE_INC 作为您的来源。

处理完成后,您可以截断 T_STAGE_INC 表。

第一次运行也需要为空

答案 1 :(得分:0)

用雪花检查了这个。雪管尚不支持此功能