Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Markus Ehrenmueller-Jensen

Rating No ratings yet

Data modeling is the single most overlooked feature in Power BI Desktop, yet it's what sets Power BI apart from other tools on the market. This practical book serves as your fast-forward button for data modeling with Power BI, Analysis Services tabular, and SQL databases. It serves as a starting point for data modeling, as well as a handy refresher. Author Markus Ehrenmueller-Jensen, founder of Savory Data, shows you the basic concepts of Power BI's semantic model with hands-on examples in DAX, Power Query, and T-SQL. If you're looking to build a data warehouse layer, chapters with T-SQL examples will get you started. You'll begin with simple steps and gradually solve more complex problems. This book shows you how to • Normalize and denormalize with DAX, Power Query, and T-SQL • Apply best practices for calculations, flags and indicators, time and date, role-playing dimensions and slowly changing dimensions • Solve challenges such as binning, budget, localized models, composite models, and key value with DAX, Power Query, and T-SQL • Discover and tackle performance issues by applying solutions in DAX, Power Query, and T-SQL • Work with tables, relations, set operations, normal forms, dimensional modeling, and ETL

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A practical, example-driven guide to designing Power BI semantic models that actually perform—covering star schemas, DAX, Power Query, and T-SQL for both self-service and enterprise data warehouse work. Best for BI developers, analysts, and data engineers who already know Power BI basics but want to stop fighting their data model. 【Book Arc】 - **Opening (~0%–10%)**: Frames why data modeling is the overlooked cornerstone of Power BI, introduces the semantic model, and positions Analysis Services tabular as Power BI minus the report layer. - **Early (~10%–30%)**: Builds fundamentals—tables, keys (natural, business, surrogate), relationships, cardinality, ERDs, joins, and the fan trap/chasm problems—then argues for star schema over single-table or fully normalized designs. - **Early–Middle (~30%–45%)**: Moves into real-world patterns: binning, budget models with multiple fact tables, multi-language models, key-value pair tables, role-playing dimensions, and slowly changing dimensions. - **Middle (~45%–60%)**: Explores the Power BI model surface itself—table and column properties, storage modes (import vs. DirectQuery), relationship management, referential integrity, and hiding/visibility practices. - **Late (~60%–85%)**: Applies the same modeling challenges across three implementation paths—DAX, Power Query/M, and T-SQL—so solutions can be reused at different project stages. - **Ending (~85%–100%)**: Closes with performance troubleshooting and enterprise data warehouse concerns, tying modeling decisions back to query speed and cost. 【Key Takeaways】 - **The data model, not the DAX, is the real leverage point** (Opening): a good star schema reduces the need for complex DAX gymnastics and improves performance and cost. (Opening) - **Star schema is the target shape for Power BI** (Early): the VertiPaq engine is optimized for star schemas, so single-table, fully normalized, header-detail, and key-value designs are treated as anti-patterns to transform—not because they're objectively worse, but because reporting tools reward star schemas. (Early) - **Keys deserve deliberate design** (Early): surrogate keys are artificial, integer, join-only values never exposed to report users; natural and business keys serve different purposes and shouldn't be conflated. (Early) - **Cardinality and ERDs prevent structural bugs** (Early): documenting one-to-many relationships and drawing entity relationship diagrams helps you place foreign keys correctly and spot fan traps and chasms before they reach reports. (Early) - **Real projects hit recurring patterns** (Early–Middle): binning, budget (multiple fact tables), multi-language models, key-value pair tables, role-playing dimensions, and slowly changing dimensions are the use cases the book treats in depth. (Early–Middle) - **Key-value tables are flexible to write, painful to query** (Middle): they suit application developers but require pivoting and explicit data typing before they become reportable; self-joins can sometimes turn them into correlation-friendly matrices. (Middle) - **Storage mode is a modeling decision** (Middle): choosing between importing a copy and querying the source via DirectQuery changes performance, refresh behavior, and how you must guarantee referential integrity. (Middle) - **The same problem has three solutions** (Late): the book deliberately shows implementations in DAX, Power Query/M, and T-SQL so you can apply the fix at the layer that fits your architecture. (Late) 【Reading Tips】 - Read Chapters 1–2 carefully and don't skip them—the author explicitly warns that advanced use cases become frustrating without the star schema foundation. - Treat the DAX / Power Query / T-SQL triples as a menu, not a sequence: pick the path matching your project's layer and skim the others. - Deep-read the real-world examples chapter if you're already comfortable with star schemas; it's where the practical value concentrates. - Pay attention to model properties (descriptions, synonyms, row labels, hidden tables) if you support Q&A or Excel users—these are easy to overlook and cheap to get right. - Keep an ERD of your own model alongside the book; the fan trap and chasm discussions are far more useful when applied to your actual tables. 【Coverage Limits】 This guide is synthesized from stratified excerpts covering roughly the first half of the book plus the preface and table of contents; the later DAX, Power Query, T-SQL, and performance chapters are represented mainly by their stated topics rather than detailed content. Specific examples, figures, and chapter-level arguments beyond the excerpts are not covered.
Page 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Data Model 4 Basic Components 5 Entity 5 Tables 6 Relationships 6 Primary Keys...
View in text
Excerpt 2
k to read how you solve this in DAX, Power Query/M and SQL. As you can see in the screenshots, drawing the tables and the cardinality of their rela‐ tionship...
View in text
Excerpt 3
creator will need a way to specify which role the dimension should play in a visualization. You can also assign different roles by loading the table twice in...
View in text
Excerpt 4
tains only hidden columns, then the table is hidden as well. Hiding a table changes the “Is hidden” property of all columns within the table. If you unhide a...
View in text
Excerpt 5
ing is propagated, the Date column’s time will be midnight, while the Date/Time-type column’s time will be the actual timestamp—and no related columns will b...
View in text
Excerpt 6
with the help of the CONCATENATE function or the & operator. CONCATENATE only allows for a pair of parameters, so you need to wrap multiple calls to this fun...
View in text
Excerpt 7
s = SELECTCOLUMNS(GENERATESERIES(0, 59), "Minute", [Value]) VAR HoursMinutes = CROSSJOIN(Hours, Minutes) RETURN ADDCOLUMNS( HoursMinutes, "Time", TIME([Hour]...
View in text
Excerpt 8
data out of them into one of the other available data types. A column of this type will not be loaded into the Power BI data model. 246 | Chapter 13: Underst...
View in text
Tags
AI categories
DataBig DataDatabase
ISBN: 109814855X
Publish Year: 2024
Language: English
Pages: 485
File Format: PDF
File Size: 15.5 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…