我正在考虑实现此目的的几种方法,但希望获得有关有效选择的一些意见。这里的问题是这个。我需要使用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功能的过程中执行此操作,但是除非我为每个过程执行一个任务,否则我将失去能够监视正在加载到每个表中的数据的粒度。
因为实际上只需执行一个过程即可遍历我的表。但是这些表每天可能相当庞大。
这是最好的方法吗?
答案 0 :(得分:0)
我最终只是将其变成了一个庞大的JavaScript过程。不是很理想,但是我有足够的错误处理,似乎可以按预期工作。