Ошибка в задаче Snowflake cron? (Не могу сделать это для каждого x-го дня месяца)

#snowflake-cloud-data-platform

Вопрос:

Я считаю, что в планировании задач с использованием задания cron есть серьезный недостаток — поправьте меня, если я ошибаюсь или что-то упускаю:

Совершенно нормально, если запланировано на день месяца до желаемого дня будущих месяцев (сегодня 5-е, и я могу запланировать задание на 6-е каждое число или любой параметр дня между 5 и 12)

 CREATE OR REPLACE TASK MYTASK
 WAREHOUSE= XXX
 SCHEDULE = 'USING CRON 1 17 6 * * Asia/Kuala_Lumpur'
AS CALL SP_ALL_OPS();


ALTER TASK MYTASK RESUME;


select * from table(information_schema.task_history(task_name=>'MYTASK')) WHERE STATE = 'SCHEDULED';
 

Не нормально, если запланировано на день месяца до желаемого дня будущих месяцев (сегодня 5-е число, и я НЕ МОГУ планировать выполнение задачи на 1-е число каждого месяца). ЧТОБЫ ДОБАВИТЬ: задача может выполняться только в день с 5 по 12 (ровно 1 неделя). Числа, выходящие за пределы этого диапазона, вообще не могут быть использованы (СТРАННОЕ ПОВЕДЕНИЕ @@)

 CREATE OR REPLACE TASK MYTASK
 WAREHOUSE= XXX
 SCHEDULE = 'USING CRON 1 17 1 * * Asia/Kuala_Lumpur'
AS CALL SP_ALL_OPS();


ALTER TASK MYTASK RESUME;


select * from table(information_schema.task_history(task_name=>'MYTASK')) WHERE STATE = 'SCHEDULED';
 

Я сделал что-нибудь не так? Дайте мне знать, если для этого есть решение. В такой ситуации я могу планировать задачу только на 1-е число месяца и запускать нужную задачу при первом запуске? Это вообще не имеет смысла, поскольку типичное задание cron для Linux-машины ведет себя иначе. Не смог найти решение в Интернете — так что, если кто-нибудь сможет пролить свет на это, это будет полезно.

ИЗМЕНИТЬ: «Не в порядке» здесь, потому что, когда я запускаю задачу выше, она не показывает, была ли задача «запланирована». Хорошо, что указано, что запрос может только «возвращать активность задачи в течение последних 7 дней или следующее запланированное выполнение в течение следующих 8 дней».

Комментарии:

1. Когда вы говорите, что НЕ МОЖЕТЕ запланировать , вы получаете какую-либо ошибку или это просто не работает?

2. @Sergiu, я не уверен, что задача была запущена. Просто это основано на task_history — он не найден как «запущен»

Ответ №1:

Дело не в планировании задачи. Если вы выполните следующую команду, вы сможете увидеть задачу, и ее состояние будет «ЗАПУЩЕНО», что означает, что она запланирована.

 SHOW TASKS LIKE 'MYTASK';
 

Речь идет о функции information_schema.task_history:

https://docs.snowflake.com/en/sql-reference/functions/task_history.html#usage-notes

Эта функция может возвращать все выполнения, выполненные за последние 7 дней, или следующее запланированное выполнение в течение следующих 8 дней.

Комментарии:

1. Привет, когда я запускал это шоу задач — я вообще не мог видеть свою задачу. Нужно ли мне указывать схему, хранилище или что-то еще?

2. Нет, вам не нужно указывать схему. Пока вы находитесь в одной и той же базе данных, вы должны иметь возможность перечислять их. А для задач в других базах данных вы можете использовать «ПОКАЗЫВАТЬ ЗАДАЧИ В ИМЯ_ДАННЫХ БАЗЫ ДАННЫХ».

3. Попался — я понял, что вы имели в виду — так что технически «история задач» будет показывать только задачи, которые будут выполняться в ближайшие 7/8 дней, но в разделе «показать задачи» будут показаны все задачи, которые были запланированы. Итак, если я настрою его на запуск в 1-й день месяца, технически говоря, я могу запустить «task_history» 25-го числа этого месяца, и я смогу увидеть запланированную задачу? Я прав? Несколько нелогично для такого расположения.

4. В этом случае, пожалуйста, также отметьте ответ как правильный 🙂

5. Привет, если подумать об этом. Я могу смириться с тем фактом, что task_history может показывать только запланированные задачи, которые будут выполняться с 5-го по 12-е число следующего месяца (учитывая, что я планирую задачу сегодня на 5-е число), но интуитивно понятно не показывать запланированную задачу, которая будет выполняться 1-го числа следующего месяца. Мне как бы интересно, какова цель такого дизайна в snowflake для функции task_history. Спрашиваю с точки зрения дизайна этой функции….в любом случае спасибо за ваше объяснение до сих пор.