Есть ли какое-то влияние на производительность в Snowflake при использовании интеграции стадии + хранилища против прямой интеграции хранилища для загрузки / выгрузки данных? - PullRequest
0 голосов
/ 27 марта 2020

Если у меня есть интеграция хранилища AWS S3 и этап, указывающий на этот этап:

create stage my_stage
  storage_integration = my_storage_integration
  url = 's3://mybucket/'
  ;

Есть ли разница в производительности между этими двумя командами:

COPY INTO ... from 's3://mybucket/myfile.csv' storage_integration=my_storage_integration;
COPY INTO ... FROM '@my_stage/myfile.csv';

В общем, есть ли разница в обработке между использованием этапа и интеграцией хранилища?

1 Ответ

0 голосов
/ 27 марта 2020

В соответствии с архитектурой нашего решения Snowflake, интеграция хранилища предназначена только для того, чтобы не хранить AWS ключ доступа и секретный ключ в Snowflake. Он не оказывает никакого влияния на производительность .

Таким образом, вместо этого имеется этап S3 со встроенными AWS ключами доступа и секретным ключом. Вы можете указать этап S3 на интеграцию хранилища. Интеграция хранилища не имеет AWS учетных данных / секретов как таковых. Вы предоставляете ARN роли IAM в своей учетной записи AWS с доступом к корзинам S3, из которых вы хотите загрузить / выгрузить. Затем интеграция с хранилищем предоставляет пользователю arn типа «снежинка» и внешний идентификатор, который можно использовать для установки доверительных отношений между ролью в вашей учетной записи и этим пользователем «снежинки».

Затем при доступе к этапу «Снежинка» будет примите роль aws в вашей учетной записи и, следовательно, получите доступ к корзине S3 без необходимости предоставления учетных данных aws.

...