Data model, security & variables

Synthetic keys, alternate states, Section Access, variables, master items, cyclic and drill-down groups, reload schedules, QVD layers and incremental loads, and what replaces them in a Power BI semantic model.

WHERE Modified >= '$(vLast)' ... Concatenate ... WHERE NOT Exists(ID); STORE ... INTO x.qvd QVD incremental load The QVD incremental pattern (load the changes, append the old QVD rows not in the change set, store) has no file-level equivalent in Power BI. Use the incremental refresh policy on the semantic model, or in Fabric land the data in a Delta table with MERGE. Partial / different approach $Syn tables (automatic) Synthetic keys and associative linking Qlik links tables automatically on every field with the same name and builds synthetic keys when they share several fields. Power BI doesn't link on every shared name. Relationships are model objects (autodetect may suggest some from matching names at load, so check them), use a single column and have a direction, so migrations usually remodel to a star schema. No 1:1 equivalent Sum({StateName} Sales) Alternate states (comparative analysis) Alternate states give objects independent selection sets, for example comparing two groups of regions side by side. Power BI has one filter context per visual, plus disconnected tables and measures that apply them with TREATAS. There is no built-in "state" concept. Partial / different approach Section Access; LOAD ACCESS, USER.EMAIL, REGION ...; Section Application; Section Access (data reduction) Section Access reduces data per user with a security table in the script. Power BI uses row-level security roles: DAX filters evaluated with the signed-in user's UPN, usually through a security table. OMIT maps to object-level security. Partial / different approach SET vSales = Sum(Sales); LET vToday = Today(); Variables (SET, LET and $-expansion) Qlik variables hold expressions, values and settings, and are expanded as text. Power BI splits these roles: measures for reusable logic, Power Query parameters for load settings, what-if and field parameters for user input, calculation groups for logic applied to many measures, and VAR inside DAX. Partial / different approach Master items: reusable dimensions, measures and visualizations Master items (master dimensions and measures) Qlik master items are governed, reusable expressions stored in the app. In Power BI the equivalent is a measure in the semantic model. Every measure is reusable by default. To share across reports, publish one semantic model and build thin reports on it. Partial / different approach Cyclic master dimension, or a variable-driven dimension/measure Cyclic dimensions and dynamic measures A Qlik cyclic dimension lets the user cycle a chart through several fields. Power BI field parameters do the same: a slicer switches the field (or measure) a visual uses. Direct equivalent Drill-down master dimension (Year → Quarter → Month) Drill-down groups A Qlik drill-down dimension moves to the next field when the user selects a single value. Power BI does the same with a hierarchy (or several fields stacked on the axis) and the drill buttons on the visual. Direct equivalent Island table with no key to the model, used by expressions Data islands (disconnected tables) A Qlik data island is a table with no field in common with the model; expressions read its selection. Power BI has the same idea: a disconnected table without relationships, used in a slicer and read with SELECTEDVALUE inside measures. Direct equivalent Chart property: Calculation condition + Displayed message Calculation condition Qlik can refuse to calculate a chart until a condition is true, such as fewer than 3 teams selected, and show a message instead. Power BI has no such property. You build it with measures that return BLANK and a dynamic message, or with a visual-level filter on a flag measure. Partial / different approach Bookmarks: saved selections, sheet and layout Bookmarks Qlik bookmarks save the current selections (and optionally sheet layout). Power BI has report bookmarks, created by the author and shipped with the report, and personal bookmarks, created by each reader in the service. Direct equivalent Colors and legend → By expression, e.g. If(Sum(Sales) < 0, Red(), Green()) Color by expression Qlik colours chart elements with an expression that returns a colour. Power BI does the same with conditional formatting using "Field value": a measure returns a hex code or colour name. Direct equivalent Scheduled reloads, reload tasks and task chains Reload schedules and tasks A Qlik reload becomes a semantic model refresh in the Power BI service. On-premises sources need an on-premises data gateway. Chained tasks (load QVDs, then the app) become a Fabric Data Factory pipeline or an API-driven sequence. Partial / different approach Extract.qvf → QVD layer 1 → Transform.qvf → QVD layer 2 → app QVD layers (extract, transform, model) to Fabric The classic multi-tier QVD architecture maps to Fabric's medallion lakehouse: raw data (bronze) → cleaned (silver) → modelled star schema (gold), with a semantic model on top. Without Fabric, Power BI dataflows are the reuse layer, but they are not a full QVD replacement. Partial / different approach Qlik Sense streams / Qlik Cloud shared and managed spaces Streams and spaces to workspaces and apps Qlik separates authoring (personal and shared spaces) from consumption (managed spaces or streams). Power BI does the same with workspaces for building and Power BI apps for distributing to readers. Partial / different approach