Mad*_*ham 3 regex sql azure snowflake-schema snowflake-cloud-data-platform
我在 azure blob 存储中只有几个 CSV 文件,我们正在使用 COPY INTO 命令加载雪花表中的文件。问题是:文件系统是:容器>>文件夹(例如:帐户)>>类似2011-09.csv 2011-10.csv的文件数量,帐户文件夹也有一个子文件夹“快照”,其中也有具有相似数据但名称不同的文件,例如 2019-11_1654478715.csv 因此,在使用 COPY INTO 命令时,Snowflake 中的目标表会填充重复的行。
我正在使用这个:
从 'azure://abc.blob.core.windows.net/abc-abc/account' 复制到 BINGO_DWH_DEV.LANDING.CRM_ACCOUNT_TEMP 凭证=(azure_sas_token= 'abc') ON_ERROR='CONTINUE' FILE_FORMAT=(type=csv field_delimiter) =','FIELD_OPTIONALLY_ENCLOSED_BY='"');
我可以使用带有正则表达式的 COPY INTO 命令的任何想法,该命令只能选择“2011-09.csv”等文件,而不是快照文件夹中的文件。
感谢你的帮助
小智 8
您可以使用pattern关键字作为正则表达式来根据模式插入文件。
\n请参考雪花文档。
\n例子:
\ncopy into emp_basic\n from @%emp_basic\n file_format = (type = csv field_optionally_enclosed_by=\'"\')\n pattern = \'.*2011-19.*.csv.gz\'\n on_error = \'continue\';\nRun Code Online (Sandbox Code Playgroud)\n这取决于您设置阶段位置的方式(Azure blob、S3 或 GCP)。让\xe2\x80\x99s 表示您的文件已放置在“文件夹”中s3://yourbucket/folder1/[filename],gz。并且你已经设置了指向的舞台s3://yourbucket使用的模式:
pattern=\'.*2011-09*.csv.*.gz\'\nRun Code Online (Sandbox Code Playgroud)\n然后它会扫描下面的所有文件s3://yourbucket。
但是,如果您的舞台已设置为指向该文件夹s3://yourbucket/folder1/并且使用的模式为:
pattern=\'.*2011-09.*csv.*.gz\'\nRun Code Online (Sandbox Code Playgroud)\n然后它只会在s3://yourbucket/folder1/。
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |