我有三个关于Azure机器学习服务的问题。如果您能给我一些指导或相关参考,我将不胜感激。
(1) 关于机器学习计算的结果,我可以将其导出到Azure的SQL数据仓库吗?格式会是什么样的?我可以将结果与SQL DB中已存在的表进行关联吗?具体的流程是什么?
我已经搜索了相关信息[部署Web服务],并找到了一个类似的问题。然而,对于Web服务与Azure SQL数据仓库之间的关系,我感到有些困惑。
(2) 如果我需要从外部源(例如:来自某些外部LPO服务)获取机器学习结果,我如何从外部源连接它?
(3) 如果我需要从外部源连接到Azure SQL数据仓库,只需设置防火墙并提供服务器地址、ID和密码,然后我就可以从外部源连接了吗?
期待您的回复和反馈。
回答:
让我尝试回答您的问题。
(1) 为了将您的机器学习输出写入到Azure SQL数据仓库,您可以使用“导出数据”模块(以前称为“写入器”模块)。选择Azure SQL数据库选项,并输入您的连接字符串和凭据以连接到数据仓库。由于SQL数据仓库底层是SQL DB,它们的连接字符串格式是相同的。我建议您仅在执行批处理时才将数据写入数据仓库。推荐的方法是不将数据流式传输到Azure SQL数据仓库,因为它不是一个事务存储,而是一个分析存储。因此,只有在使用批处理执行来评分您的数据时,才从AzureML将数据写入数据仓库。如果您使用的是请求/响应方法,我建议您将数据写入SQL DB,然后使用Azure数据工厂将数据写入SQL数据仓库(这样甚至可以在仓库不使用时暂停它,从而为您节省费用)。
(2) 您能详细说明一下吗?您到底想做什么?如果您试图将外部数据引入Azure ML,有多种方法可以做到这一点。
(a) AzureML原生支持通过HTTP加载的RSS数据_feed和Web URL。
(b) 或者,您可以使用Azure数据工厂或Azure函数将数据加载到Azure Blob存储,然后从那里将数据导入到AzureML(AzureML原生支持连接到Blob存储)
(3) 是的,如果该服务不是Azure中一级支持的PaaS服务,您需要在服务能够与您的数据仓库通信之前,将服务的IP地址列入白名单(这是出于安全原因)。为了以编程方式做到这一点,我会首先在Azure Active Directory中创建一个服务主体,然后使用服务主体的凭据来认证Azure。这是帮助您为外部应用程序创建服务主体的链接:https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/。
一旦认证,您可以使用此链接帮助您以编程方式添加IP地址:https://azure.microsoft.com/en-us/documentation/articles/sql-database-firewall-configure/#programmatically-managing-firewall-rules有REST API文档可以帮助您开始。为了保持数据库的安全性,我建议您为您的应用程序分配一个静态IP地址,并手动将IP地址列入白名单,从而确保没有未经授权的访问。
希望这对您有帮助!如果您有任何问题,请告诉我!