从AWS S3雪花复制到TOTO,同时包含功能

时间:2020-04-16 13:56:18

标签: javascript stored-procedures etl snowflake-cloud-data-platform

我正在考虑实现此目的的几种方法,但希望获得有关有效选择的一些意见。这里的问题是这个。我需要使用COPY INTO到为快照设置的数据库中执行一些ETL操作。定义为过去一天。这里的阶段是一个AWS S3存储桶。要捕获最新文件,我需要在from语句或模式中实现文件路径。

CREATE OR REPLACE TASK ETL_1
WAREHOUSE = W1
SCHEDULE = 'USING CRON 30 */4 * * *  America/Los_Angeles'
AS
copy into DB.SCHEMA.TABLE1
  from @STAGE/TABLE1
  pattern='.*/.*/.*[.]csv'
  on_error = 'continue'
  file_format = csv_etl;

使用类似的方法,我会得到所需的文件路径

CREATE OR REPLACE FUNCTION CURRENT_DATE_FILEPATH()
    returns string
    as 
    as REPLACE(CURRENT_DATE(), '-', '/')
    ;

这将返回日期格式,例如“ 2020/04/15”,然后我想以某种方式在舞台格式中使用 就像@ STAGE / TABLE1 / 2020/04/15 / *

是否可以将其包含到我的副本到语句中?

我可以肯定在使用Snowflake的Javascript功能的过程中执行此操作,但是除非我为每个过程执行一个任务,否则我将失去能够监视正在加载到每个表中的数据的粒度。

因为实际上只需执行一个过程即可遍历我的表。但是这些表每天可能相当庞大。

这是最好的方法吗?

1 个答案:

答案 0 :(得分:0)

我最终只是将其变成了一个庞大的JavaScript过程。不是很理想,但是我有足够的错误处理,似乎可以按预期工作。