我们正在尝试将数据从Azure Table Storage移至Azure Data Lake . 所以我们创建了一个数据工厂(带有链接服务,数据集和管道) . Pipline是使用“复制操作”创建的 .
其中一个链接服务我们选择“Azure Data Lake Store”,我们授权配置,最终配置如下
{
"name": "XXXXXStoreLinkedService",
"properties": {
"description": "",
"hubName": "XXXXXXdatafactory_hub",
"type": "AzureDataLakeStore",
"typeProperties": {
"dataLakeStoreUri": "https://XXXXXX.azuredatalakestore.net/webhdfs/v1",
"authorization": "**********",
"sessionId": "**********",
"subscriptionId": "XXXXXXXXXXXXXXXXXXX",
"resourceGroupName": "XXXXXXXXXXXXXXX"
}
}
}
创建管道后,似乎正在发生数据移动 . 但是我们收到了这个错误
复制活动遇到用户错误:ErrorCode = UserErrorAdlsUnauthorizedAccess,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =对'Azure Data Lake Store'的请求未经授权,Source = Microsoft.DataTransfer.ClientLibrary,''Type = System.Net.WebException,Message =远程服务器返回错误:(403)Forbidden . ,Source = System,'
从这个错误,似乎我们有未经授权的请求 . 但如上所述,我们正确授权Azure Data Lake商店链接服务 .
任何人都可以告诉我们,这个错误的可能情况是什么,以及我们需要在这里做些什么 .
3 回答
您需要在根级别设置递归执行权限,以便对目录结构下的文件执行操作 . 这在图像中更容易解释 . 请参阅 -
https://azure.microsoft.com/en-gb/documentation/articles/data-lake-store-access-control/#common-scenarios-related-to-permissions
您能否确认您获得授权信息的用户是否已被允许访问相应的Data Lake Store帐户?
https://azure.microsoft.com/en-us/documentation/articles/data-lake-store-secure-data/
有关详情,请参阅以上链接 . 这是三步过程 . 所以,确保你已经完成了所有这些 .
谢谢,萨钦
Azure Data Lake项目经理
我们解决这个问题的方法是通过选中“所有用户和组”旁边的三个框来打开访问权限:
我创建了所有数据工厂和数据湖商店资产作为所有者,但仍然获得了您所做的授权错误 . 唯一的区别是我的数据工厂与Data Lake Store的订阅不同 . 我不认为这应该是重要的,因为我是同一个微软登录的两个订阅的管理员,并且是Data Lake Store的所有者...可能有一个更集中的方式来做到这一点,但AAD的东西在接受的答案对我不起作用......直到那时这才有效 .