фабрика данных теряет разрешения при копировании из озера данных (gen1) в хранилище BLOB-объектов - PullRequest
0 голосов
/ 26 сентября 2019

Фабрика данных выдает мне эту ошибку при попытке копирования из озера данных gen1 в хранилище больших двоичных объектов:

"message": "Failure happened on 'Sink' side. ErrorCode=UserErrorFailedFileOperation,
'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Upload file failed at
 path myblobcontainer\\file_that_im_tryin_to_copy.xml.,Source=Microsoft.DataTransfer.Common,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to read a 'AzureDataLakeStore' file. File path: 'SourceFolderInDataLake/2019/09/26/SomeOtherFile.usql'.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (403) Forbidden.

У меня есть действие U-SQL Script, которое будет выполняться 1-Patient.usql: enter image description here

enter image description here

Следующее действие - шаг copy data:

enter image description here

Источник

enter image description here

Мойка

enter image description here

Я настроил роли / разрешения, используя этот учебник .

Я могу решить эту проблему, перейдя на Data Explorer --> Access:

enter image description here

Затем я нажимаю Advanced:

enter image description here

После нажатия на Apply to all children копирование работает нормально!

enter image description here

Обратите внимание, что до до действия Copy Data, фабрика данных выполняет сценарий usql внутри gen1.Скрипт хранится в gen1 и генерирует файлы внутри озера данных, а также папки. Никогда не возникает проблем с разрешениями при запуске этого скрипта.

Что я делаю не так?

1 Ответ

1 голос
/ 27 сентября 2019

Я могу воспроизвести вашу проблему.На самом деле Apply folder permissions to sub-folders не является необходимым.Проблема должна быть вызвана контролем доступа к озеру данных gen1, ключом к проблеме является порядок, в котором файлы загружаются и устанавливаются разрешения.

Вы можете проверить Контроль доступа в Azure Data.Сначала выберите Lake Storage Gen1 и обратитесь к информации ниже, на которой был основан мой тест.

Полагаю, вы добавили права доступа, указанные ниже, в корень /.

enter image description here

Если ваш файл уже существует до установки разрешения, это будет зависеть от операции, то есть будет установлен доступ к файлу,вы можете получить доступ к файлу.

Но если вы загрузите файл или создадите новую папку после установки разрешения, к папке и файлу не будет доступа, вы не сможетеполучить доступ к ним.Вы можете выбрать файл, нажать Access для прямой проверки.

После установки вышеуказанного разрешения, затем, если вы установите A default permission entry, это не повлияет на существующие папки и файлы, но если вы создадитеновые папки и файлы, вы получите доступ ко всем из них.то есть старая папка и файл по-прежнему не имеют доступа, новые будут иметь доступ.Если вы хотите получить доступ к старым, просто добавьте разрешения, как на скриншоте, Apply folder permissions to sub-folders - та же логика.

Итак, в заключение, если вы хотите, чтобы ваш сервис-участник / MSI-доступвсе файлы в вашем озере данных, вы можете добавить третий вариант An access permission entry and a default permission entry, тогда вы сможете получить доступ как к существующим, так и к новым папкам / файлам.

...