Как я могу переместить файлы с локального файлового сервера (SFTP) прямо в Snowflake? - PullRequest
0 голосов
/ 03 мая 2019

Я хочу переместить файлы с нескольких файловых серверов (доступных через SFTP) в Snowflake напрямую, используя соединитель Python Snowflake.

Я рассмотрел использование фабрики данных (ADF) для загрузки файлов в хранилище BLOB-объектов, а затем для создания этапа Azure для перемещения данных в Snowflake.Однако мне любопытно посмотреть, есть ли способ сделать это, не сохраняя данные в хранилище больших двоичных объектов?Другими словами, могу ли я переместить файлы непосредственно в Snowflake, не сохраняя их ранее в другом месте?Я не вижу способа сделать это в ADF без сохранения в хранилище BLOB-объектов, и документация Snowflake указывает, что этапы можно создавать с помощью Azure / AWS или из локальной файловой системы, но это можно сделать для файлового сервера, к которому требуется доступчерез SFTP?Я работал над этим с соединителем Python, но все равно кажется, что данные должны быть сначала сохранены где-то еще (на локальном жестком диске или в хранилище больших двоичных объектов), прежде чем их можно будет поместить в Snowflake.

1 Ответ

2 голосов
/ 05 мая 2019

Предполагая, что вы хотите использовать механизмы массовой загрузки Snowflake (например, COPY целые файлы, а не INSERT отдельные строки), файл всегда должен в какой-то момент оказаться в хранилище BLOB-объектов.

  • вы можете переместить файлы из SFTP в хранилище BLOB-объектов самостоятельно, а затем использовать COPY в Snowflake
  • вы можете загрузить файлы в локальную файловую систему, а затем использовать команду PUT Snowflake, чтобы скопировать файлы в место размещения, а затем снова использовать COPY

Нет способа создать сцену, которая указала бы на SFTP.

Дополнительная информация здесь .

Примечание: теоретически вы могли бы получить данные из SFTP, например. в Python, а затем используйте INSERT для вставки строк через SQL. Тогда вы не используете сцену, но она более сложна и, безусловно, не стоит усилий.

...