Instiq
Chapter 1 · Prepare the data·v1.0.0·Updated 6/29/2026·~13 min

What's changed: Created PL-300 Chapter 1 (domain: Prepare the data): getting/connecting data (sources/shared semantic model, Import/DirectQuery/DirectLake, credentials/privacy, parameters), profiling/cleansing (column quality/distribution/profile, null/error/import errors), and transforming/loading (types/columns/grouping, unpivot, fact/dimension, merge/append, reference/duplicate, load config).

1.1Get and connect to data

Key points

Understand connecting to data sources and shared semantic models, choosing storage mode (Import / DirectQuery / DirectLake), credentials/privacy levels, and using parameters.

Reporting starts with connecting to data. Which source you use and which storage mode you pick drives freshness, performance, and cost.

1.1.1Connecting to sources and shared semantic models

Power BI connects to many data sources (files, databases, online services) via Power Query. Connecting to a published shared semantic model (formerly dataset) reuses a model without rebuilding it. At connect time you set credentials and privacy levels (Public/Organizational/Private), which affect query folding and whether sources can be combined.

1.1.2Choosing a storage mode

Import loads data into Power BI memory (VertiPaq) for the fastest queries and full DAX, but needs refresh and has size limits. DirectQuery leaves data in the source and queries it at runtime, strong for up-to-date data and large volumes but with source-dependent performance and some feature limits. DirectLake (on Fabric lakehouse/OneLake) reads Parquet directly for Import-like performance on large data without refresh. Choose by freshness, volume, and performance needs.

1.1.3Parameters

Parameters are values—server names, folder paths, filter values—that you can change in one place. Use them to switch dev↔prod and to templatize, avoiding hardcoding and improving maintainability.

Exam point

Cues: "fastest, full DAX, needs refresh" = Import. "up-to-date/large, leave in source" = DirectQuery. "read Fabric Parquet directly, large+fast, no refresh" = DirectLake. "reuse a published model" = connect to a shared semantic model. "change server/path/value in one place" = parameters.

Warning

Watch the mix-ups: (1) Import is fast but freshness depends on refresh. (2) DirectQuery is current but performance is source-dependent with some DAX/feature limits. (3) DirectLake requires Fabric. (4) Wrong privacy levels can block combines or risk leakage. (5) Match parameter data types.

Diagram: connect to sources or a shared semantic model via Power Query and choose a storage mode—Import (in-memory, fastest, full DAX, refresh), DirectQuery (stays in source, current/large, source-dependent), DirectLake (reads Fabric Parquet directly, fast without refresh)—with parameters centralizing settings.
Choose by freshness/volume/performance

1.1.4Section summary

  • Import=fastest/full DAX/refresh; DirectQuery=current/large/source-dependent; DirectLake=Fabric Parquet direct
  • Connect to a shared semantic model to reuse a model
  • Set credentials/privacy levels; use parameters to centralize settings

Sign in to track progress — Log in.

Quick check

(just a quick review)

Q1. You need the fastest queries and full DAX, mid-size data, and periodic refresh is acceptable. Best storage mode?

Q2. You need always-current data and the volume is too large to import into memory. Best storage mode?

Q3. On a Microsoft Fabric lakehouse you want Import-like performance on large Parquet without refresh. Best?

Q4. You want to reuse a published data model across reports without rebuilding it. Best?

Q5. You want to switch the source server name between dev and prod in one place. Best?

Check your understandingPractice questions for Chapter 1: Prepare the data