如何在Snowflake中获取任务的DDL?

时间:2019-12-20 01:03:16

标签: snowflake-data-warehouse snowflake-task

在Snowflake中,您可以使用像这样的get_ddl函数来获取表,视图和过程的ddl:

select get_ddl('view', 'SOME_VIEW_I_CREATED')

但是看来您无法通过任务来做到这一点。

有什么方法可以轻松获取雪花任务的DDL吗?

注意:雪花任务中现在支持get_ddl。

2 个答案:

答案 0 :(得分:0)

注意:这是一个旧答案。 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()));

答案 1 :(得分:0)

截至2019年12月24日(当我发现它时),您现在可以执行以下操作:

import 'package:flutter/material.dart';

class ClassicCouponScreen extends StatelessWidget {
  ThemeData _themeData = ThemeData(
      scaffoldBackgroundColor: Colors.red,
      textTheme: TextTheme(
          body1: TextStyle(color: Colors.blue) // These settings aren't applied, it doesn't work
      )
  );

  @override
  Widget build(BuildContext context) {
    return Theme(
      data: _themeData,
      child: Scaffold(
        body: SafeArea(
          child: Container(
            padding: EdgeInsets.all(16.0),
            child: Column(
              children: [
                Text('Test', style: _themeData.textTheme.body1,) // Here is the problem. Instead of settings defined in upper ThemeData, settings from theme.dart are applied.
              ],
            ),
          ),
        ),
      ),
    );
  }
}

要运行此程序,您必须具有以下权限:

select get_ddl('task', 'demo_task')