【问题标题】:using variables to create tasks in snowflake使用变量在雪花中创建任务
【发布时间】:2021-12-23 12:41:38
【问题描述】:

我想在雪花中创建任务时使用变量。例如下面:

  • 改为:

创建或替换任务 BEAST_DSC_SBX.DSC_STG.DTCI_DSC_R2O_AVAIL_INCREMENTAL_TRUNCATE WAREHOUSE = 'BEAST_DSC_ADHOC_WH_SBX' SCHEDULE = '10 MINUTE' 当 SYSTEM$STREAM_HAS_DATA('BEAST_DSC_SBX.KAFKA.DTCI_DSC_R2O_AVAIL_CHANGES') = True 作为 TRUNCATE TABLE BEAST_DSC_SBX.DSC_STG.DTCI_DSC_R2O_AVAIL_INCREMENTAL;

  • 我想用这个:

SET STG_SCHEMA_NAME = 'BEAST_DSC_SBX.DSC_STG'; SET KAFKA_SCHEMA_NAME = 'BEAST_DSC_SBX.KAFKA';

创建或替换任务 $STG_SCHEMA_NAME.DTCI_DSC_R2O_AVAIL_INCREMENTAL_TRUNCATE WAREHOUSE = $WAREHOUSE SCHEDULE = '10 MINUTE' 当 SYSTEM$STREAM_HAS_DATA($KAFKA_SCHEMA_NAME'.DTCI_DSC_R2O_AVAIL_CHANGES') = True 作为 截断表 $STG_SCHEMA_NAME.DTCI_DSC_R2O_AVAIL_INCREMENTAL;

执行上述操作时出现错误。甚至可以改变雪花任务吗?如果是,怎么做?

【问题讨论】:

  • 您可以尝试使用INDENTIFIER($MY_VARIABLE) 将变量包装在create 语句中。如果这不起作用,您可以使用存储过程使用动态名称创建它们。

标签: snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

您无法在 Snowflake UI 中同时使用文本和变量来创建任务名称。这行不通。

解决方法是使用 SnowSQL 并使用这种格式:

&{<variable>}_<TEXT>

请以这篇知识库文章为例:https://community.snowflake.com/s/article/How-to-use-variable-when-creating-user-account-in-Snowflake-UI-and-SnowSQL

在上面的知识库文章中,我们展示了您可以像这样在 SnowSQL 中组合文本和变量:

 create USER &{DIV}_LOCAL_&{ENV}_ADMIN`
    PASSWORD = '&passwd'
    LOGIN_NAME = '&{DIV}_LOCAL_&{ENV}_ADMIN'
    COMMENT = "&DIV &ENV local account admin user"
    DISPLAY_NAME = '&{DIV}_LOCAL_&{ENV}_ADMIN'
    FIRST_NAME = '&{DIV}_LOCAL_&{ENV}_ADMIN'
    LAST_NAME = '&{DIV}_LOCAL_&{ENV}_ADMIN'
    EMAIL = 'test@test.com'
    MUST_CHANGE_PASSWORD = TRUE;

上面的例子是创建一个用户,你可以采用SQL语句创建一个任务。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多