2
votes

I have three problems relating to Azure machine learning service. I am appreciate if you can give me some directions or related reference.

(1) Regarding the result of the computation of machine learning, can I export it to the SQL Data Warehouse in Azure ? What the format will be ? Can I join the result with the existed table in SQL DB ? What the exact process will be ?

I have searched for related information [Deploy Web-Service], and found a similar issue. However, just a little confused about the relationship between web-service and Azure SQL Data Warehouse.

[Deploy Web-Service] https://azure.microsoft.com/en-us/documentation/articles/machine-learning-walkthrough-5-publish-web-service/

(2) If I need to get the result in machine learning from outer sources (ex: from some outer LPO service), how do I connect it from outer source ?

(3) If I need to connect to Azure SQL Data Warehouse from outer sources, is it correct that I only need to set the firewall and offer the server address, ID and PD , and then I can connect from outer source ?

Anticipating for your response and feedback.

1

1 Answers

2
votes

Let me try and answer your questions.

(1) In order for you to write your machine learning output to Azure SQL Data Warehouse, you could use a 'Export Data' module (previously known as 'Writer' module). Choose the Azure SQL Database option and enter your connection string and credentials to connect to the data warehouse. Since SQL Data Warehouse is SQL DB underneath the covers, they both have the same format for connection string. I would like caution you to only write data to Data Warehouse if you're performing Batch Execution. The recommended approach is to not stream data into Azure SQL Data Warehouse, since it is not a transactional store, but, rather an analytical store. So, write data to data warehouse from AzureML only if you use Batch Execution for scoring your data. If you're using the Request/Response method, I would encourage you to write your data to SQL DB and then use Azure Data Factory to write your data to SQL Data Warehouse (This even lets you pause your warehouse when it's not in use, thus saving you money).

(2) Can you please elaborate on this? What exactly are you trying to do here? If you're trying to bring external data into Azure ML, there are multiple ways of doing so.
       (a) AzureML natively supports RSS Data feed and Web URL via HTTP loads.
       (b) Alternatively, you could use Azure Data Factory or Azure Functions to load data into Azure Blob Storage and then import data into AzureML from there (AzureML natively supports connection to Blob Storage)

(3) Yes, if the service isn't a first-class support PaaS service in Azure, you need to whitelist the IP Address of the service before it can communicate with your Data Warehouse (This is done for security reasons). In order to programmatically do this, I would first create a Service Principle in Azure Active Directory and then use the Service Principle credentials to Authenticate with Azure. Here's a link to help you create a Service Principle for your external application: https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/.

Once authenticated, you can use this link to help you programmatically add the IP address: https://azure.microsoft.com/en-us/documentation/articles/sql-database-firewall-configure/#programmatically-managing-firewall-rules There is REST API documentation that might help you get started. In order to keep your database secure, I would give your application a static IP address and just manually whitelist the IP address, thus ensuring there isn't any unauthorized access.

I hope this helps! Please let me know if you have any questions!