雪花中的动态舞台路径

Dynamic stage path in snowflake

我的阶段路径如下

copy into table1 as (
select :InvestorID::varchar as Investor_ID from  @company_stage/pbook/2022-03-10/Invor/part-00000-33cbc68b-69c1-40c0-943c-f586dfab3f49-c000.snappy.parquet

)

这是我的 S3 位置 company_stage/pbook/2022-03-10/Invor,

我需要动态化:

I) 我需要将这个“2022-03-10”文件夹更改为当前日期

II) 它必须自动获取文件夹中的所有 parquet 文件,而无需我提及文件名。如何实现?

这是一种方法。您的阶段不应将日期作为阶段名称的一部分,因为如果包含,您将每天都需要一个新阶段。最好将阶段定义为 company_stage/pbook/.

要使其动态化,我建议将 pattern 选项与 COPY INTO 命令一起使用。您可以使用 current_date() 使用正则表达式模式表达式创建一个变量,如下所示:

set mypattern = '\.*'||to_char(current_date(), 'YYYY-MM-DD')||'\.*';

然后像这样在 COPY INTO 命令中使用这个变量:

copy into table1 as (
select :InvestorID::varchar as Investor_ID from  @company_stage/pbook/ pattern = $mypattern
)

当然,您可以根据需要调整模式匹配。