Snowflake Task выполнялась каждую минуту часа

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

Моя текущая задача создана с использованием синтаксиса ниже -

CREATE OR REPLACE TASK "DB"."SCHEMA"."SAMPLE_TASK"
  WAREHOUSE = SAMPLE_WAREHOUSE
  SCHEDULE = 'USING CRON * 12 * * * UTC'
  TIMESTAMP_INPUT_FORMAT = 'YYYY-MM-DD HH24'
AS
  CREATE OR REPLACE "DB"."SCHEMA"."EMP"
  AS 
  SELECT * FROM "DB"."SCHEMA"."EMP_STAGE";

Я работаю в CST, и, когда UTC было -7 часов, ожидалось, что моя задача будет выполняться в 5 утра, что и произошло. Я подтвердил, что используя "TASK_HISTORY" в INFORMATION_SCHEMA -

SELECT * FROM TABLE(DB.INFORMATION_SCHEMA.TASK_HISTORY()) WHERE NAME = 'SAMPLE_TASK';

Но он также выполнялся еще 59 раз за каждую минуту оставшегося часа до 6.

  • Начальная временная метка QueryID - 2020-07-02 05:00:00.000 -0700
  • Окончательная временная метка QueryID - 2020-07-02 05:59:00.000 -0700

Я что-нибудь упустил?

Спасибо за чтение, любая помощь приветствуется.

-Sri

2 ответа

Решение

Синтаксис CRON вашей задачи запрашивает, указав* для его минутного (первого) компонента задача должна выполняться каждую минуту в течение 12-го часа дня (т.е. 60 раз в день, все в 12-й час).

Исходя из вашего описания, вместо этого вы ищете следующее:

SCHEDULE = 'ИСПОЛЬЗОВАНИЕ CRON 0 12 * * * UTC'

Это будет выполняться только один раз в 12.00 UTC каждый день.

Использование таких инструментов, как https://crontab.guru/ или CRON tester, может помочь проверить ваши расписания CRON, прежде чем вы внедряете их в свои задачи Snowflake.

Расписание находится в формате cron, и у вас есть * для минуты, поэтому он будет запускаться каждую минуту в течение этого часа.

Подробную информацию о формате cron можно найти на многих страницах в Интернете. Один из примеров заключается в следующем, обратите внимание, что первым "параметром" в формате cron является минута:

https://support.acquia.com/hc/en-us/articles/360004224494-Cron-time-string-format

Я рекомендую перестроить эту задачу со значением ноль или единицей для этой первой *.

Надеюсь, это поможет... Рич

Другие вопросы по тегам