Microsoft Docs

Azure Analysis Services

Azure Analysis Services Architecture

Introduction

Azure Analysis Services (AAS) is a fully managed Platform as a Service (PaaS) that provides enterprise-grade data modeling capabilities. It enables business analysts and data scientists to build semantic models that can aggregate and query large datasets with speed and efficiency. Understanding the architecture is crucial for designing, deploying, and managing effective BI solutions.

High-Level Architecture

Azure Analysis Services High-Level Architecture Diagram

Diagram illustrates common data sources, Azure Analysis Services, and client applications.

Key Components

The Azure Analysis Services architecture is built on several core components, both within the AAS service itself and in conjunction with other Azure services.

Analysis Services Engine

At the heart of the service is the powerful Analysis Services engine, which is derived from SQL Server Analysis Services Tabular and Multidimensional models. It handles:

  • Data storage in memory using VertiPaq technology.
  • Query processing and optimization.
  • Data modeling and semantic layer definition.
  • Role-based security and access control.

Metadata Repository

AAS maintains a metadata repository that stores the data model definition, including:

  • Tables, columns, relationships.
  • Measures and KPIs.
  • Dimensions and hierarchies.
  • Security roles.

Query Endpoint

Provides an OData endpoint for client applications to connect and query the data models. This endpoint supports various BI tools and custom applications.

Management and Monitoring

Azure portal, Azure Resource Manager (ARM) templates, and Azure Monitor provide interfaces for provisioning, configuring, scaling, and monitoring AAS resources.

Data Flow

The typical data flow in Azure Analysis Services involves the following stages:

  1. Data Ingestion: Data is imported from various sources (e.g., Azure SQL Database, Azure Data Lake Storage, on-premises databases) into the AAS model. This can be done using data integration tools like Azure Data Factory or directly through AAS tabular models.
  2. Data Modeling: Within AAS, data is structured into a semantic model. For Tabular models, this involves defining tables, relationships, measures using DAX (Data Analysis Expressions), and hierarchies. For Multidimensional models, it involves cubes, dimensions, and measures using MDX (Multidimensional Expressions).
  3. Data Storage: The data is stored in memory, optimized for fast querying. AAS uses the VertiPaq engine for highly compressed columnar storage.
  4. Query Execution: Client applications send queries (DAX or MDX) to the AAS query endpoint. The AAS engine processes these queries against the in-memory data.
  5. Result Delivery: The results are returned to the client application for visualization and analysis.

Data Refresh: Data in AAS can be refreshed on demand or scheduled to ensure that users are working with the most up-to-date information.

Connectivity

Azure Analysis Services supports a wide range of client connectivity options:

  • Power BI: DirectQuery or Import modes for interactive dashboards and reports.
  • Excel: Connecting via PivotTables and PivotCharts.
  • SQL Server Management Studio (SSMS): For model management and querying.
  • Visual Studio with Analysis Services Projects: For developing and deploying models.
  • Third-party BI tools: Tableau, Qlik, and others.
  • Custom Applications: Using ADOMD.NET, AMO, or OLE DB providers.

Connectivity is secured using Azure Active Directory (Azure AD) for authentication and role-based access control for authorization.

Scalability and Performance

Azure Analysis Services offers robust scalability and performance features:

  • Pricing Tiers: Different tiers (Developer, Basic, Standard, Premium) offer varying levels of performance, capacity, and features.
  • Scaling: Resources can be scaled up or out to meet demand. Scale-up involves increasing the CPU and memory of existing instances, while scale-out involves adding read-scale replicas.
  • Query Performance: The VertiPaq engine, columnar storage, and in-memory caching ensure rapid query responses.
  • Partitioning: Large models can be partitioned to improve manageability and query performance.

Integration with Azure Services

AAS is designed to integrate seamlessly with other Azure services:

  • Azure SQL Database / Azure Synapse Analytics: Common sources for analytical data.
  • Azure Data Lake Storage: For staging large datasets.
  • Azure Data Factory: For orchestrating data pipelines and refreshes.
  • Azure Active Directory (Azure AD): For authentication and authorization.
  • Azure Monitor: For performance monitoring and diagnostics.
  • Azure Virtual Network (VNet): For secure network access.