我需要使用Polybase将外部数据(在Blob存储中)加载到我的Azure数据仓库。我在使用Classic Azure Storage时工作正常。
最近,我必须更新我们的存储到ARM,我无法弄清楚如何在ARM存储上设置防火墙规则到我的Azure数据仓库。如果我将防火墙设置为"所有网络"一切都无缝地工作。但是,我不能让blob大开。
我尝试使用nslookup查找Azure数据仓库的出站IP,并将值放入存储的防火墙中;我得到了#34;此请求无权执行此操作。"错误
有没有办法可以找到Azure数据仓库的IP地址?或者我应该使用不同的方法来使它工作?
任何建议都表示赞赏。
凯文
答案 0 :(得分:0)
在1.1创建凭据一节中,它声明:
如果您将本教程用作加载自己数据的模板,请不要跳过此步骤。要通过凭据访问数据,请使用以下脚本创建数据库范围的凭据,然后在定义数据源的位置时使用它。
-- A: Create a master key.
-- Only necessary if one does not already exist.
-- Required to encrypt the credential secret in the next step.
CREATE MASTER KEY;
-- B: Create a database scoped credential
-- IDENTITY: Provide any string, it is not used for authentication to Azure storage.
-- SECRET: Provide your Azure storage account key.
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH
IDENTITY = 'user',
SECRET = '<azure_storage_account_key>'
;
-- C: Create an external data source
-- TYPE: HADOOP - PolyBase uses Hadoop APIs to access data in Azure blob storage.
-- LOCATION: Provide Azure storage account name and blob container name.
-- CREDENTIAL: Provide the credential created in the previous step.
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = HADOOP,
LOCATION = 'wasbs://<blob_container_name>@<azure_storage_account_name>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
修改 :(通过使用SAS从ADW访问Blob的其他方式):
您还可以使用共享访问签名创建存储链接服务。它为数据工厂提供对存储中所有/特定资源(blob /容器)的限制/时间限制访问。
共享访问签名提供对存储帐户中资源的委派访问权限。您可以使用共享访问签名在指定时间内向客户端授予对存储帐户中对象的有限权限。您无需共享帐户访问密钥。共享访问签名是一个URI,在其查询参数中包含对存储资源进行身份验证访问所需的所有信息。要使用共享访问签名访问存储资源,客户端只需要将共享访问签名传递给适当的构造函数或方法。有关共享访问签名的详细信息,请参阅共享访问签名:了解共享访问签名模型。 可以找到完整文档http://guides.rubyonrails.org/routing.html#non-resourceful-routes