Showing posts with label Azure Analysis Services. Show all posts
Showing posts with label Azure Analysis Services. Show all posts

Friday, May 04, 2018

Feedbacks and Enhancements to Azure Functions for Azure Analysis Services

I am happy to report that after I released the Azure Functions to perform operations on Azure Analysis Services early March 2018 (as my first GitHub projects), it has been tried out and used in several places and I have received lots of feedback.

Based on that I have been able to make several fixes and enhancements to solution including integration with Azure Data Factory.

Today, I added a more significant feature which the client can specify multiple tables to be processed in a single request in synchronous or asynchronous manner.

Thanks to suggestion to one of the users, it made the change quite easy.

Endpoints For Multiple Table Process

The new signature for processing table is:

GET /ProcessTabularModel/{Database}/tables/{tableList}

GET /ProcessTabularModel/{Database}/tables/{tableList}/async


Example:
https://azf-processtabularmodel.azurewebsites.net/ProcessTabularModel/AdventureWorks/tables/DimAccount, DimProduct?code=vxdmfmm45esfau3ddjffd


https://azf-processtabularmodel.azurewebsites.net/ProcessTabularModel/AdventureWorks/tables/DimAccount, DimProduct/async?code=vxdmfmm45esfau3ddjffd


Looking forward to more users and feedback. The Github repo is available at - https://github.com/codepossible/AzFunctions-AASOperations


Saturday, March 10, 2018

Combining Analytics and Serverless - Azure Functions and Azure Analysis Services

The "Serverless" computing is one of the term catching lots of attention. Linked with the advent of microservices and cloud computing, serverless probably represent the smallest unit of pay-for-use consumption model, scale on demand and code to meet a well scoped and limited purpose.

AWS, Azure and Google all have their implementation of serverless computing with support for various languages and runtime.

As a practical application of the serverless computing paradigm, I had the opportunity to automate operations for an Analytics application built on Azure Analysis Services.

As part of building a quick turnaround reporting and analytics platform for multi-national beverage company, the tables in Azure Analysis Services (AAS) tabular model had to be processed as soon as the ingestion step was completed.

The limitation we ran into was that the orchestration engine used in this case was running on Linux and could not launch Microsoft Windows native executables.

So in comes, Azure Functions with HTTP triggers to the rescue, which allow processing of the tabular model - tables and partitions on demand. Additionally automate creating and merging of partitions as the business requirement demanded.

There are other examples of a similar approach being taken, but they use Timer triggers to perform the operations. (Orsolya Gal's Azure Blog, SqlDusty) or have HTTP Triggers with specific example (Ust Oldfield's Blog)

I believe, this Azure Function App code is more comprehensive and flexible combining the approaches above and has been production tested.

It would be quite useful for developers who find themselves in this situation, so I decided to open source the foundational code which can used to build more complex operations.


The project is titled - Azure Function App for Azure Analysis Services Tabular Model Operations.


Find the source code on GitHub.

Feel free to download, fork and comment. Looking forward to hear back from the community.