雪花提供了雪花管道来将数据复制到一个表中,只要它在一个阶段中可用,但是它错过了清除选项。
还有其他方法来实现这一点吗?
在使用雪管的情况下,没有直接的方法来实现吹扫,但可以通过雪管、溪流和任务的组合来实现
假设要加载的数据文件驻留在GCS存储桶中
步骤1:在雪花上创建一个带有外部舞台的雪管
请参阅此文档
// Create a Staging Table
CREATE TABLE SNOWPIPE_DB.PUBLIC.GCP_STAGE_TABLE (COL1 STRING);
// Create Destination Table
CREATE TABLE SNOWPIPE_DB.PUBLIC.GCP_DESTINATION_TABLE (COL1 STRING);
// Create an External Stage
CREATE STAGE SNOWPIPE_DB.PUBLIC.GCP_STAGE
URL='gcs://bucket/files/'
STORAGE_INTEGRATION = '<STORAGE_INTEGRATION>';
// Create Snowpipe
CREATE PIPE SNOWPIPE_DB.PUBLIC.GCP_Pipe
AUTO_INGEST = true
INTEGRATION = '<NOTIFICATION_INTEGRATION>'
AS
COPY INTO SNOWPIPE_DB.PUBLIC.GCP_STAGE_TABLE
FROM @SNOWPIPE_DB.PUBLIC.GCP_STAGE;
步骤2:在Table上创建StreamGCP_STAGE_TABLE
流记录对表所做的数据操作语言(DML)更改,包括有关插入、更新和删除的信息。
请参阅本文档
// Create Stream in APPEND_ONLY Mode since we are concerned with INSERTS only
CREATE OR REPLACE STREAM SNOWPIPE_DB.PUBLIC.RESPONSES_STREAM
ON TABLE SNOWPIPE_DB.PUBLIC.GCP_STAGE_TABLE
APPEND_ONLY = TRUE;
现在,每当一些数据上传到地面军事系统存储桶上时,GCP\u STAGE\u表
都会被雪管填充,我们的流RESPONSES\u流
RESPONSES\u-STREAM
如下所示