You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-3
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ Though Power BI Desktop appears to work well, the Power BI website has a pretty
40
40
41
41
#### ResumeAzureAS
42
42
43
-
The ResumeAzureAS.json file contains an Azure Data Factory v2 pipeline which is able to resume Azure AS looping until the resume is complete. It uses only Web Activities. There are no dependencies on .NET custom activities or Azure Logic Apps or SSIS.
43
+
The ADFv2/ResumeAzureAS.json file contains an Azure Data Factory v2 pipeline which is able to resume Azure AS looping until the resume is complete. It uses only Web Activities. There are no dependencies on .NET custom activities or Azure Logic Apps or SSIS.
44
44
45
45
Set the following parameters upon execution of the pipeline:
46
46
***TenantID** - The GUID identifier for your Azure Active Directory (AAD) tenant. In the Azure Portal go to the Azure Active Directory tab and the Properties tab and copy the Directory ID property.
@@ -55,19 +55,39 @@ The AAD application must be granted contribute permissions in the Access Control
55
55
56
56
#### ProcessAzureAS
57
57
58
-
The ProcessAzureAS.json file (along with dsHttpApiAzureASRefreshes.json and lsHttpApiAzureAS.json files) show how to perform a full refresh of the data inside an Azure Analysis Services model. Unlike other solutions which leverage external services like Azure Logic Apps or custom ADF .NET activities running in Azure Batch, this approach uses only built-in activities which depend on no external services other than Azure Analysis Services.
58
+
The ADFv2/ProcessAzureAS.json file (along with ADFv2/dsHttpApiAzureASRefreshes.json and ADFv2/lsHttpApiAzureAS.json files) show how to perform a full refresh of the data inside an Azure Analysis Services model. Unlike other solutions which leverage external services like Azure Logic Apps or custom ADF .NET activities running in Azure Batch, this approach uses only built-in activities which depend on no external services other than Azure Analysis Services.
59
59
60
60
Set the following parameters upon execution of the pipeline:
61
61
***TenantID** - The GUID identifier for your Azure Active Directory (AAD) tenant. In the Azure Portal go to the Azure Active Directory tab and the Properties tab and copy the Directory ID property.
62
62
***ClientID** - The GUID identifier for the AAD application (sometimes called service principal). The ClientID is sometimes called the ApplicationID. In the Azure Portal go to the Azure Active Directory tab, the App Registrations tab, if you don't see the application in question, choose All apps from the dropdown. Click the application in question and copy the Application ID from the app's blade. If you haven't created the app yet, then follow these [instructions](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal).
63
63
***ClientSecret** - The secret key used to authenticate the AAD application. See these [instructions](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal) for how to create the app and the key.
64
64
***SubscriptionID** - The GUID identifier for the subscription the Azure Analysis Services instance is running from. To get this ID, go to the Subscriptions tab of the Azure Portal.
65
-
***Region** - The name of the region (e.g. southcentralus) the Azure Analysis Services instance lives. This region is used as the beginning of the asazure:// server name for your server.
65
+
***Region** - The name of the region (e.g. southcentralus) where the Azure Analysis Services instance lives. This region is used as the beginning of the asazure:// server name for your server.
66
66
***Server** - The name of your Azure Analysis Services instance. This is not the full asazure:// URI. This is just the final section saying the name of your server.
67
67
***DatabaseName** - The name of the database in Azure Analysis Services you wish to process.
68
68
69
69
The AAD application must have admin permissions in SSAS. This is not accomplished through the Azure portal but through SQL Server Management Studio as described [here](https://azure.microsoft.com/en-us/blog/automation-of-azure-analysis-services-with-service-principals-and-powershell/).
70
70
71
+
72
+
#### LinkedServer
73
+
74
+
Connecting to Azure Analysis Services with a SQL Server linked server enables a number of scenarios:
75
+
76
+
* Loading into SQL Server the results from a DMV (dynamic management view) to extract lists of measures or tables
77
+
* Loading into SQL Server the results from a MDX or DAX query
78
+
* Executing TMSL commands to refresh the data in Azure Analysis Services models
79
+
80
+
The "LinkedServer/SQL Linked Server to Azure Analysis Services.sql" file shows an example of the linked server setup and how to use it.
81
+
82
+
83
+
#### SSIS
84
+
85
+
If your ETL is orchestrated in SQL Server Integration Services, it is only natural to refresh your Azure Analysis Services models using SSIS. We prefer C# script tasks for cube processing over the Analysis Services Processing command because the Analysis Services Processing command hardcodes the SSAS database at design time while the C# code can process the database identified in the connection string such that runtime configuration can cause it to process a different database.
86
+
87
+
***SSIS/ProcessAzureAS-UsernamePassword.dtsx** - An SSIS package which authenticates using a username and password (which does not have multi-factor auth enabled) and performs a full refresh of the model. This package uses a C# script task. Follow the instructions in the annotation once you open the SSIS package.
88
+
***SSIS/ProcessAzureAS-App.dtsx** - An SSIS package which authenticates using an AAD application (ClientID and secret). This package uses a C# script task. Follow the instructions in the annotation once you open the SSIS package.
89
+
90
+
71
91
### Proposing Changes
72
92
73
93
Enhancements to code or documentation are welcome. Create a pull request.
<SSIS:PropertySSIS:Name="Description">Should be in the following form: Data Source=asazure://southcentralus.asazure.windows.net/servernamehere;User ID=app:{clientID};Initial Catalog=DatabaseHere;Provider=MSOLAP;Persist Security Info=True; Impersonation Level=Impersonate;Password={ClientSecretBase64Here}</SSIS:Property>
<SSIS:PropertySSIS:Name="Description">Should be in the following form: Data Source=asazure://southcentralus.asazure.windows.net/servernamehere;User ID=user@domain.com;Initial Catalog=DatabaseHere;Provider=MSOLAP;Persist Security Info=True; Impersonation Level=Impersonate;Password=PasswordHere</SSIS:Property>
0 commit comments