我们正在尝试将数据从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"
}
}
}
创建管道后,似乎正在发生数据移动。但是我们收到了这个错误
复制活动遇到用户错误: 错误码= UserErrorAdlsUnauthorizedAccess,'类型= Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=该 要求'Azure Data Lake Store'是 未经授权的源= Microsoft.DataTransfer.ClientLibrary, '' 类型= System.Net.WebException,消息=该 远程服务器返回错误:(403)Forbidden。,Source = System,'
从这个错误中,我们似乎有未经授权的请求。但如上所述,我们正确授权Azure Data Lake商店链接服务。
任何人都可以告诉我们,这个错误的可能情况是什么,以及我们需要在这里做些什么。
答案 0 :(得分:1)
您能否确认您获得授权信息的用户是否已被允许访问相应的Data Lake Store帐户?
https://azure.microsoft.com/en-us/documentation/articles/data-lake-store-secure-data/
详情请见上述链接。这是三步过程。所以,确保你已经完成了所有这些。
谢谢, 萨钦
Azure Data Lake项目经理
答案 1 :(得分:0)
我们解决这个问题的方法是通过选中“所有用户和组”旁边的三个框来打开访问权限:
我创建了所有数据工厂和数据湖商店资产作为所有者,但仍然获得了您所做的授权错误。唯一的区别是我的数据工厂与Data Lake Store的订阅不同。我不认为这应该是重要的,因为我是同一个微软登录的两个订阅的管理员,并且是Data Lake Store的所有者...可能有一个更集中的方式来做到这一点,但AAD的东西在接受的答案对我不起作用......在此之前,这将有效。
答案 2 :(得分:0)
您需要在根级别设置递归执行权限,以便对目录结构下的文件执行操作。这在图像中更容易解释。请参阅 -