AZ-305 Data Integration and Analysis Design: Data Factory, Data Lake, Databricks, Synapse, Fabric and Stream Analytics
Designing data integration and analysis in Azure means choosing how data is moved, transformed and stored for analytics, and which engine answers each question: Azure Data Factory pipelines and integration runtimes for movement and orchestration, Azure Data Lake Storage as the landing store, and Azure Databricks, Azure Synapse Analytics, Microsoft Fabric, Azure Stream Analytics or Azure Data Explorer for analysis. This lesson covers both AZ-305 skills in the task, recommending a data integration solution and recommending a data analysis solution, including the current Microsoft guidance that favours Fabric for new analytics platforms.
On this page10 sections
- What data integration and analysis design covers in Azure
- Azure Data Factory pipelines, activities and data flows
- Choosing the integration runtime
- Lifting and shifting SSIS packages with the Azure-SSIS IR
- Triggers and incremental load patterns
- Azure Data Lake Storage as the analytics landing store
- Azure Databricks: Delta Lake, Unity Catalog and job compute
- Azure Synapse Analytics: serverless and dedicated SQL pools
- Microsoft Fabric: OneLake, shortcuts, mirroring and Direct Lake
- Real-time analysis: Stream Analytics, data paths and Azure Data Explorer
- Recommend Data Factory pipeline activities and the right integration runtime (Azure, managed virtual network, self-hosted or Azure-SSIS) for a given network, residency and availability requirement
- Design trigger and incremental-load patterns, including tumbling window backfill, storage event triggers and the watermark pattern
- Design Azure Data Lake Storage for analytics, including hierarchical namespace upgrades and least-privilege ACLs with default entries
- Choose between Azure Databricks, Synapse serverless and dedicated SQL pools and Microsoft Fabric, and optimise each for cost and isolation
- Recommend zero-ETL operational analytics with OneLake shortcuts, Fabric mirroring and Direct Lake
- Design real-time analysis with Stream Analytics windows and reference data, hot/warm/cold data paths and Azure Data Explorer caching and retention
What data integration and analysis design covers in Azure
Data integration and analysis design decides how data moves from where it is created to where it is analysed, how it is transformed on the way, and which engine answers each kind of question. The official task has two skills: recommend a solution for data integration, and recommend a solution for data analysis. In practice that means choosing between a small set of Azure services, each with a clear job.
| Need | Service to consider first |
|---|---|
| Orchestrate and copy data between many sources and sinks, on a schedule or on events | Azure Data Factory pipelines (or Data Factory in Microsoft Fabric for new work) |
| Run existing SSIS packages in Azure with little or no change | Azure-SSIS integration runtime in Data Factory |
| Land raw and curated files for Spark and SQL engines | Azure Data Lake Storage (a storage account with a hierarchical namespace) |
| Code-first Spark data engineering and data science with central governance | Azure Databricks with Delta Lake and Unity Catalog |
| One SaaS platform for integration, engineering, warehousing and Power BI | Microsoft Fabric (OneLake, shortcuts, mirroring, Direct Lake) |
| T-SQL over lake files or a dedicated MPP warehouse in an existing Synapse estate | Azure Synapse Analytics serverless or dedicated SQL pools |
| Real-time queries over event streams with SQL-like syntax | Azure Stream Analytics |
| Interactive, ad-hoc analytics over huge volumes of logs and telemetry | Azure Data Explorer (KQL) |
Two pieces of current Microsoft guidance shape every recommendation. Microsoft's AZ-305 learning content says it recommends Microsoft Fabric over new Azure Synapse Analytics deployments, and the Data Factory documentation points to Data Factory in Fabric as the next generation for new data integration. Azure Data Factory and Synapse remain fully supported and are the right answer when a scenario already runs them or needs a feature only they offer. As everywhere in AZ-305, the right design meets every stated requirement (residency, private networking, no code, least administrative effort, lowest cost) and nothing more. Choosing relational tiers and storage redundancy belongs to the two sibling topics on relational and on semi-structured and unstructured storage.
Azure Data Factory pipelines, activities and data flows
Azure Data Factory is a managed, serverless data integration service whose pipelines orchestrate activities: they move data, transform it and control the order in which steps run. A pipeline is a logical group of activities; linked services hold connection details, datasets describe the data, and triggers start runs.
Activities fall into three groups, and the exam expects you to pick the right one:
- Data movement: the Copy activity. It copies data from a source connector to a sink connector with built-in parallelism and no code. Data Factory has connectors for databases, files, SaaS applications such as Salesforce, REST and HTTP endpoints, SFTP and the Azure data stores. When data only has to move from one store to another without being reshaped, the Copy activity is the tool; transformation services add cost and complexity there.
- Data transformation. Mapping data flows are designed visually; Data Factory turns them into Spark code and runs them on clusters it provisions and scales through the Azure integration runtime, so a team that doesn't write code and doesn't want to manage clusters can join, aggregate and cleanse large files. External transformation activities dispatch work to other compute, for example the Databricks Notebook, Databricks Jar and Databricks Python activities, a stored procedure, or HDInsight jobs.
- Control flow. Lookup (read a small result set or a single value, such as a watermark), Get Metadata (properties of a file or folder), Web (call an endpoint and return its response), ForEach, If Condition, Until and Execute Pipeline. These return small results for decisions; they are not designed for bulk data movement.
Dependencies and retries make a pipeline a workflow. Each activity can depend on others with a condition (Succeeded, Failed, Completed, Skipped), so a notebook can wait until two Copy activities have both succeeded, and each activity has its own retry count and interval. That combination (SaaS and file connectors, then existing Databricks notebooks, with dependencies and retries) is why Data Factory, not Logic Apps, Event Grid or Stream Analytics, is the orchestrator for data pipelines. Logic Apps is an application-integration workflow service, Event Grid only routes events, and Stream Analytics only queries streams.
Synapse pipelines share most of Data Factory's engine and activities inside a Synapse workspace, with a few documented gaps; the one that matters most for design is that they don't support the Azure-SSIS integration runtime.
Choosing the integration runtime
The integration runtime (IR) is the compute that runs Data Factory activities, and the right one depends on where the data is and how it is networked. Each linked service names its IR through connectVia; if it doesn't, the default autoresolve Azure IR is used.
| Integration runtime | Runs where | Use it when |
|---|---|---|
| Azure IR (public network) | Microsoft-managed compute in Azure | Copying between cloud stores reachable over public endpoints; running mapping data flows |
| Azure IR in a managed virtual network | Microsoft-managed compute inside a virtual network that Data Factory manages | Reaching Azure stores that have public access disabled, through managed private endpoints (Private Link), with no VMs to run or patch |
| Self-hosted IR | Windows machines you install it on, on premises or in a virtual network | Data on premises or in a private network that Azure can't reach; it makes only outbound HTTPS connections, so no inbound firewall port is opened |
| Azure-SSIS IR | A managed cluster of Azure VMs dedicated to SSIS | Running existing SSIS packages (see the next section) |
Private Azure stores without VMs mean a managed virtual network. A self-hosted IR on a VM in a peered virtual network can also reach private endpoints, but then you own the VM, its patching and its scaling. A public-network Azure IR can't connect to a store whose public access is disabled.
Self-hosted IR high availability comes from multiple nodes. One self-hosted IR can be associated with up to four machines (nodes). You install the runtime on each machine and register it with the same authentication key; the logical runtime then keeps working if a node fails and spreads work across nodes. A second, separately registered self-hosted IR gives no automatic failover, and an availability set doesn't help because only machines registered to the IR take its work.
Location decides residency. The data factory's own region stores metadata and starts triggers; the integration runtime's location decides where copy and data-flow compute runs.
- A public-network autoresolve Azure IR makes a best effort to run the copy in the sink store's region, and falls back to the factory's region (or a nearby one) when it can't detect it.
- In a managed virtual network, an autoresolve Azure IR always uses the factory's region.
- For a strict residency requirement, create an Azure IR with an explicit region and point the linked services at it with
connectVia. Moving or duplicating the factory isn't needed.
Lifting and shifting SSIS packages with the Azure-SSIS IR
To run existing SQL Server Integration Services (SSIS) packages in Azure with little or no change, provision an Azure-SSIS integration runtime in Azure Data Factory. It is a fully managed cluster of Azure VMs dedicated to running SSIS packages. You host the SSIS catalog (SSISDB) in Azure SQL Database or Azure SQL Managed Instance (or use the file system or Azure Files as the package store), and keep deploying and managing packages with SQL Server Data Tools (SSDT) and SQL Server Management Studio (SSMS). Pipelines run packages with the Execute SSIS Package activity.
- On-premises data: join the Azure-SSIS IR to a virtual network that is connected to the datacenter through ExpressRoute or a site-to-site VPN. A managed virtual network is a feature of the Azure IR, not the Azure-SSIS IR, and a self-hosted IR can't run SSIS packages itself (it can act only as a proxy for the Azure-SSIS IR's data access).
- Cost: the Azure-SSIS IR is billed while it runs, so stop it when no packages run and start it before they do, for example with pipeline activities scheduled around the package window. Scaling out adds nodes and therefore cost.
- Synapse estates: Synapse pipelines don't support the Azure-SSIS IR. A company that has standardised on Synapse still provisions the Azure-SSIS IR in a data factory and runs its packages there, alongside the Synapse pipelines.
Rebuilding packages as mapping data flows or Databricks notebooks is a rewrite. It can be the right long-term modernisation, but lift-and-shift with the Azure-SSIS IR is the minimal-change route.
Triggers and incremental load patterns
A trigger decides when a pipeline runs, and the choice follows from whether work is driven by time, by time windows with history, or by events.
| Trigger | Fires | Distinctive features |
|---|---|---|
| Schedule | On a wall-clock schedule | Simple recurrence; runs only at future times, no per-window state |
| Tumbling window | For a series of fixed-size, non-overlapping, contiguous intervals | Keeps state per window; a start time in the past backfills every missed window; can depend on another tumbling window trigger so each window waits for the matching upstream window; retry policy and concurrency |
| Storage event | When a blob is created or deleted | Uses Azure Event Grid; filter by container path and file name; one run per event, so no empty polling runs |
| Custom event | When an event arrives on an Event Grid custom topic | For application-defined events |
As a rule, irregular arrivals that need prompt processing suit an event trigger, because the run starts when the file is created; schedule and tumbling window triggers run on the clock whether or not new data has arrived.
Incremental loading copies only what changed since the last run. Microsoft documents four incremental-copy patterns for Data Factory:
- Watermark (delta column): a Lookup reads the stored old watermark, another Lookup reads the current maximum of a column such as
LastModifiedDate, the Copy activity's source query selects rows between the two, and a stored procedure saves the new watermark. It needs no database feature, only a reliable column that changes with every update. - Change Tracking in SQL Server or Azure SQL Database: more precise than a watermark (it sees deletes), but it must be enabled on the database and the tables.
- LastModifiedDate for file sources: copy only the files whose last-modified time falls after the previous run.
- Time-partitioned folder or file names (for example
/yyyy/mm/dd/): copy only the newest partition.
Separately from those four, SQL Server and Azure SQL also offer change data capture (CDC), which records the full row changes, and Data Factory can read it with its CDC resource or a mapping data flow.
Copying the full table and filtering afterwards doesn't reduce what crosses the network. When the source sits on premises behind a firewall that allows no inbound connections, the incremental copy still runs on a self-hosted IR inside that network.
Azure Data Lake Storage as the analytics landing store
Azure Data Lake Storage is a set of capabilities on an Azure Storage account with the hierarchical namespace enabled, and it is the standard landing and curated store for Spark and SQL analytics engines. (Data Lake Storage Gen1 is retired; "Data Lake Storage" now means this.) Engines connect through the ABFS driver.
- Real directories: with a flat Blob namespace a "folder" is only a name prefix, so renaming or deleting it means touching every blob. With a hierarchical namespace, directory rename and delete are single, atomic metadata operations, which matters to Spark jobs that write to a temporary folder and rename it.
- POSIX-style ACLs on directories and files, alongside Azure RBAC.
- In-place upgrade: an existing general-purpose v2 or Blob Storage account can be upgraded to enable the hierarchical namespace without copying data. The upgrade is one-way, writes are disabled while it runs, some features may be incompatible, and Microsoft recommends validating it in a non-production environment first. Workloads that use the WASB driver should move to ABFS. Creating a new account and copying the data also works, but moves every byte.
How authorization works. Azure RBAC is evaluated first; if a role assignment (such as Storage Blob Data Contributor) grants the operation, ACLs aren't checked. With no role assigned, ACLs decide, and they follow POSIX rules:
| Operation | Permission needed |
|---|---|
| Reach any item | Execute (--x) on every directory from the container root down to the item's parent |
| Read a file | Read (r--) on the file |
| Create or write a file in a directory | Write and execute (-wx) on that directory |
| List a directory | Read and execute (r-x) on that directory |
Access ACLs control the object they are set on. Default ACLs exist only on directories and are copied to child items created afterwards, so when another identity or pipeline creates new subfolders (such as daily date folders), a default ACL entry is what gives the principal access to them. Read on parent directories isn't needed just to traverse them, and a role assigned at container scope is broader than a folder-level least-privilege requirement allows.
Azure Databricks: Delta Lake, Unity Catalog and job compute
Azure Databricks is a managed Apache Spark platform for code-first data engineering, data science and machine learning, built around the lakehouse: open Delta Lake tables in the data lake governed centrally by Unity Catalog. Choose it when teams write Spark code in Python, SQL or Scala, collaborate in shared notebooks, and need governance across workspaces.
Delta Lake stores data as Parquet files plus a transaction log.
- Writes such as
MERGE(upsert),UPDATEandDELETEcommit atomically, so concurrent readers see the previous version or the new one, never a half-applied batch. Overwriting plain Parquet partitions has no transaction log, so it gives neither isolation nor history. - Every commit creates a table version that time travel can query (
VERSION AS OF,TIMESTAMP AS OF), but only while the files and log entries still exist.VACUUMdeletes unreferenced files older thandelta.deletedFileRetentionDuration(7 days by default), and log entries are kept fordelta.logRetentionDuration(30 days by default). To query a table as it was up to a month ago, raise both retention properties to cover that window.
Unity Catalog is the account-level governance layer. One metastore is attached to multiple workspaces, so grants on catalogs, schemas, tables, columns and rows are defined once and enforced in every workspace, and it captures data lineage automatically. A separate Hive metastore per workspace means separate permission management and no central lineage.
Compute type drives cost. All-purpose compute is for interactive analysis and shared notebooks; it can be shared and auto-terminates after inactivity. Job compute is created by the jobs scheduler for a run and terminated when the run ends, and is billed at a lower rate. Scheduled jobs should run on job compute (one per job gives isolation), keeping all-purpose clusters for interactive work. Serverless compute for jobs and notebooks is a further option where it is available to the workspace.
| Compared with | Why Databricks or not |
|---|---|
| Data Factory mapping data flows | Data flows are code-free; Databricks is code-first and more flexible |
| Azure HDInsight | HDInsight leaves cluster management to you and lacks Unity Catalog's central governance |
| Microsoft Fabric | Fabric is a broader SaaS platform; Databricks fits an existing Databricks estate or deep Spark/ML needs, and the two can share data through OneLake shortcuts and mirroring |
Azure Synapse Analytics: serverless and dedicated SQL pools
In an Azure Synapse workspace, the serverless SQL pool queries files in the data lake on demand and bills per data processed, while a dedicated SQL pool is a provisioned MPP data warehouse for persisted tables with consistent performance. Synapse remains supported; for a new analytics platform, current Microsoft guidance is Microsoft Fabric.
| Serverless SQL pool | Dedicated SQL pool | |
|---|---|---|
| Provisioning | Built into every workspace; nothing to start, stop or scale | Provisioned in data warehouse units; can be paused and scaled |
| Data | Queries lake files in place (CSV, Parquet, Delta) with OPENROWSET or external tables | Data loaded into distributed tables |
| Billing | Per amount of data processed by each query | Per hour of provisioned compute while running, plus storage |
| Best for | Ad-hoc exploration, logical data warehouse over the lake | Large star-schema warehouses with many concurrent users and predictable performance |
Reducing serverless cost means reducing data read. Store data as Parquet (compressed and columnar, so a query reads only the columns it references) and partition folders (for example by year and month), filtering with filepath() so whole folders are skipped. The general rule: serverless cost follows the bytes scanned, so only changes that make queries read less data reduce it.
Isolating workloads in a dedicated pool uses workload management. Workload groups reserve a minimum percentage of resources and cap the maximum for a set of requests, and workload classifiers assign requests (by user, role, label or session context) to a group. With a group reserved for reporting and another capped for loads, a nightly load can't take resources from Power BI users. Leaving everything in the default workload group gives no isolation.
Synapse also includes Apache Spark pools and Synapse pipelines; as noted earlier, its pipelines don't run SSIS packages.
Microsoft Fabric: OneLake, shortcuts, mirroring and Direct Lake
Microsoft Fabric is a software-as-a-service analytics platform that brings data integration (Data Factory), data engineering (Spark), data warehousing, real-time intelligence, data science and Power BI together, with every workload storing its data in OneLake. You buy a Fabric capacity and create workspaces; there are no separate Azure resources per engine to deploy and govern. Microsoft recommends Fabric over new Synapse deployments. Because one capacity covers every engine, Fabric minimises the number of services to deploy and govern; assembling separate Azure services such as Data Factory, Databricks and storage also works, but means more resources to manage.
OneLake is a single logical lake per tenant, storing tables in the open Delta Parquet format. Three features avoid building copy pipelines:
| Feature | What it does | Data copied? |
|---|---|---|
| Shortcuts | Make data in another location appear in a lakehouse or OneLake folder. Targets include other OneLake locations, Azure Data Lake Storage, Amazon S3, S3-compatible storage and Google Cloud Storage | No: the data stays with its owner and engines always read its current state |
| Mirroring | Continuously replicates an operational database into OneLake as Delta tables, with a SQL analytics endpoint; sources include Azure SQL Database, Azure SQL Managed Instance, Azure Cosmos DB and others | Yes, a managed near real-time replica, with no ETL pipeline to build |
| Pipelines / Dataflow Gen2 | Scheduled copy and transformation into a lakehouse or warehouse | Yes, on a schedule |
Mirroring is the zero-ETL answer for operational analytics. Reporting queries that slow a production Azure SQL Database move to the mirrored copy in Fabric, where changes arrive in near real time and the tables can be joined with lakehouse data in Spark, SQL and Power BI. A read replica or read scale-out also offloads reads, but it doesn't put the data where Spark and the lakehouse can use it. For Azure Cosmos DB for NoSQL, mirroring replicates container data without consuming the request units provisioned for transactions and without using the analytical store; Microsoft lists continuous backup as a prerequisite and suggests the 7-day tier, which is free, when you enable it for mirroring. Check the current prerequisites on Microsoft Learn, as mirroring sources are still evolving. Azure Synapse Link for Azure Cosmos DB is no longer supported for new projects; Microsoft directs customers to Fabric mirroring.
Direct Lake is a Power BI semantic-model storage mode for Fabric. The model reads Delta tables in OneLake directly, loading the columns a query needs into memory, so reports perform close to Import mode without a scheduled refresh that copies data, and they reflect new data after each load.
| Storage mode | Copy into the model? | Query speed |
|---|---|---|
| Import | Yes, on scheduled refresh | Fastest, but only as fresh as the last refresh |
| DirectQuery | No; each visual's query is sent to the source | Depends on the source; generally slower |
| Direct Lake | No; reads Delta tables in OneLake | Close to Import |
Real-time analysis: Stream Analytics, data paths and Azure Data Explorer
Real-time analysis in Azure uses Azure Stream Analytics for continuous SQL-like queries over streams, organises data into hot, warm and cold paths, and uses Azure Data Explorer for interactive analytics over large volumes of logs and telemetry.
Azure Stream Analytics
Stream Analytics is a fully managed real-time analytics service. A job reads inputs such as Event Hubs, IoT Hub or Blob/Data Lake Storage, runs a continuous query in a SQL-like language, and writes to outputs such as Power BI, Azure SQL Database, Cosmos DB, Data Lake Storage, Event Hubs, Service Bus and Azure Functions. It needs no Spark skills or cluster; Databricks Structured Streaming is the code-first alternative. Data Factory and serverless SQL work on data at rest.
| Window | Behaviour |
|---|---|
TumblingWindow | Fixed-size, non-overlapping, contiguous segments; each event belongs to exactly one window |
HoppingWindow | Fixed size that advances by a hop; when the hop is smaller than the window, windows overlap and an event can count more than once (a hop equal to the size behaves like a tumbling window) |
SlidingWindow | Produces output only when an event enters or leaves the window |
SessionWindow | Groups events that arrive within a timeout of each other, up to a maximum duration |
SnapshotWindow | Groups events with the same timestamp |
Reference data enriches a stream with a static or slowly changing dataset, held in memory and joined with no time window. It can come from Blob Storage, Data Lake Storage or Azure SQL Database; for SQL Database you set a refresh rate (and optionally a delta query) so changes are picked up. A SQL table isn't a streaming input, and calling a function per event adds code and latency.
Hot, warm and cold paths
| Path | Latency need | Typical design |
|---|---|---|
| Hot | Seconds: alert or act now | Stream Analytics (or Spark streaming) evaluating rules as events arrive |
| Warm | Available for queries within seconds to minutes, over a recent subset | Stream Analytics output to a queryable store, such as a Cosmos DB container with a time-to-live that expires old items, or Azure Data Explorer |
| Cold | Batch, hours or later, over all history | Event Hubs Capture writing every event to Blob or Data Lake Storage on a time or size interval, then processed by Spark or Data Factory |
Event Hubs retention is measured in days (up to 7 on Standard, 90 on Premium and Dedicated), so it is never a multi-year archive; Capture to the lake is. A live Power BI streaming tile isn't queryable history, and a nightly warehouse load is too stale for a warm path.
Azure Data Explorer
Azure Data Explorer is a fully managed analytics service for large volumes of log, telemetry and time-series data. It ingests in near real time (queued ingestion in minutes, or streaming ingestion in seconds), indexes data automatically, and answers ad-hoc Kusto Query Language (KQL) queries in seconds, with built-in time-series functions such as series_decompose_anomalies() and series_decompose_forecast(). The same engine powers Real-Time Intelligence eventhouses in Fabric.
Two table policies drive its cost:
- The retention policy decides how long data stays in the table before it is deleted.
- The caching policy decides how much of it stays in the cluster's local hot cache (SSD and memory). Data outside the hot cache is still queryable, only slower.
Matching the hot cache to the period queried often and the retention to the period that must stay queryable lets you size the cluster for the hot data only. Continuous export copies data to an external table in the lake and deletes nothing. It is a shorter retention policy, set alongside the export, that removes older data from the table, so queries over that data would then need external tables. Use streaming ingestion only when you need seconds-level latency.
Tip. Questions on this topic are design scenarios: an organisation describes where its data lives, how it is networked and two or three requirements, such as data residency, no inbound firewall ports, no VMs to manage, no package rewrites, no ETL pipelines, least privilege, the freshness of the data or the lowest cost, and asks what you should recommend. The options are real Azure services, integration runtimes, triggers, policies or storage modes that each miss one requirement, so read every constraint before choosing. Expect near-twin comparisons (integration runtime types, schedule versus tumbling window versus event triggers, serverless versus dedicated SQL pools, shortcuts versus mirroring, Direct Lake versus Import and DirectQuery, Stream Analytics windows, caching versus retention) and some select-TWO items where each correct option is part of the solution. Current Microsoft guidance matters: Fabric for new analytics platforms, and Fabric mirroring rather than Synapse Link for new Cosmos DB analytics.
- Copy activity moves data; mapping data flows transform it without code; Lookup, Web and Get Metadata are control activities for small results, not bulk movement.
- On-premises or private-network sources need a self-hosted IR (outbound HTTPS only); private Azure stores with no VMs to manage need an Azure IR in a managed virtual network with managed private endpoints.
- A self-hosted IR becomes highly available by registering up to four nodes to the same runtime; strict data residency needs an Azure IR in an explicit region, because managed-network autoresolve uses the factory region.
- Existing SSIS packages run on an Azure-SSIS IR in Data Factory (SSISDB in SQL Database or Managed Instance), joined to a virtual network for on-premises data and stopped outside the package window; Synapse pipelines don't support it.
- Tumbling window triggers backfill and chain windows; storage event triggers react to new files; the watermark pattern loads only changed rows when change tracking and CDC aren't available.
- Data Lake Storage needs the hierarchical namespace (upgradable in place, one-way); ACL traversal needs execute on every parent, and default ACLs give access to child items created later.
- Delta Lake gives atomic MERGE and time travel only within its retention settings; Unity Catalog governs and traces lineage across workspaces; scheduled jobs belong on job compute.
- Serverless SQL bills per data processed, so use Parquet and partition pruning; dedicated SQL pools isolate loads from reports with workload groups.
- Microsoft recommends Fabric for new analytics platforms: shortcuts reference data in place, mirroring replicates Azure SQL Database and Cosmos DB with no ETL (Synapse Link for Cosmos DB isn't supported for new projects), and Direct Lake gives near-Import speed without refresh copies.
- Stream Analytics serves the hot path (tumbling windows count each event once, reference data enriches it), Event Hubs Capture feeds the cold path, and Azure Data Explorer sizes cost with a caching policy separate from retention.
Frequently asked questions
When should I use a self-hosted integration runtime instead of an Azure integration runtime?
Use a self-hosted integration runtime when Azure Data Factory must reach data that Azure can't see, such as SQL Server in an on-premises datacenter or a store in a private network. It is installed on Windows machines inside that network and makes only outbound HTTPS connections to the service, so no inbound firewall ports are opened. For Azure stores that have public access disabled, an Azure integration runtime in a managed virtual network with managed private endpoints is usually better, because there are no VMs to manage.
How do I run existing SSIS packages in Azure?
Provision an Azure-SSIS integration runtime in Azure Data Factory, host the SSIS catalog (SSISDB) in Azure SQL Database or Azure SQL Managed Instance, and deploy packages with SQL Server Data Tools as before. Join the runtime to a virtual network connected to the datacenter if packages read on-premises data, and stop it when no packages are running to save cost. Synapse pipelines don't support the Azure-SSIS integration runtime, so Synapse users run it in a data factory.
What is the difference between a schedule trigger and a tumbling window trigger in Data Factory?
A schedule trigger runs a pipeline on a wall-clock schedule at future times only. A tumbling window trigger fires for fixed-size, non-overlapping, contiguous time windows and keeps state for each window, so a start time in the past backfills every missed window, and it can depend on another tumbling window trigger so each window waits for the matching upstream window.
Should a new analytics platform use Azure Synapse Analytics or Microsoft Fabric?
Microsoft's current guidance is to choose Microsoft Fabric over new Azure Synapse Analytics deployments. Fabric is a SaaS platform that combines Data Factory, Spark data engineering, data warehousing, real-time intelligence and Power BI over a single lake, OneLake, so there are fewer resources to deploy and govern. Synapse remains supported and fits organisations that already run it.
What is the difference between a OneLake shortcut and Fabric mirroring?
A OneLake shortcut is a reference that makes data in another location, such as Azure Data Lake Storage, Amazon S3 or another OneLake item, appear in a Fabric lakehouse without copying it, so the owner keeps the data and Fabric reads its current state. Fabric mirroring continuously replicates an operational database, such as Azure SQL Database or Azure Cosmos DB, into OneLake as Delta tables, creating a near real-time copy without an ETL pipeline.
How do I reduce the cost of Azure Synapse serverless SQL pool queries?
The serverless SQL pool bills by the amount of data each query processes, so reduce the data read. Store data as Parquet, a compressed columnar format, so queries read only the columns they reference, and partition folders, for example by year and month, then filter on the path with the filepath() function so whole folders are skipped.
Which Stream Analytics window counts each event in exactly one interval?
A tumbling window. It divides time into fixed-size, non-overlapping, contiguous segments, so every event falls into exactly one window. Hopping windows overlap, sliding windows produce output when events enter or leave, and session windows group events separated by less than a timeout.
What is the difference between the caching policy and the retention policy in Azure Data Explorer?
The retention policy sets how long data stays in a table before it is deleted. The caching policy sets how much of that data is kept in the cluster's local hot cache for the fastest queries. Data outside the hot cache is still queryable, only slower, so a short hot cache with a longer retention keeps all data queryable while sizing the cluster for recent data.
Source
This lesson covers the "Design data storage solutions" domain of the official AZ-305 exam guide. Vendors revise their guides — check the source for the current version.
- Microsoft AZ-305 study guide — Microsoft Learn
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.