在 Snowflake 中,您可以像这样使用 get_ddl 函数来获取表、视图和过程的 ddl:
select get_ddl('view', 'SOME_VIEW_I_CREATED')
但似乎你不能用任务来做到这一点。
有什么方法可以轻松获取雪花任务的 DDL 吗?
注意:雪花中的任务现在支持 get_ddl。
在 Snowflake 中,您可以像这样使用 get_ddl 函数来获取表、视图和过程的 ddl:
select get_ddl('view', 'SOME_VIEW_I_CREATED')
但似乎你不能用任务来做到这一点。
有什么方法可以轻松获取雪花任务的 DDL 吗?
注意:雪花中的任务现在支持 get_ddl。
至少在 2019-12-24 (当我发现它时),您现在可以这样做:
select get_ddl('task', 'demo_task')
为了运行它,您必须具有以下权限:
(USAGE on db & OWNERSHIP on schema & Any Permission on task) OR
(USAGE on db & USAGE on schema & Any Permission on task)
注意:这是一个旧答案。get_ddl() 函数现在支持任务。
这是一个可以生成您正在寻找的 DDL 的脚本。它并不完美,但到目前为止它适用于我的用例。
show tasks like '%';
SELECT concat('CREATE OR REPLACE TASK ',"name", chr(10)
,' warehouse = ', "warehouse", chr(10)
, case when "predecessor" is null then concat(' ,schedule = ''', "schedule",'''', chr(10)) else '' end
,' ,STATEMENT_TIMEOUT_IN_SECONDS = 14400', chr(10)
,' ,comment = ''', "comment",'''', chr(10)
, case when "predecessor" is not null then concat('after ', "predecessor", chr(10)) else '' end
,'as', chr(10)
, "definition",';'
,chr(10),'alter task ',"name",' resume;') as T
FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));