Javascript 雪花从AWS S3复制到,同时包含函数
我正在考虑一些方法来做到这一点,但想一些有效的选择投入。这里的问题是这个。我需要使用复制到为快照设置的数据库中来执行一些ETL操作。它被定义为过去的一天。这里的舞台是一个AWS S3铲斗。为了捕获最新的文件,我需要在from语句或模式中实现一个文件路径Javascript 雪花从AWS S3复制到,同时包含函数,javascript,stored-procedures,etl,snowflake-cloud-data-platform,Javascript,Stored Procedures,Etl,Snowflake Cloud Data Platform,我正在考虑一些方法来做到这一点,但想一些有效的选择投入。这里的问题是这个。我需要使用复制到为快照设置的数据库中来执行一些ETL操作。它被定义为过去的一天。这里的舞台是一个AWS S3铲斗。为了捕获最新的文件,我需要在from语句或模式中实现一个文件路径 CREATE OR REPLACE TASK ETL_1 WAREHOUSE = W1 SCHEDULE = 'USING CRON 30 */4 * * * America/Los_Angeles' AS copy into DB.SCHEM
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功能的过程中做到这一点,但除非我为每个过程制定任务,否则我将失去监视加载到每个表中的数据的粒度
因为这实际上只需要在我的表中循环一个过程就可以完成。但这些表格每天都相当庞大
这是最好的方式吗 我最终只是把它变成了一个庞大的JavaScript过程。不太理想,但我有足够的错误处理能力,它似乎能按我的预期工作。我最终只是把它变成了一个庞大的JavaScript过程。虽然不理想,但我有足够的错误处理能力,似乎可以按照我的预期工作。这不是你想要的答案,但我们通过自己的ELT(我们加载到SF中,然后在SF中加载T)工具,有效地满足了你的要求。因此,它知道加载了哪些数据,加载几天直到今天(UTC),然后加载几小时。。在存储过程和任务之前,我们必须走这条路,但实际上,这些过程和任务在调试/监控/进程统计方面似乎都有差距,而且我们在AWS中运行的编排应用程序的负载并不重,所以除了其他应用程序之外,我们还可以坐下来。。因此,有效的零成本…不是一个坏主意!我确实用Javascript编写了一个大型程序,我会在它呈现出来后发布。这不是你想要的答案,但我们通过我们自己的ELT(我们加载到SF中,然后在SF中加载T)工具有效地完成了你要做的事情。因此,它知道加载了哪些数据,加载几天直到今天(UTC),然后加载几小时。。在存储过程和任务之前,我们必须走这条路,但实际上,这些过程和任务在调试/监控/进程统计方面似乎都有差距,而且我们在AWS中运行的编排应用程序的负载并不重,所以除了其他应用程序之外,我们还可以坐下来。。因此,有效的零成本…不是一个坏主意!我确实用Javascript为此编写了一个大型过程,当它呈现出来时,我会发布它。