Не удается скопировать данные из Snowflake в большой двоичный объект Azure

#azure-data-factory #snowflake-cloud-data-platform #azure-blob-storage #azure-container-service

#azure-data-factory #snowflake-cloud-data-platform #azure-blob-хранилище #azure-container-service

Вопрос:

Я пытаюсь скопировать данные из Snowflake в большой двоичный объект Azure, используя фабрику данных Azure.

Роль, которую я использую, имеет права выбора в таблице, и у меня нет проблем с запросом данных с помощью консоли Snowflake.

Я также могу копировать в целевой большой двоичный объект из других источников (в Azure), используя тот же токен SAS.

Это запрос, который у меня есть, сгенерированный Azure Data Factory (с опущенными спецификациями)

 COPY INTO 'azure://****.blob.core.windows.net/snowflake-stage/********-****-****-****-************/SnowflakeExportCopyCommand/'
FROM (select * from MYSCHEMA.MYTABLE)
CREDENTIALS = (AZURE_SAS_TOKEN = '****')
FILE_FORMAT = (type = CSV COMPRESSION = GZIP RECORD_DELIMITER = '
' FIELD_OPTIONALLY_ENCLOSED_BY = '"' ESCAPE = '\' NULL_IF = '')
HEADER = TRUE
SINGLE = FALSE
OVERWRITE = TRUE
MAX_FILE_SIZE  = 268435456
 

И это ошибка, которую я получаю:

Код ошибки=UserErrorOdbcOperationFailed,’Тип=Microsoft.dataTransfer.Common.Общий доступ.Исключение HybridDeliveryException, сообщение = ОШИБКА [42501] Не удалось получить доступ к удаленному файлу: доступ запрещен.

Пожалуйста, проверьте свои учетные данные, источник =Microsoft.dataTransfer.Runtime.GenericOdbcConnectors,»Type=System.Data.Odbc.OdbcException, сообщение = ОШИБКА [42501] Не удалось получить доступ к удаленному файлу: доступ запрещен. Пожалуйста, проверьте свои учетные данные, источник = Snowflake,’

Есть ли еще разрешения Snowflake, которые мне нужны для выполнения такого копирования? Или, возможно, это проблема с разрешениями на запись в контейнер Azure?

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

1. Является ли snowflake-stage в вашем URL-адресе именем этапа или именем контейнера?

2. Вы уверены, что используемый вами токен имеет доступ на запись в контейнер?

3. @AbhiReddy это имя контейнера.

4. @MikeWalton да. Похоже, это связано с доступом к контейнеру, а не с проблемой на стороне Snowflake. Я отметил «решение» в ответе.

Ответ №1:

«Решение» для этого указывает на вероятную ошибку в разрешениях для самого большого двоичного объекта.

Переключение разрешений контейнера на общедоступные, а затем обратно на частные снова устраняет проблему.