Snowsql.exe запуск исполняемого файла занимает 23 секунды — лучший способ загрузить сотни файлов?

#snowflake-cloud-data-platform

#snowflake-cloud-data-platform

Вопрос:

Я только начал использовать snowsql.exe чтобы ВЫВЕСТИ файлы parquet на сцену, и я пытаюсь ускорить работу, но сталкиваюсь с трудностями с производительностью.

Я заметил, что snowsql.exe медленно что-либо делает — просто выполнение «—help» занимает 23 секунды. Я использую powershell для перебора папок и РАЗМЕЩЕНИЯ всех файлов, которые я нахожу на этапе, и удаления при получении ЗАГРУЖЕННОГО сообщения. Однако, учитывая даже 100 файлов, это займет количество файлов, которые мне нужно будет делать ежедневно, это не будет масштабироваться.

Выражение вызова выглядит примерно так:

 c:progra~1snowfl~1snowsql.exe --config c:my_config -c my_conn -q "PUT 'file://my/file/name.parquet' @MY.STAGE/path AUTO_COMPRESS = FALSE OVERWRITE = TRUE"
 

Мои мысли:

  1. перейдите на python и используйте модуль py для РАЗМЕЩЕНИЯ файлов, надеясь, что это быстрее, чем вызов snowsql.exe .
  2. измените сценарий powershell, чтобы создать серию инструкций PUT в виде файла, затем используйте «-f» и запустите пакет. Мне нужно будет сделать еще немного синтаксического анализа, чтобы убедиться, что каждый файл был правильно загружен перед удалением, но это не имеет большого значения.
  3. ???

Любая помощь приветствуется. Написание этого дало мне идеи, но я решил спросить, почему snowsql работает так медленно с самого начала. Спасибо!

Ответ №1:

Snowsql — это самораспаковывающийся двоичный файл, который распаковывается при каждом запуске. Там есть некоторая задержка, и в зависимости от скорости ввода-вывода загрузка может занять несколько секунд.

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

 %USERPROFILE%.snowsql1.2.10snowsql 
 

Где 1.2.10 — это версия, которую вы используете в данный момент.

Обратите внимание, что при запуске таким образом Snowsql не будет проверять наличие обновлений.