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
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.
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.
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.
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?

