Active relationship Modeling
Only one relationship path between two tables can be active. Inactive ones (dashed lines) are used on demand with USERELATIONSHIP.
Only one relationship path between two tables can be active. Inactive ones (dashed lines) are used on demand with USERELATIONSHIP.
The Power Query window that shows a query's full M code, so you can read, rename or edit the steps by hand.
A small pre-summarized table that answers most queries instantly, while the big detailed table is used only for drill-down.
A join that keeps only the rows with no match in the other table. Ideal for finding orphan keys and data quality problems.
A read-only package of reports and dashboards published from a workspace to a wide audience, with its own navigation. Audiences let different groups see different pages.
Stacks queries with the same columns on top of each other, adding rows. The Power Query version of SQL UNION.
The ordered list of transformations in a Power Query query. Order matters: each step works on the output of the one above it.
A DirectQuery relationship setting that promises every fact key exists in the dimension, so Power BI can use faster INNER JOINs.
A group inside an App that sees a chosen subset of its reports and pages.
A Power BI option that silently creates a hidden date table for every date column. Turn it off in real models: it bloats the file.
A Tabular Editor feature that checks a model against rules (naming, formatting, performance) and lists violations.
DAX's empty value. Visuals hide rows where every measure is BLANK, which keeps them tidy.
A saved state of a page (filters, visibility, sort) for storytelling, toggles and reset buttons.
A small table of unique keys that sits between two tables whose link would otherwise be many-to-many.
Permission that lets someone create their own reports on a semantic model, or query it from Excel, without editing it.
The DAX function that evaluates an expression under changed filters. It can add, replace or remove filters.
A column computed row by row with DAX at refresh time and stored in the model. Use it when you need to slice or filter by the result.
A table created with a DAX expression (e.g. CALENDAR or SUMMARIZE) and stored in the model at refresh.
Reusable modifiers (YTD, prior month, currency…) that apply to any measure, so 10 measures × 5 variants doesn't mean 50 measures.
A marker in a query plan meaning the storage engine had to call back to the formula engine for each row. A common sign of slow DAX.
Purchased compute (F SKUs, measured in capacity units) that powers workspaces and features such as XMLA, deployment pipelines and large models. PPU is a per-user alternative for Power BI features.
The admin app that shows how much capacity each item consumes and when throttling happens.
(1) For relationships: one-to-many, one-to-one or many-to-many. (2) For columns: how many distinct values a column has. High cardinality compresses badly.
Power Query's built-in data checks: % valid/error/empty, distinct and unique counts, and value statistics. By default it only looks at the top 1,000 rows.
A model that mixes storage modes or sources, e.g. DirectQuery facts with Import dimensions, or a shared model extended with local tables.
Colours, icons or data bars driven by values or rules, so exceptions stand out.
When CALCULATE, or a measure reference, runs inside a row context, the current row turns into an equivalent filter.
Which way filters flow across a relationship. Single (dimension → fact) is the safe default. Both can cause ambiguity and slower queries.
What happens to other visuals when you click a data point: filter (remove the rest) or highlight (show the matching share). Control it with Edit interactions.
Changes a relationship's filter direction, or turns it off, inside one measure only.
A reusable M function you write once and invoke on many columns or queries, e.g. to clean a money column.
A single page in the Service made of tiles pinned from one or more reports. Good for monitoring and alerts, but no slicers and limited interaction.
A notification when a dashboard tile's number crosses a threshold you set.
Power Query that runs in the cloud and is reused by many semantic models. Gen2 in Fabric can write its output to a Lakehouse or Warehouse.
A continuous table of dates with Year/Month/Quarter columns, marked as a date table. Time intelligence needs one.
Time intelligence functions that shift or build date ranges, e.g. DATEADD(Dates[Date], -1, MONTH) = the same dates one month earlier.
Data Analysis Expressions: the formula language for measures, calculated columns, calculated tables and security rules.
A free tool for writing and timing DAX queries, reading query plans and measuring model size.
An open table format (Parquet files plus a transaction log) that Fabric uses everywhere.
A Service feature that moves content Dev → Test → Prod, with rules that swap data sources or parameters per stage.
A table that describes things you filter and group by: product, customer, region, date.
A Fabric storage mode that loads Delta tables straight from OneLake into memory: close to Import speed without import refreshes. It can fall back to DirectQuery.
Data stays in the source, and every visual sends a live query. It is always current, but slower and with some DAX limits.
Distinct = how many different values exist. Unique = how many values appear exactly once.
Safe division that returns BLANK (or a value you choose) instead of an error when dividing by zero.
Moving down a hierarchy within the same visual, e.g. Year → Quarter → Month.
Right-click a data point to jump to a detail page filtered to that item (e.g. one customer).
A table that acts as Import or DirectQuery depending on the query, typically used for dimensions in composite models.
The query setting that decides whether a query's result becomes a table in the model. Turn it off for staging or helper queries.
Trust labels on content. Promoted = 'recommended'. Certified = reviewed and approved by people the admin authorized.
A Power BI Desktop button that creates a small table by typing or pasting. It is handy for practice data, but it can't be refreshed from a source.
A measure you write in DAX. An implicit measure is the automatic sum Power BI creates when you drag in a numeric column. Prefer explicit measures.
The table of events or measurements (sales lines, clicks, stock snapshots): many rows, numbers and keys.
A slicer-driven switch that changes which measure or column a visual uses.
The set of filters that applies to one calculation: slicers, visual rows and columns, page and report filters and cross-highlighting. It is why the same measure shows a different number in each cell.
The side pane with visual-, page- and report-level filters. Authors can lock or hide these filters.
The single-threaded part of the engine that handles complex logic. Too much time here usually means the DAX needs a rewrite.
Software on a machine in your network that lets the cloud Service reach on-premises data for refresh or DirectQuery.
Connecting a Fabric workspace to a Git branch (Azure DevOps or GitHub) so content is version-controlled and reviewable.
The policies that keep self-service BI trustworthy: who can publish, tenant settings, certified models, labels, naming and monitoring.
The level of detail one row represents, e.g. one order line or one region per category per month. Mixing grains without care causes double counting.
An ordered set of columns (Year → Quarter → Month) that users can drill down through.
One table with imported history partitions plus a DirectQuery partition for today's live data.
Data is copied into Power BI's compressed memory engine. The fastest option, but it needs refreshing.
Refreshing only recent date partitions (e.g. the last 3 days) and keeping older history, instead of reloading everything.
A function ending in X (SUMX, AVERAGEX, MAXX…) that evaluates an expression row by row over a table, then aggregates the results.
Makes a CALCULATE filter intersect with the existing filter instead of replacing it.
A Fabric item holding files plus Delta tables. It is built for Spark and notebooks and has a read-only SQL endpoint.
Returns the last date that actually has data. The core of semi-additive measures like stock on hand.
A relationship between tables from different sources in a composite model. It has no guaranteed one side and behaves slightly differently.
A diagram of how sources, dataflows, models, reports and dashboards depend on each other.
A report that connects to an existing published semantic model and uses its model as is.
The formula language behind Power Query. Every step you click is written as a line of M, which you can read and edit in the Advanced Editor.
A relationship where neither side's key is unique. It is supported, but it needs care. A bridge table often gives clearer behaviour.
Power BI's pivot-table visual: rows, columns, values, subtotals and drill-down.
A DAX formula computed at query time for whatever filters apply to that cell. Not stored, and it is what every number on a visual should be.
Bronze (raw) → Silver (cleaned) → Gold (business-ready) layers of data, each more trustworthy than the last.
Joins two queries side by side on matching key columns, adding columns. The Power Query version of a SQL JOIN or VLOOKUP.
Microsoft's all-in-one analytics platform. Data integration, engineering, warehousing, real-time and Power BI share one storage layer called OneLake.
A separate portrait layout you design for each page so reports read well on phones.
Your personal workspace in the Service. Fine for experiments. Team content should live in a shared workspace.
An interactive code document (PySpark, Python, SQL) used in Fabric for data engineering and data science.
Hides whole tables or columns (e.g. Salary) from certain roles. It is set with Tabular Editor.
Fabric's single organization-wide data lake. Tables are stored once, in Delta format, for every engine to read.
A named value, such as a server, file path or environment, that queries read instead of a hard-coded value. You can change it in the Service without editing the file.
Rows that point to another row in the same table, such as an employee's ManagerKey. DAX's PATH functions flatten it into levels.
A slice of a table (often by date) that can be refreshed on its own.
DAX functions that turn a parent-child table into a text path ('1|2|6|8') you can split into levels or test for membership.
Power BI Project format: the same report saved as a folder of readable text files (TMDL for the model, JSON for the report) so Git can track and compare changes.
The single binary file Power BI Desktop saves: queries, model, report pages and, in Import mode, the data itself.
A Desktop pane that records how long each visual takes, split into DAX query, visual display and other.
The free Windows application where you build reports: connect to data, shape it, model it and design pages. The file you save is a .pbix or a Power BI Project (.pbip).
The cloud website (app.powerbi.com) where reports are published, shared, refreshed on a schedule and turned into dashboards and apps.
The data preparation tool in Power BI, Excel and Fabric. Every click becomes a recorded step that replays on each refresh.
Makes a report PUBLIC on the internet with no sign-in. Never use it for internal data. Admins often disable it.
When Power Query translates your steps into the source's own language (usually SQL) so the source does the work. Faster refreshes, and required for efficient incremental refresh.
Two reserved Date/Time parameters that incremental refresh uses to load one date partition at a time.
Ranking functions: RANKX ranks items by an expression, and TOPN returns the top N rows of a table.
A new query that starts from another query's output and stays linked to it. Use it to build staging → clean layers without copying steps.
A link between two tables on a key column that lets filters flow from one table to another.
The DAX functions that remove filters inside CALCULATE. REMOVEFILTERS and ALL ignore every filter on the given columns or tables. ALLSELECTED keeps what the user selected. ALLEXCEPT keeps the listed columns.
One or more interactive pages of visuals built on one semantic model. Users can filter, slice, drill and hover.
One dimension used in several roles, e.g. a Date table linked to both OrderDate (active) and ShipDate (inactive).
The idea of 'the current row' while DAX walks a table (calculated columns and iterators). It does not filter other tables by itself.
Rules that filter which rows each user sees in the same model. Static = a fixed role per group. Dynamic = one role using the signed-in user's email and a mapping table.
Automatic reloads of an Import model in the Service: up to 8 a day with Pro and 48 a day on capacity.
The pane that lists every object on a page so you can rename, group, show or hide them. Essential for bookmark toggles.
The tables, relationships, measures and security rules behind a report. Many reports can share one semantic model. It was called a 'dataset' before 2023.
A number that adds up across some dimensions but not time, like stock on hand or account balance. Across time you take the last value, not the sum.
A Microsoft Purview label (e.g. Confidential) that travels with data exported to Excel, PowerPoint or PDF.
A DAX Studio view that shows the storage engine vs formula engine time and every storage engine query for one DAX query.
A OneLake pointer to data stored somewhere else, used without copying it.
An on-canvas filter control (list, dropdown, date range…) that users click to filter the page.
How a dimension handles changes. Type 1 overwrites the old value. Type 2 adds a new row with valid-from and valid-to dates so history stays correct.
A star whose dimensions are split into chains of tables (Product → Subcategory → Category). In Power BI you usually flatten these back into one dimension.
A fact table in the centre joined one-to-many to dimension tables around it. The shape Power BI is designed for.
The fast, multi-threaded part of the engine that scans compressed data. Good DAX gives it most of the work.
An email with a snapshot of a report page or dashboard, sent on a schedule.
A meaningless whole-number key (CustomerKey = 101) used instead of a text business key. It compresses better and allows history tracking.
A feature that makes one slicer's selection apply on several report pages.
An M function that loads a table into memory once, so repeated lookups don't re-read the source. Useful, but it stops query folding.
A tool for editing models directly: calculation groups, OLS, scripting, bulk edits and the Best Practice Analyzer.
Organization-wide switches in the Power BI/Fabric admin portal (export, publish to web, sharing…), often enabled only for specific security groups.
A report file that contains no model of its own and connects live to a shared semantic model in the Service.
DAX functions for calendar comparisons: year-to-date, prior month, same period last year, rolling windows. They need a proper date table.
Tabular Model Definition Language: a readable text format for semantic models, one file per table. It is ideal for Git diffs.
A small custom report page shown when hovering a data point, filtered to what you hovered.
Applies the values of one column as a filter on another column that has no physical relationship: a 'virtual relationship'.
Turns wide columns (Jan, Feb, Mar) into rows of Attribute and Value. Models and DAX prefer tall, narrow tables.
Built-in reports showing who viewed which report pages and how often.
Activates an inactive relationship for one calculation only, e.g. to count by ship date instead of order date.
A DAX function that returns the signed-in user's login (usually their email). The key to dynamic RLS.
VAR … RETURN stores an intermediate result once inside a measure. Measures become easier to read, easier to debug and often faster.
The in-memory column-store engine behind Import mode. It compresses each column. Fewer distinct values means a smaller, faster model.
Right-click a step to see the SQL that Power Query sends to the source. If the option is greyed out, folding has stopped at or before that step.
A Fabric item with a full T-SQL (read/write) data warehouse experience, stored as Delta tables in OneLake.
WINDOW, OFFSET, INDEX and RANK compute running totals, previous-row values and positions over a sorted set of rows.
A shared folder in the Service that holds reports, semantic models, dataflows and other items, with roles: Admin, Member, Contributor and Viewer.
An enterprise connection point (on capacity or PPU) that lets tools like SSMS and Tabular Editor read and write published models.