#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
, чтобы получить самые последние поступившие файлы. Он будет автоматически отслеживать новые файлы и файлы, которые он уже проглотил, если вы запускаете обновление не реже одного раза в неделю. Вы можете включить это в задачу, чтобы убедиться, что это происходит не реже одного раза в неделю, а затем вы можете делать это по требованию при загрузке новых файлов.