Microsoft AZ-104 - Microsoft Azure Administrator - Azure Data Concepts
Azure Data Concepts Overview
The diagram shows how day-to-day business transactions become data for reporting and analysis, and where three common data roles contribute.

OLTP versus OLAP
OLTP and OLAP describe workload patterns, rather than two exclusive categories of database products. A database platform can support both, although systems are often optimized for one.
Characteristic | OLTP — Online Transaction Processing | OLAP — Online Analytical Processing |
Purpose | Run business operations. | Analyze data and support decisions. |
Example | Record an order or update inventory. | Calculate sales trends over several years. |
Operations | Many short reads, inserts, updates, and deletes. | Complex queries and aggregations across large datasets. |
Data | Primarily current operational records. | Often historical data combined from multiple sources. |
Design | Often normalized to reduce duplication and maintain consistency. | Often uses dimensional models, such as fact and dimension tables. |
Priority | Fast, reliable transactions and concurrency. | Efficient analysis of large amounts of data. |
OLAP is read-heavy, not necessarily read-only: analytical systems still load, transform, and update data. Relational databases can support both transactional and analytical workloads.
ACID transactions
Transactional databases commonly provide ACID guarantees:
Atomicity: A transaction completes entirely or is rolled back.
Consistency: A transaction preserves defined database rules.
Isolation: Concurrent transactions interact according to the configured isolation level.
Durability: Committed changes survive failures within the system’s durability guarantees.
For example, transferring money should debit one account and credit another as one transaction, rather than completing only half the operation.
How the data moves
A data pipeline extracts operational data, cleans or transforms it, and makes it available for analytics:
ETL: Extract → Transform → Load.
ELT: Extract → Load → Transform.
This can separate demanding analytical queries from the database serving live application transactions.
Who does what?
Role | Typical responsibilities |
Database administrator (DBA) | Database deployment, permissions, performance tuning, backup, recovery, and availability. |
Data engineer | Data ingestion, integration, transformation, pipeline reliability, and preparation of analytical datasets. |
Data analyst | Explore data, build analytical models, identify trends, and communicate findings through reports and dashboards. |
Responsibilities overlap; these roles are not restricted to the single stage shown in the diagram.
Microsoft technology examples
A solution might use Azure SQL Database for transactions, Azure Data Factory for pipelines, Azure Synapse Analytics for analytical processing, and Power BI for reporting. These illustrate possible roles in a solution, rather than a required product combination.
Review tip: OLTP answers “What transaction is happening?” OLAP answers “What patterns can we learn from the data?”
Data Pipeline Drill down - Data Arrival
Data arrival is the entry point to a data pipeline. Data can arrive in batches or as a continuing stream of events. Either approach can feed transformations, storage, analytics, or automated actions.
The diagram also shows actions, such as initiating an alert workflow. An action is an additional use of processed results, rather than another letter in ETL.

ETL: Extract, Transform, Load
Stage | What happens | Example |
Extract / ingest | Collect data from its source. | Read sales records, receive device messages, or discover new files. |
Transform | Clean, filter, enrich, or aggregate the data. | Standardize timestamps or calculate average temperature. |
Load | Write the results to a destination. | Store processed data in a data lake or database. |
Batch versus streaming arrival
Characteristic | Streaming | |
Arrival pattern | Data collected into groups or files. | Events arrive continuously or frequently. |
Processing | Scheduled or triggered processing of a bounded dataset. | Ongoing processing as events become available. |
Typical use | Nightly sales imports or periodic historical analysis. | Device monitoring, fraud detection, or operational telemetry. |
Latency | Includes waiting for the next processing run. | Usually lower latency, subject to windows, buffering, and destination behavior. |
A file in Blob Storage can support either pattern. Its storage location does not determine whether the pipeline is batch or streaming.
How Azure Stream Analytics processes arriving data
Azure Stream Analytics is a managed stream-processing service built around inputs, a query, and outputs. Supported stream inputs include Event Hubs, IoT Hub, Blob Storage, and Azure Data Lake Storage Gen2. IoT Hub receives device messages; Event Hubs ingests event streams; storage inputs let jobs process supported data arriving in files.
A Stream Analytics query can:
Filter events, for example, retain only readings above a threshold.
Transform fields or calculate new values.
Aggregate over time windows, for example, calculate each device’s average temperature every minute.
Enrich events by joining them with reference data, such as device locations or configured thresholds. Microsoft Learn
What can happen to the results?
Destination or action | Example |
Data lake storage | Write processed results as files in ADLS Gen2 for later analysis. |
Database | Store results in a supported database output for application queries. |
Downstream processing | Send results to Event Hubs, Service Bus, or an Azure Function. |
Alert workflow | A Function or downstream consumer sends a notification or starts a response. |
Stream Analytics can produce records that represent alert conditions, but email, Teams notifications, and response actions require downstream logic. Multiple configured outputs let the same job support storage and operational actions.
Example: Sensors send temperature readings to IoT Hub. Stream Analytics calculates a one-minute average for each sensor, writes the averages to ADLS Gen2, and sends threshold breaches to Service Bus. A downstream application consumes those messages and notifies an operator.
Timing matters: An event’s creation time can differ from its arrival time. Configure event timestamps and late-arrival/out-of-order policies so delayed messages are handled appropriately. Window duration and these policies affect when results become available.
ETL Data Pipeline
In this ETL design, Azure Synapse Analytics is the final analytical warehouse destination. More specifically, prepared data is loaded into a Synapse dedicated SQL pool for SQL analysis and reporting.

Phase | Service | What happens |
Extract / ingest | Azure Data Factory | Collects data from sources and copies it into a landing area. |
Transform | Azure Databricks | Cleans, joins, standardizes, and aggregates the data. |
Load | Synapse dedicated SQL pool | Stores prepared data in analytical warehouse tables. |
Consume | Power BI or applications | Queries the warehouse to produce reports and insights. |
1. Extract data from the sources
The reference shows Azure Data Explorer (ADX) holding logs or telemetry, alongside other data sources. Azure Data Factory can retrieve ADX data using a KQL query and copy the results to storage. ADX is a separate service from the retired Synapse Data Explorer preview feature.
2. Land and transform the data
Data Factory copies source data into Azure Data Lake Storage Gen2. Azure Databricks reads those raw files, performs transformations, and writes curated files back to the lake.
For example, it could remove duplicate events, standardize timestamps, join device records with location information, and calculate hourly totals. The raw and curated areas can be different folders or containers; they do not necessarily require separate storage accounts.
3. Load prepared data into Synapse
The curated files are then loaded into tables in the dedicated SQL pool. Loading options include the T-SQL COPY statement and PolyBase, including through appropriately configured Data Factory copy activities.
Direction matters: for this load operation, data moves from ADLS Gen2 into Synapse, rather than from Synapse into the lake. PolyBase is a data-access/loading capability, not a separate storage destination.
4. Query the warehouse
Power BI or another application queries the warehouse, for example, to compare event volumes by location or analyze historical trends. Data Factory can orchestrate the overall sequence, ensuring that transformation completes before the warehouse load begins.
The diagram’s dashed lines represent orchestration, while solid lines represent data movement. The warehouse-load step can be orchestrated by Data Factory even though the dashed line is visually routed through the transformation stage.
Key distinction: Synapse is shown in the Load phase for this particular architecture. The broader Synapse product also includes pipelines and Spark capabilities, so it can participate in ingestion and transformation in other designs.
Extract data from the sources
A data pipeline is iterative: loading data into storage is often the beginning of further processing. The same retained data can be transformed repeatedly as business rules, analytical questions, and applications change.
The diagram separates data movement—solid arrows—from orchestration, shown with dashed arrows.

1. Extract and land the data
Azure Data Factory can copy data from sources such as databases, files, and log stores into a raw landing area in Azure Data Lake Storage Gen2.
Retaining an appropriately protected source copy lets you reprocess historical data without repeatedly extracting it from the original system. Retention, access controls, and privacy requirements determine what you should preserve and for how long.
2. Transform and store usable datasets
A transformation activity reads the landed data, performs operations such as cleaning, joining, deduplication, or aggregation, and writes a prepared dataset.
Data Factory can orchestrate Databricks notebooks, Spark processing, SQL activities, or mapping data flows. Mapping data flows provide transformations executed on managed Spark compute.
3. Reuse and transform again
A curated dataset can become the source for another pipeline. Alternatively, a new pipeline can return to retained raw data when earlier transformations removed details needed for a new use case.
For example:
Iteration | Input | Result |
Initial preparation | Raw sales transactions | Cleaned, standardized sales records. |
Reporting | Cleaned sales records | Daily revenue totals by store. |
Future analysis | Detailed sales records plus customer data | Customer purchasing trends. |
Revised business rules | Retained raw transactions | Recalculated historical results. |
The diagram’s curved reuse arrow represents further processing—not an automatic transformation performed by storage.
Azure Data Factory coordinates the process
A pipeline groups activities into an executable workflow. Data Factory can:
Start runs on a schedule, in response to a supported event, or on demand.
Define dependencies, for example, transform only after ingestion succeeds.
Pass parameters such as dates, source names, or destination paths.
Run branches, loops, and parallel activities.
Apply configured retries and follow success or failure paths.
Monitor activity status and pipeline runs.
Data Factory manages the workflow; connected storage retains the data, while the selected processing service executes the transformation.
ETL versus ELT: When raw data is loaded into the lake before transformation, that part follows Extract → Load → Transform (ELT). The prepared result might then be loaded into a Synapse warehouse. A larger solution can therefore combine ETL and ELT patterns.
Practical design point: Make reruns safe. Use techniques such as deduplication, partition replacement, or upserts so retrying a pipeline does not accidentally duplicate data.
Drill down into transforming data with trasnformations and azure databricks
Transformation turns collected data into usable datasets. Typical operations include removing duplicates, correcting formats, joining sources, calculating totals, and enriching records with business context.
The diagram shows alternative processing options, rather than services that must run in sequence. Each can read input data and produce prepared output; Azure Data Factory can coordinate the workflow.

Option | What it provides | When it fits |
Azure Databricks | A managed data platform built around Apache Spark and additional SQL, pipeline, and analytics capabilities. | Complex transformations, large datasets, lakehouse processing, streaming, and machine-learning preparation. |
Azure HDInsight | Managed clusters for supported open-source frameworks, including Spark, Hive, and Hadoop. | Workloads that depend on a particular Hadoop ecosystem or cluster configuration. |
Synapse Spark or SQL | Spark notebooks and SQL processing within a Synapse workspace. | Transformations integrated with an existing Synapse analytics solution. |
Mapping Data Flows | Visually designed transformations in Data Factory or Synapse pipelines, executed on managed Spark compute. | Teams that prefer a visual approach to joins, filters, aggregations, and other transformations. |
Mapping Data Flows still use a processing engine; they do not simply execute within the pipeline’s orchestration layer.
Azure Databricks in more detail
Databricks lets teams implement transformations using tools such as SQL and Python/PySpark. Distributed processing divides work across compute resources, helping process datasets that would be impractical on one machine.
For example, a Databricks job could:
Read raw transaction files from ADLS Gen2.
Standardize dates and remove duplicate records.
Join transactions with customer information.
Write detailed cleaned records and daily summaries back to storage.
Databricks supports managed compute and autoscaling options, but scaling behavior depends on the selected compute and workload configuration. It also has its own pipeline and job-orchestration capabilities; Data Factory is an integration option, not a prerequisite.
Where Azure Data Factory fits
Data Factory can start the selected transformation activity, pass parameters, wait for completion, and continue to the next step or follow an error-handling path. The transformation runs on the relevant processing service.
For example: copy files → run a Databricks notebook → validate results → load prepared data into Synapse.
Clarifying the HDInsight reference
Spark/Hive/Hadoop support processing, Kafka supports event streaming, and HBase provides a distributed database. They are not interchangeable transformation engines. Current HDInsight documentation lists supported cluster types; the sketch’s older Storm reference should not be assumed to represent a currently available option.
The transformed data can remain in the lake for reuse, feed another transformation, or be loaded into an analytical warehouse for reporting.
Load prepared data - Azure Synapse
Azure Synapse Analytics brings data integration, transformation, and analytical querying into one workspace. It helps turn arriving data into prepared datasets, warehouse tables, and reports.

Where Synapse fits
Component | Role in the pipeline |
Synapse Pipelines | Copy data, schedule processing, and orchestrate activities such as Spark notebooks and SQL operations. |
Apache Spark pools | Clean, transform, and enrich large datasets; support data preparation and machine-learning processing. |
Serverless SQL pool | Query supported files in the data lake using SQL without first loading them into dedicated warehouse tables. |
Dedicated SQL pool | Provide provisioned, distributed SQL compute and warehouse tables for analytical workloads. |
Synapse Studio | Provide a web interface for developing, managing, and monitoring these capabilities. |
These components can be combined, but every solution does not need all of them.
How a typical pipeline works
Data arrives: Operational databases, uploaded files, or events previously landed by services such as Stream Analytics provide source data.
Ingest: Synapse Pipelines copies the data into Azure Data Lake Storage Gen2 (ADLS Gen2).
Transform: A pipeline starts Spark or SQL processing to clean records, standardize formats, and calculate useful values.
Analyze: Serverless SQL queries the lake files directly, or curated data is loaded into a dedicated SQL pool.
Consume: Power BI or another application queries the prepared data to produce reports and insights.
For example, daily sales files could land in ADLS Gen2, be cleaned by Spark, and then support SQL queries calculating revenue by store.
Synapse and the data lake serve different purposes
ADLS Gen2 stores files. Synapse provides processing and analytical capabilities that work with those files. Dedicated SQL pools also maintain their own warehouse table storage; their data is not simply the same thing as the workspace’s lake files.
Serverless SQL can query supported lake data without copying it into a dedicated pool. Dedicated SQL supports loading data into warehouse tables for repeated analytical queries. Both SQL options can serve reporting tools, the diagram’s reporting arrows should be read as representing those two alternatives.
Compute and storage are managed separately
Dedicated SQL: Compute can be scaled, paused, and resumed. Pausing retains stored data and associated storage charges.
Spark: Automatic pausing can release idle compute while files remain in storage.
Serverless SQL: Uses on-demand query processing rather than a dedicated compute pool that you manually pause.
Pausing compute does not mean deleting data or eliminating every charge.
Update to the reference: Synapse Data Explorer pools (Preview) retired on October 7, 2025. They are therefore omitted from the new diagram. Microsoft’s migration guidance points to Eventhouse in Microsoft Fabric for that capability; this retirement does not mean that all of Synapse Analytics retired.
Working with Data - Power BI
Power BI is the analysis and presentation layer that helps people turn prepared data into decisions. In the illustrated pipeline, Data Factory ingests data, Databricks transforms it, and Synapse provides analytical data that Power BI presents through models, calculations, and interactive reports.

This is one possible architecture; Power BI can connect to many other sources.
The main analytical questions
Analysis type | Question | Example | How Power BI helps |
Descriptive | What happened? | Revenue decreased by 8% last month. | Summarizes results using charts, measures, trends, and KPIs. |
Diagnostic | Why did it happen? | Did one region or product account for the decline? | Supports filtering, drill-down, comparisons, and exploration of contributing factors. |
Predictive | What might happen next? | What revenue should we expect next month? | Presents forecasts or prediction results from suitable analytical models. |
Prescriptive | What should we do? | Which action best improves revenue within our budget? | Helps compare scenarios, recommendations, costs, and constraints. |
Cognitive / AI-assisted | What patterns or meaning can we infer? | What themes appear in customer feedback? | Can present AI-derived classifications, summaries, and insights. |
These are analytical approaches, not five mandatory processing stages. “Cognitive analytics” is a broader AI-related term, rather than simply another name for drawing conclusions.
How Power BI works with the data
A semantic model organizes tables, relationships, and business calculations, for example, revenue, profit margin, or year-over-year growth. Interactive reports then let users explore those measures through visualizations, filters, and drill-through pages.
For a supported Synapse SQL connection, Power BI can use:
Import: Copy data into the model and refresh it to obtain updates.
DirectQuery: Send queries to the source as users interact with reports. Performance and freshness depend on the source, connectivity, and report configuration. Microsoft Learn
From insight to a decision
An analyst might first identify declining sales, investigate where the decline occurred, review a forecast, and compare possible responses. Power BI makes that evidence easier to explore and communicate.
Advanced forecasting, optimization, and AI interpretation may require models or services outside Power BI. Diagnostic patterns also do not automatically prove causation. People should assess data quality, assumptions, uncertainty, and business context before acting.
The connecting arrows in the diagram show related analytical perspectives, not a required sequence from diagnostic analysis to every other type.
Azure SQL
Azure SQL offers three main deployment choices: SQL Server on Azure VMs, Azure SQL Managed Instance, and Azure SQL Database. The primary decision is how much infrastructure control you need versus how much management you want Azure to handle.

Deployment option | What you receive | Typical use case |
SQL Server on Azure VMs | A SQL Server instance on a VM, with control over the guest OS and database engine. | Applications requiring OS access, specific SQL Server configurations, or additional installed software. |
Azure SQL Managed Instance | A managed SQL instance supporting multiple databases and many SQL Server instance-level capabilities. | Migrating existing SQL Server applications while reducing infrastructure administration. |
Azure SQL Database | Managed databases, deployed individually or in elastic pools. | Applications that need database-level services without managing an entire SQL Server instance. |
With the two PaaS options, Azure manages the underlying OS, engine patching, and built-in platform availability. Customers still manage their data, permissions, application design, and recovery requirements. SQL Server on VMs provides greater control but leaves more operational responsibility with the customer.
Azure SQL Managed Instance
Managed Instance integrates with a VNet and provides high SQL Server compatibility, including support for many instance-level features. However, the reference’s “100% compatible” wording is too absolute: assess the application’s required features before migration. Its principal service tiers are General Purpose and Business Critical.
Azure SQL Database: keep the choices separate
The reference combines several different configuration decisions:
Decision | Options | Meaning |
Deployment | Single database or elastic pool | Allocate resources to one database or share a resource budget across databases. |
Purchasing model | vCore or DTU | Choose how resources and performance are packaged and priced. |
vCore service tier | General Purpose, Business Critical, Hyperscale | Select the architecture and capabilities appropriate to the workload. |
DTU service tier | Basic, Standard, Premium | Select a bundled compute, memory, and I/O performance level. |
Compute model | Provisioned or serverless, where supported | Use allocated compute or automatic compute scaling within configured limits. |
Standard is not another name for General Purpose, and Premium is not another name for Business Critical. They belong to different purchasing models. \\
An elastic pool is useful when multiple databases have varying demand: they share pool resources rather than each requiring capacity sized for its individual peak.
Serverless is a compute option, not a separate database product or a synonym for an elastic pool. It is supported in eligible General Purpose and Hyperscale configurations; automatic pause behavior depends on the configuration.
Hyperscale is a service tier within Azure SQL Database. Its architecture separates compute and storage to support large databases and flexible scaling. It is not a fourth top-level Azure SQL deployment option.
Availability and regional recovery
Built-in high availability protects against certain infrastructure failures. Cross-region disaster recovery requires additional configuration:
SQL Database: Active geo-replication or failover groups, as appropriate.
Managed Instance: Failover groups for instance-level regional recovery.
SQL Server on VMs: Configure suitable SQL Server and Azure availability/recovery technologies.
Geo-replication is generally asynchronous, so a forced regional failover can lose changes that have not reached the secondary. Replication also does not replace backups.
Review tip: Need OS control → SQL Server on VMs. Need a managed SQL instance with broad compatibility → Managed Instance. Need managed individual databases or shared elastic pools → SQL Database.
Other types of Azure SQL databases
Azure supports open-source relational databases, including PostgreSQL and MySQL, alongside the Microsoft SQL Server–based Azure SQL services.
The diagram contrasts managed PaaS services with self-managed databases on Azure VMs. These are alternative deployment approaches, the downward arrows do not represent required migration or data flow.

Database engine | Managed Azure option | Main consideration |
PostgreSQL | Azure Database for PostgreSQL Flexible Server | PostgreSQL applications, supported extensions, and configurable compute, storage, and availability. |
MySQL | Azure Database for MySQL Flexible Server | MySQL applications with managed maintenance, backups, and configurable availability. |
MariaDB | The former Azure Database for MariaDB service has retired. | Consider a self-managed deployment or assess a compatible migration target. |
Any of these engines | Self-managed on Azure VMs | Greater OS and engine control, with greater operational responsibility. |
PostgreSQL Flexible Server
Azure manages the underlying infrastructure while you configure database access, supported extensions, sizing, networking, and availability.
For workloads requiring horizontal distribution, elastic clusters bring Citus-based sharding to PostgreSQL Flexible Server. Sharding distributes data across nodes; it differs from increasing the size of one server.
The reference’s older “Hyperscale (Citus)” terminology should not be confused with Azure SQL Database Hyperscale. Its successor branding, Azure Cosmos DB for PostgreSQL, is now on a retirement path and is not recommended for new projects; Microsoft points to PostgreSQL elastic clusters for migration.
MySQL Flexible Server
MySQL Flexible Server offers compute tiers such as Burstable, General Purpose, and Memory-Optimized. Supported configurations provide stop/start controls and high availability with automatic failover.
These features have restrictions: for example, high availability is not supported in the Burstable tier, and stop/start is restricted with read-replica configurations. Stopping compute does not eliminate retained storage charges.
Updates to the older reference
PostgreSQL Single Server has retired; use Flexible Server for current managed deployments.
MySQL Single Server has retired; Flexible Server is the current managed offering.
Azure Database for MariaDB has retired. MariaDB itself can still be deployed and managed on Azure infrastructure. Migration to MySQL requires compatibility testing rather than assuming the engines are interchangeable. Microsoft Learn
SQL command categories in the supporting images
These databases use SQL, but syntax and supported commands vary by engine.
Category | Purpose | Common examples |
DDL — Data Definition Language | Define or modify database structures. | CREATE, ALTER, DROP |
DML — Data Manipulation Language | Insert or change stored records. | INSERT, UPDATE, DELETE |
DQL — Data Query Language | Retrieve records; often treated as part of DML. | SELECT |
DCL — Data Control Language | Manage database privileges. | GRANT, REVOKE |
Review tip: Choose Flexible Server when you want Azure to manage the database infrastructure. Choose Azure VMs when requirements demand OS access or engine customization unavailable in the managed service.
Non structured daat storage
Azure offers different services for unstructured files and queryable NoSQL data.

Data requirement | Azure option | Example |
Store files and objects | Azure Blob Storage | Images, videos, PDFs, and raw log files. |
Store files for large-scale analytics | Azure Data Lake Storage Gen2 | Raw and curated datasets used by Spark or analytical pipelines. |
Query flexible application records | Azure Cosmos DB | Product documents, key-value entities, or graph relationships. |
Blob Storage is optimized for large amounts of unstructured data. ADLS Gen2 builds on Blob Storage with hierarchical namespace and data-lake capabilities; it can hold structured, semi-structured, and unstructured files.
Cosmos DB data models and APIs
The APIs in the reference provide different interfaces and data models:
Cosmos DB API | Data model | Typical example |
API for NoSQL — formerly SQL API | JSON documents | Products with different attributes. |
API for MongoDB, RU-based | Documents accessed through MongoDB-compatible interfaces | An application using MongoDB drivers. |
API for Apache Cassandra | Wide-column records | Partitioned event or time-series records. |
API for Table | Key-value entities with properties | Entity lookup using partition and row keys. |
API for Apache Gremlin | Graph vertices and edges | Relationships between people, accounts, or devices. |
These are API choices, not a promise that one database can be queried interchangeably through every API. Also, the API for NoSQL’s SQL-like query syntax does not make it a relational SQL Server database.
Request units and capacity
A request unit (RU) represents the normalized resources consumed by a database operation. Reading, writing, and querying have different RU costs, influenced by factors such as item size, indexing, and query complexity.
Capacity option | How it works |
Manual provisioned throughput | You configure an RU-per-second allocation. |
Autoscale provisioned throughput | Cosmos DB adjusts RU/s within the configured scaling range as demand changes. |
Serverless | You do not reserve RU/s; charges include the RUs consumed and stored data, subject to service limits. |
Autoscale is a form of provisioned throughput. Serverless is a separate consumption-based capacity model. A good partition key and efficient queries remain important with either approach.
Example: An application could store product photographs in Blob Storage and product metadata in Cosmos DB. Each product document contains fields such as price, category, and the photograph’s location. This avoids treating the database as a general-purpose file repository.
Naming update: The diagram’s MongoDB entry refers to the RU-based Cosmos DB offering. The former Azure Cosmos DB for MongoDB vCore offering is now named Azure DocumentDB and uses a different capacity model.
Azure tools to work with data
Choose the tool according to the task: administering a database, writing queries, managing files, transforming data, or presenting insights.
The diagram updates the original references and adds tools for working with Blob Storage and data lakes.

Tool | Primary purpose | Typical tasks |
SQL Server Management Studio (SSMS) | Detailed administration and development for Microsoft SQL database engines. | Run T-SQL, manage database objects and permissions, inspect execution plans, and investigate performance. |
VS Code with the MSSQL extension | SQL development in a cross-platform editor. | Connect to supported SQL endpoints, edit and execute T-SQL, and work with database projects. |
Azure Storage Explorer | Graphical access to Azure Storage data. | Browse containers and directories, upload/download files, and manage supported storage permissions. |
AzCopy | Command-line data transfer. | Copy or synchronize supported storage data in repeatable scripts. |
Synapse Studio | Develop and operate Synapse analytics workloads. | Run SQL scripts and Spark notebooks, build pipelines, and monitor execution. |
Databricks notebooks and SQL tools | Explore and transform data using distributed compute. | Clean and join lake data, run SQL, and develop analytical processing. |
Power BI | Business analysis and visualization. | Build semantic models, measures, interactive reports, and dashboards. |
Azure portal, CLI, and PowerShell | Configure and automate Azure resources. | Create services, configure networking, scale resources, and assign Azure roles. |
Database administration: SSMS
SSMS is a Windows application that connects to SQL Server, Azure SQL Database, Managed Instance, and supported Synapse SQL endpoints. Available management features depend on the connected service.
Two features in the reference need distinction:
Query Store is a database-engine feature that records query performance history; SSMS provides interfaces for investigating it where supported.
SQL Server Agent schedules jobs in SQL Server and Azure SQL Managed Instance. It is not available in Azure SQL Database; use alternatives such as Elastic Jobs or pipeline orchestration there. Microsoft Learn
Update: Azure Data Studio has retired
Azure Data Studio retired on February 28, 2026, and no longer receives updates or security fixes. Microsoft directs SQL development users toward VS Code with the MSSQL extension, while SSMS remains available for administration. The MSSQL extension targets Microsoft SQL engines; other database engines require appropriate clients or extensions.
Working with data lakes: files versus queries
Storage Explorer manages files and directories in ADLS Gen2; it is not a distributed SQL or Spark query engine. To analyze file contents at scale, use a processing service, for example, Synapse serverless SQL or Spark through Synapse or Databricks.
For example, you could upload Parquet files with Storage Explorer, query supported files through a Synapse SQL endpoint, and present the resulting analysis in Power BI.
Permissions still apply
A tool does not grant access by itself. Users need the relevant database permissions or storage data permissions, plus a working network path. Permission to manage an Azure resource does not automatically grant permission to read all its data.
Reference tip: SSMS → administer databases. VS Code → develop queries. Storage Explorer/AzCopy → manage files. Synapse/Databricks → process data. Power BI → communicate insights.
Azure functions
Azure Functions runs code in response to an event, such as an HTTP request, a scheduled time, a message, or a newly created blob. It is useful for focused processing and automation without managing the underlying servers.
How Azure Functions works

Component | Purpose |
Function App | Hosts one or more functions with shared application configuration and a chosen language runtime. |
Trigger | Starts an execution. Each function has one trigger. |
Function code | Performs the work: validate data, calculate values, call services, or respond to a request. |
Input/output bindings | Provide declarative integration with supported services. They are optional; code can also use SDKs or APIs. |
Hosting plan | Determines scaling behavior, resource allocation, pricing, and execution limits. |
Application Insights | Collects configured execution logs, failures, and performance telemetry. |
The trigger types in the diagram are alternatives, not multiple triggers attached to one function. If different event types must start similar work, separate functions can call shared application logic.
Functions can use serverless hosting such as Flex Consumption, or run on Premium, a Dedicated App Service plan, or supported Container Apps hosting. Scaling behavior depends on the hosting option; “serverless” does not mean that every plan scales or bills identically.
Event Grid routes notifications; Functions executes code. For example, Event Grid can deliver a storage event to a function. Other functions can instead be invoked directly by HTTP, timer, queue, or other supported triggers.
The supplied language-version table is historical. Choose a currently supported language/runtime combination when creating the Function App rather than reusing those older versions.
Azure Functions in ETL

The second diagram shows a file-driven pipeline:
A raw file arrives in Blob Storage or ADLS Gen2.
Event Grid delivers a BlobCreated notification to an Event Grid-triggered function.
The function reads the file using a binding or SDK, with appropriate permissions.
Code validates and transforms the contents—for example, standardizing timestamps, filtering records, or adding calculated fields.
Valid results are loaded into curated storage or a database.
Invalid records follow a configured error path, such as quarantine storage and a notification workflow.
Prepared data becomes input to Synapse, reporting, or another pipeline.
The event normally identifies the affected object; it does not contain the entire file. Receiving the notification also does not automatically grant permission to read that file.
Functions and Data Factory can work together
A Data Factory or Synapse pipeline can invoke an HTTP-triggered function through an Azure Function activity. This is useful for custom processing that does not fit a standard pipeline activity.
For long-running work, avoid holding an HTTP request open. Use an asynchronous pattern, such as queued work or Durable Functions, with a way to check completion. The documented HTTP response limit is approximately 230 seconds, independently of a longer function execution-time setting.
Reliability and workload fit
Handle duplicates safely: Retries or repeated event delivery must not produce duplicate business records. Use event identifiers, deterministic output names, or upserts as appropriate.
Monitor failures: Configure Application Insights and the retry/dead-letter behavior applicable to the trigger.
Match the processing engine to the job: Functions suits focused transformations and custom integration. Large distributed joins or extensive historical processing generally fit Spark, Databricks, or another analytical engine better. Microsoft Learn
Review tip: A trigger starts the function; bindings connect it to supported data sources and destinations; code performs the transformation.
Azure Functions and Static Azure web apps
Azure Static Web Apps hosts the frontend; Azure Functions provides server-side processing through an API. Together, they support an interactive application without requiring you to manage a traditional web server.

The diagram’s return arrow is simplified: the API response passes back through the Static Web Apps routing layer.
How a user request flows
Load the frontend. The browser downloads HTML, CSS, JavaScript, and images from Static Web Apps. Frameworks such as React or Angular can produce these frontend assets.
Request dynamic data. JavaScript calls an endpoint such as /api/products.
Execute server-side code. Static Web Apps routes the request to an HTTP-triggered Azure Function.
Access services. The function validates the request, applies business logic, and reads or writes authorized database or storage data.
Update the page. The response returns through Static Web Apps to the browser, typically as JSON.
Why “static” can still mean interactive
“Static” describes how the frontend files are hosted, not whether the application can change what users see. Browser-side JavaScript can call Functions to retrieve current information, submit forms, or perform calculations.
Responsibility | Service |
Deliver frontend assets | Azure Static Web Apps |
Run backend code and business logic | Azure Functions |
Retain application records or files | Database or storage service |
Build and publish code changes | GitHub Actions or Azure DevOps pipeline |
Static Web Apps supports geographically distributed static content and repository-based build and deployment workflows. This does not imply that every backend API is automatically replicated globally.
Managed Functions versus a linked Function App
Managed Functions: Deploy the frontend and API together. Static Web Apps manages the integrated Functions backend, subject to its supported features and restrictions.
Bring your own Functions: Link a separately managed Function App when you need capabilities beyond the managed integration. Availability depends on the Static Web Apps plan.
Routing and security
The integrated /api path presents the frontend and backend under the same site origin, avoiding custom CORS configuration for those calls. Direct calls to a different domain may still require CORS configuration.
Static Web Apps also supports authentication integrations and role-based route restrictions. Backend code must still validate inputs, enforce application-specific authorization, and protect access to data. Keep database credentials out of frontend JavaScript, which users can inspect.
Example: A product catalog loads its interface from Static Web Apps. The browser calls /api/products; a Function reads product records and returns JSON. The browser displays the results without connecting directly to the database.
Execution limit: Static Web Apps API requests have a documented maximum duration of 45 seconds. For longer processing, return promptly and use an asynchronous job pattern rather than keeping the API request open.
Azure Data Products and Responsabilities
The deployment model changes who maintains the platform. The control/data-plane distinction changes which operations and permissions are involved. These are separate concepts: both IaaS and PaaS have management operations and data-access operations.
IaaS versus PaaS responsibilities

Area | Database on an Azure VM — IaaS | Managed database/storage — PaaS |
Physical datacenter, hosts, and virtualization | Azure manages. | Azure manages. |
Guest OS and database-engine maintenance | Customer manages, with optional automation. | Azure manages the underlying service platform. |
Application code, data classification, and permissions | Customer responsibility. | Customer responsibility. |
Networking and exposure | Customer configures VM and application network controls. | Customer configures supported firewall, private-access, and service settings. |
Backup and recovery | Customer implements and operates a suitable strategy. | Azure provides service-specific mechanisms; customer selects available settings and validates recovery. |
Availability and disaster recovery | Customer designs the VM/database architecture. | Customer selects service tiers, redundancy, and regional recovery options appropriate to requirements. |
PaaS reduces infrastructure work, but it does not remove responsibility for protecting data, assigning permissions, or designing application recovery. Exact responsibilities depend on the individual service
For example, Azure SQL Database provides automated backups and built-in availability. You still need to choose appropriate retention, backup redundancy, regional recovery, and application retry behavior, and test restoration. Blob Storage has different protection mechanisms; do not assume every PaaS service includes the same backup features.
Control plane versus data plane

Control plane | Data plane | |
Purpose | Manage the Azure resource. | Access or change its contents. |
Examples | Create a database server, change a storage firewall, scale a service, delete a resource. | Query SQL rows, download a blob, write a file, retrieve a secret. |
Authorization | Primarily Azure RBAC management permissions through Azure Resource Manager. | Service-specific authorization: data RBAC, database permissions, ACLs, or supported credentials. |
Monitoring | Azure Activity Log for management operations. | Service-specific auditing and diagnostic logs, configured as required. |
The operation, not the tool, determines the plane. Azure portal, CLI, and PowerShell can perform both management and data operations.
In the diagram, “service endpoint” means the service’s data-access address, not specifically the Azure VNet service endpoint feature.
Apply the appropriate security controls
Management: Use least-privilege Azure RBAC, protected administrator identities, and PIM where appropriate. Azure Policy can enforce configuration requirements; it does not grant access.
Data: Grant only the required SQL permissions, storage data roles, or ADLS Gen2 ACLs. Prefer identity-based access where supported.
Network: Restrict connectivity through supported firewalls, private endpoints, and network rules. Network access alone does not authorize data access.
Monitoring: Collect relevant management and data-access logs. Activity Log alone does not record every SQL query or blob read.
Management permissions can create an indirect path to data
A management role does not necessarily grant direct data access, but some powerful permissions can expose credentials or change access configuration.
For example, permission to list storage account keys can allow Shared Key data access when that authorization method is enabled. Permission to assign roles can also create a path to additional data permissions. Protect these capabilities accordingly. Microsoft Learn
Review distinction: IaaS/PaaS determines the maintenance boundary. Control plane/data plane distinguishes managing the resource from using its data.
Azure data and Purview
Microsoft Purview helps answer: What data do we have, where is it, what does it contain, and how does it move? It provides discovery, classification, cataloging, and lineage across supported data sources.
How discovery works
Register a source, such as Azure SQL Database or ADLS Gen2.
Configure authorized access and the required network connectivity.
Run a scan, selecting its scope, rules, and schedule.
Populate the Data Map with discovered metadata, such as tables, columns, files, schemas, and classifications.
Explore the catalog to find assets, understand business context, and investigate supported lineage.

Purview catalogs information about the data rather than relocating the source datasets into a central warehouse. Scanning can inspect source content where supported to identify classifications.
Coverage across the data stores
Data category | Examples | What to check |
Relational databases | Azure SQL, SQL Server, PostgreSQL, MySQL | Connector support, scan permissions, and classification capabilities. |
Files and data lakes | Blob Storage, ADLS Gen2 | Supported file formats, folder scope, and content-inspection limits. |
NoSQL | Supported Cosmos DB sources | Support for the specific API; do not assume every Cosmos DB API has identical coverage. |
Analytics platforms | Synapse, Databricks, Power BI | Metadata, classification, and lineage support differ by connector and asset type. |
Discovery does not imply identical classification support. A connector might collect an asset’s metadata without inspecting all its contents or capturing complete lineage.
Classification versus sensitivity labels
Concept | Meaning | Example |
Classification | Describes the kind of data detected. | A column appears to contain email addresses. |
Sensitivity label | Expresses an organizational sensitivity category. | Confidential or Highly Confidential. |
Access control | Determines who can use the source data. | SQL permissions, storage data RBAC, or ADLS ACLs. |
Data Map supports built-in classifications and custom classification rules, including pattern-based matching for supported sources and file types.
Correction to the reference: Trainable classifiers exist within Microsoft Purview Information Protection, but they are not supported by Purview Data Map. Classification also does not automatically grant access or encrypt the source data.
Following data through a pipeline
Connecting supported Data Factory or Synapse pipelines can add runtime lineage—for example:
Source table → Copy activity → Lake dataset → Supported transformation → Output dataset
This helps users investigate where a report’s data originated and which downstream assets might be affected by a change. Automatic lineage is limited to supported activities and connections; custom processing may require additional integration or documentation.
For example, Purview could identify customer-related columns in a SQL source, catalog the corresponding lake dataset, and show supported pipeline relationships. A data steward can then add an owner, description, and business terms so analysts can find and interpret the dataset.
Review tip: Data Map discovers and records metadata; the catalog makes it usable; source permissions still control access to the actual data.

Comments