需要帮助找到正确的模式以在雪管复制中使用到命令中

发布于 2025-02-11 12:59:16 字数 897 浏览 2 评论 0原文

需要在雪管中复制成模式的帮助。 面对挑战时,在使用S3 Bucket文件夹中存在的以下文件S3Bucket/文件夹/文件

1)changes_tags.csv.12345
2)changes_tags.csv.987987
3)tags.csv.67587
4)tags.csv.9987

加载标签的情况下,面临挑战。也正在加载change_tags.csv文件。

created external stage at folderlevel,
CREATE OR REPLACE STAGE s3_stage
STORAGE_INTEGRATION = s3_int
ENCRYPTION          = ( TYPE = 'SNOWFLAKE_SSE' )
URL                 = 's3://bucketname/folder'
FILE_FORMAT         = csv_pipe_format;

请在下面找到Snowpipe命令

create or replace pipe TAGS  auto_ingest=true as
COPY INTO CHANGE_TAGS(tag_id
tag_name ,
tag_value 
filename ,
file_rownum 
)
FROM (select $1,$2,$3,METADATA$FILENAME,METADATA$FILE_ROW_NUMBER from @s3_stage) 
PATTERN='.*tags.csv.*'
ON_ERROR = 'CONTINUE'
FILE_FORMAT =   (TYPE = 'CSV',FIELD_DELIMITER = ',',SKIP_BLANK_LINES = TRUE,FIELD_OPTIONALLY_ENCLOSED_BY = '"');

Need help on copy into pattern in snowpipe.
facing challenge while using pattern for below file present in s3 bucket folder S3bucket/Folder/files

1)changes_tags.csv.12345
2)changes_tags.csv.987987
3)tags.csv.67587
4)tags.csv.9987

to load tags.csv file, in snowpipe copy into command using pattern=.*tags.csv.*, but it is loading changes_tags.csv file also.

created external stage at folderlevel,
CREATE OR REPLACE STAGE s3_stage
STORAGE_INTEGRATION = s3_int
ENCRYPTION          = ( TYPE = 'SNOWFLAKE_SSE' )
URL                 = 's3://bucketname/folder'
FILE_FORMAT         = csv_pipe_format;

please find below snowpipe command

create or replace pipe TAGS  auto_ingest=true as
COPY INTO CHANGE_TAGS(tag_id
tag_name ,
tag_value 
filename ,
file_rownum 
)
FROM (select $1,$2,$3,METADATA$FILENAME,METADATA$FILE_ROW_NUMBER from @s3_stage) 
PATTERN='.*tags.csv.*'
ON_ERROR = 'CONTINUE'
FILE_FORMAT =   (TYPE = 'CSV',FIELD_DELIMITER = ',',SKIP_BLANK_LINES = TRUE,FIELD_OPTIONALLY_ENCLOSED_BY = '"');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

智商已欠费 2025-02-18 12:59:16

请参阅下面的测试案例,以显示文件排除/包含,使用模式 -

  • 输出被截断,以使勇敢的

文件上传到名为-ock_data.csv-

复制到 @sf_s3_stage模式='。*/mock_data。*';*';

filestatusrows_parsedrows_loaded
s3://snowflakepr/csv/data/mock_data.data.csv加载10011001

更改了文件名并添加了一个前缀,以beproding -copying -repoying -

code> code> list @sf_s3_stage @sf_s3_stage;

name>
s3://snowflakepr/csv/data/prefix_mock_data.csv

尝试复制 -

@sf_s3_stage pattern ='。*/mock_data。

从上面可以看出,没有文件复制。

模式

使用如果我们
​csv/data/prefix_mock_data.csv加载10011001

Refer below test-case, to show file exclusion/inclusion, using pattern -

  • Outputs are truncated for bravity

To upload file named - MOCK_DATA.csv -

copy into mock_data_tab from @sf_s3_stage pattern='.*/MOCK_DATA.*';

filestatusrows_parsedrows_loaded
s3://snowflakepr/csv/data/MOCK_DATA.csvLOADED10011001

Changed file name and added a prefix, to test exclusion from copying -

list @sf_s3_stage;

name
s3://snowflakepr/csv/data/Prefix_MOCK_DATA.csv

Trying to copy -

copy into mock_data_tab from @sf_s3_stage pattern='.*/MOCK_DATA.*';

status
Copy executed with 0 files processed.

As can be seen from above no file gets copied.

If we use pattern .* as prefix it will pick all (not desired) -

copy into mock_data_tab from @sf_s3_stage pattern='.*MOCK_DATA.*';

filestatusrows_parsedrows_loaded
s3://snowflakepr/csv/data/Prefix_MOCK_DATA.csvLOADED10011001
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文