Запуск задачи «Снежинка» при передаче данных на стадию «Снежинка»

#snowflake-cloud-data-platform

Вопрос:

У меня есть 1 внутренняя стадия snowflake, на которой я передаю данные файлов json через snowsql. Затем я выполню несколько запросов, используя пользовательский интерфейс snowflake. В настоящее время все это вручную, можем ли мы в любом случае запустить задачу snowflake, когда я помещаю данные на сцену?

Ответ №1:

Нет никакого способа запустить задачу «Снежинка», только запланировать ее. Однако вы можете запретить выполнение задачи по определенному расписанию в зависимости от условия. Прямо сейчас единственное условие, которое поддерживается, — это SYSTEM$STREAM_HAS_DATA:

https://docs.snowflake.com/en/sql-reference/functions/system_stream_has_data.html

В любом случае, вам не нужны задачи для автоматизации этого конвейера. Использование потоков и задач — это больше, чем требуется для этого потока. Если этап снежинки является внешним (S3, Большой двоичный объект Azure, хранилище GCP, а не внутренняя стадия Снежинки), вы можете использовать Snowpipe для копирования вновь поступающих файлов в таблицу.

https://docs.snowflake.com/en/user-guide/data-load-snowpipe.html

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

1. спасибо за комментарий. Но у меня есть внутренняя стадия, что мы можем сделать в этом сценарии?

2. Snowflake поддерживает внутренние этапы с помощью Snowpipe, но не поддерживает автоматическое поглощение. Вам нужно будет запустить alter pipe mypipe refresh , чтобы получить самые последние поступившие файлы. Он будет автоматически отслеживать новые файлы и файлы, которые он уже проглотил, если вы запускаете обновление не реже одного раза в неделю. Вы можете включить это в задачу, чтобы убедиться, что это происходит не реже одного раза в неделю, а затем вы можете делать это по требованию при загрузке новых файлов.