【问题标题】:Truncate snowflake table before loading data from a snowpipe在从雪管加载数据之前截断雪花表
【发布时间】:2021-06-15 15:50:51
【问题描述】:

我是 Snowflake 的新手,并在 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);

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

提前致谢

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

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

    如果是这种情况,您可以使用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 表。

    第一次运行也需要为空

    【讨论】:

    • 道歉。我已经用雪管详细信息更新了我的问题。这是我必须截断和加载的目标表。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-02
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      相关资源
      最近更新 更多