Возобновление задач: невозможно обновить график с помощью задачи root * XXXX *, поскольку эта задача root не приостановлена - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь построить некоторые задачи для автоматизации некоторых моих процессов. Я включил код для моих задач, которые успешно выполняются и проверены вручную, он дает правильный конечный результат. Также, пожалуйста, прости меня за отсутствие SQL этикета, только что начал работать с БД и действительно изучал SQL около месяца go.

Вот команды возобновления для задач. Первый работает нормально, а остальные три - нет.

alter task create_hubspot_mql_yesterday_table resume;
alter task create_pega_mql_yesterday_table resume;
alter task create_hubspot_pega_diff_yesterday_table resume;
alter task suspendwarehouse3 resume;

Я получаю следующую ошибку: Невозможно обновить график с root task XXXX , так как что задача root не приостановлена.

-- task 1: creates the hubspot mql yesterday report from hubspot data
create or replace task create_hubspot_mql_yesterday_table
    warehouse = pc_fivetran_wh
    schedule = 'USING CRON 0 6-20 * * MON-FRI America/Denver'
  as create or replace table myfirstdatabase.hubspot.hubspot_mql_yesterday
  as select * from pc_fivetran_db.hubspot.contact where PROPERTY_HS_LIFECYCLESTAGE_MARKETINGQUALIFIEDLEAD_DATE < current_date 
    and PROPERTY_HS_LIFECYCLESTAGE_MARKETINGQUALIFIEDLEAD_DATE > current_date - INTERVAL '1 d';

-- task 2: creates the pega mql yesterday report from pega lead data
create or replace task create_pega_mql_yesterday_table
    warehouse = pc_fivetran_wh
    after create_hubspot_mql_yesterday_table
  as create or replace table myfirstdatabase.hubspot.pega_mql_yesterday
  as select * from myfirstdatabase.public.pega_leads where BECAMEAMQLDATE <= current_date + INTERVAL '7 h'
    and BECAMEAMQLDATE >= current_date - INTERVAL '1 d';

-- task 3: full outer join to determine differnce in id's between hubspot and pega tables
create or replace task create_hubspot_pega_diff_yesterday_table
    warehouse = pc_fivetran_wh
    after create_pega_mql_yesterday_table
  as create or replace table myfirstdatabase.hubspot.hubspot_pega_mql_yesterday_delta
  as select 
        myfirstdatabase.hubspot.hubspot_mql_yesterday.id as hubspot_contact_id,
        myfirstdatabase.hubspot.pega_mql_yesterday.hubspotcontactid as pega_hubspot_contact_id
    from myfirstdatabase.hubspot.hubspot_mql_yesterday
    full outer join myfirstdatabase.hubspot.pega_mql_yesterday
        on myfirstdatabase.hubspot.hubspot_mql_yesterday.id = myfirstdatabase.hubspot.pega_mql_yesterday.hubspotcontactid
    where myfirstdatabase.hubspot.hubspot_mql_yesterday.id is null or myfirstdatabase.hubspot.pega_mql_yesterday.hubspotcontactid is null;

-- task 4: suspend the warehouse after the chain of tasks 
create or replace task suspendwarehouse3
    warehouse = pc_fivetran_wh
    after create_hubspot_pega_diff_yesterday_table
  as
    alter warehouse compute_wh suspend;

При создании задач они успешно выполняются.

Когда я запускаю команду show tasks:

show tasks in pc_fivetran_db.hubspot;

Это то, что я получаю. enter image description here

Я ценю любую помощь или совет, как исправить эту ошибку.

Ответы [ 2 ]

1 голос
/ 16 января 2020

В снежинке вы не можете возобновить родительскую задачу перед дочерними задачами. Всегда возобновляйте задачи перед родительской задачей. Возобновление дочерних задач перед родительской задачей не вызывает проблем, поскольку они зависят от его родителя.

1 голос
/ 11 января 2020

Ваши дочерние задачи с именами create_pega_mql_yesterday_table и create_hubspot_pega_diff_yesterday_table выполняют операторы DDL.

В соответствии с задачами Snowflake Документация для параметра AFTER, вам, вероятно, придется приостановить * Задача 1012 *, прежде чем вы сможете запустить их или использовать эквивалентный оператор без DDL:

Выполнение команд DDL для любой задачи в дереве задач требует приостановки задачи root. Если задача root в настоящее время возобновлена, команда возвращает ошибку пользователя.

...