您如何在 Snowflake 中获取任务的 DDL?
How do you get DDL of a task in Snowflake?
在 Snowflake 中,您可以像这样使用 get_ddl 函数来获取表、视图和过程的 ddl:
select get_ddl('view', 'SOME_VIEW_I_CREATED')
但是你似乎不能用任务来做到这一点。
有什么方法可以轻松获取snowflake任务的DDL吗?
注意:雪花中的任务现在支持 get_ddl。
注意:这是一个旧答案。 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()));
至少从 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)
在 Snowflake 中,您可以像这样使用 get_ddl 函数来获取表、视图和过程的 ddl:
select get_ddl('view', 'SOME_VIEW_I_CREATED')
但是你似乎不能用任务来做到这一点。
有什么方法可以轻松获取snowflake任务的DDL吗?
注意:雪花中的任务现在支持 get_ddl。
注意:这是一个旧答案。 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()));
至少从 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)