SlideShare a Scribd company logo
1 of 40
Not quite what I was expecting
I went ahead and built my own report instead
Missed the mark
PAINFULLY SLOWDifficult to navigate
I’ll never use those features
Something like beforeI didn’t want you to change the way it’s always been done
IT’S NOT YOU.
IT’S YOUR DATA MODEL.
Premier Field Engineer - Data & AI | St Louis, MO
Workshops:
WorkshopPLUS - Business Analytics with Power BI
WorkshopPLUS - Advanced Data Analytics with Power BI
Professional:
Microsoft Certified Solutions Expert: Data Management and Analytics
Microsoft Certified Solutions Associate: BI Reporting (Excel, Power BI)
Microsoft Certified Associate: Azure AI Engineer
Microsoft Certified Trainer
Microsoft Technology Associate: Python
Microsoft Office Expert & Specialist: Excel, Access
Microsoft #HowWeExcel Contest Winner
Co-Organizer of the St Louis Power BI User Group #STLPBIUG
Personal:
Cats, Professional Wrestling, Data
Cubs Fan. Blackhawks Fan. Pineapple Pizza Fan. Probably a Monster.
USER EXPERIENCE (UX)
Refers to a person's emotions and attitudes about using a
product, system or service. It includes the practical,
experiential, affective, meaningful and valuable aspects
of human–computer interaction and product ownership.
Additionally, it includes a person’s perception of system aspects
such as ease of use, efficiency and utility.
Source (Wikipedia)
SESSION OBJECTIVES
1. Readability allows for discovery. (Ease of Use)
2. Performance considerations. (Efficiency)
3. Trust the abilities of your end users to learn. (Utility)
https://github.com/itsnotaboutthecell
CLEAN THAT
_______ UP.
FIELD NAMES
Type Example
Camel Case orderDate
Pascal Case OrderDate
Snake Case ORDER_DATE
DEMO
let
Source = #table(
type table [CUSTOMER_ID = Int64.Type, CUSTOMER_NAME = text, CUSTOMER_CITY = text, CUSTOMER_STATE = text],
{
{1, "Bob Smith", "Rockford", "IL"},
{2, "Randy Savage", "St Louis", "MO"},
{3, "Lucy Davis", "Lansing", "MI"}
}
),
// Replaces Underscore Field Name Values and Converts to Proper Casing
ReplaceUnderscores = Table.TransformColumnNames(Source,
each Text.Proper(
Text.Replace( _ , "_", " "
)))
in
ReplaceUnderscores
In the above let expression we transform our column names replacing underscores with a space and proper
casing with each loop. The underscore character is used to iterate thru each item in our column headers
collection.
let
Source = #table(
type table [CustomerID = Int64.Type, FullName = text, StreetAddress = text, CustomerCity = text, CustomerState = text],
{
{1, "Bob Smith", "123 Main St.", "Rockford", "IL"},
…
}
),
/*
Splits Column Header Characters When Transitioning From Lower Case to Upper Case to a list of Values
Wrapped in a Text Combine to Combine all List Values to a Scalar Text Value
*/
SplitByCharacter = Table.TransformColumnNames(Source,
each Text.Combine(
Splitter.SplitTextByCharacterTransition({"a".."z"}, {"A".."Z"})( _ )
, " ")
)
in
SplitByCharacter
In the above let expression we transform our column names splitting each text into a list by character by
transition whenever lower-cased characters in a list are followed by upper-cased characters in a list. The
split lists of text are combined including a space between each list item.
INTO THE
FOLD.
Microsoft Docs
FILTERS/JOINS
TRANSFORMATIONS
COLUMN
SELECTION
Transformations that can achieve query folding:
Relational data source transformations that can be query folded are
those that can be written as a single SELECT statement. A SELECT
statement can be constructed with appropriate WHERE, GROUP BY
and JOIN clauses. It can also contain column expressions
(calculations) that use common built-in functions supported by SQL
databases.
Transformations that prevent query folding:
Merging or appending queries based on different sources. The use
of complex logic that have no equivalent functions in the data
source.
PERFORMANCE
BEATS PRETTY
100% OF THE TIME, AT LEAST 50% OF THE TIME
BEHIND THE CURTAIN
1. Vertipaq Engine, Run Length Encoding, Optimal Sort Order.
2. You Can Get Kicked Out of Your Own Party.
3. Segmentation. Compression. Memory Consumption.
VERTIPAQ ENGINE
DATA
DICTIONARY
DICTIONARY
ENCODING
TABLEColor Value
Red 10
Blue 15
Green 13
Green 25
Yellow 31
Yellow 41
Red 11
Blue 14
Purple 21
Orange 6
Red 15
Follow Along: Colors
DICTIONARYID Color Value
0 Red 10
1 Blue 15
2 Green 13
2 Green 25
3 Yellow 31
3 Yellow 41
0 Red 11
1 Blue 14
4 Purple 21
5 Orange 6
0 Red 15
Dictionary ID Color
0 Red
1 Blue
2 Green
3 Yellow
4 Purple
5 Orange
DICTIONARYID Color Value
0 Red 10
1 Blue 15
2 Green 13
2 Green 25
3 Yellow 31
3 Yellow 41
0 Red 11
1 Blue 14
4 Purple 21
5 Orange 6
0 Red 15
Dictionary ID Color
0 Red
1 Blue
2 Green
3 Yellow
4 Purple
5 Orange
COLUMN ENCODING
ID Value
0 10
1 15
2 13
2 25
3 31
3 41
0 11
1 14
4 21
5 6
0 15
Dictionary ID Color
0 Red
1 Blue
2 Green
3 Yellow
4 Purple
5 Orange
EVALUATION
ID Value
0 10
1 15
2 13
2 25
3 31
3 41
0 11
1 14
4 21
5 6
0 15
Dictionary ID Color Value (SUM)
0 Red 36
1 Blue 29
2 Green 38
3 Yellow 72
4 Purple 21
5 Orange 6
OPTIMAL SORT ORDER
ID Value
0 10
0 11
0 15
1 15
1 14
2 13
2 25
3 31
3 41
4 21
5 6
Dictionary ID Color
0 Red
1 Blue
2 Green
3 Yellow
4 Purple
5 Orange
RUN LENGTH ENCODING
ID Value
0 10
0 11
0 15
1 15
1 14
2 13
2 25
3 31
3 41
4 21
5 6
Dictionary ID Color Start Count
0 Red 1 3
1 Blue 4 2
2 Green 6 2
3 Yellow 8 2
4 Purple 10 1
5 Orange 11 1
Dictionary ID Color
0 Red
1 Blue
2 Green
3 Yellow
4 Purple
5 Orange
ID Value
0 10
0 11
0 15
1 15
1 14
2 13
2 25
3 31
3 41
4 21
5 6
EVALUATION
Dictionary ID Color Value (SUM)
0 Red 36
1 Blue 29
2 Green 38
3 Yellow 72
4 Purple 21
5 Orange 6
DEMO
BEHIND THE CURTAIN
1. Vertipaq Engine, Run Length Encoding, Auto Sort.
2. You Can Get Kicked Out of Your Own Party.
3. Segmentation. Compression. Memory Consumption.
CARDINALITY
1. High-cardinality: columns with values that are very
uncommon or unique.
• DateTime
• Unique IDs (Not Needed For Relationships)
• Text (Freeform Fields)
• Numbers (Floating Point Precision)
2. Low-cardinality: columns with relatively few unique values.
• Date (365 Days a Year)
• Time (86,400 Seconds)
• True / False
• Currency (4 Digits after Decimal)
DEMO
BEHIND THE CURTAIN
1. Vertipaq Engine, Run Length Encoding, Auto Sort.
2. You Can Get Kicked Out of Your Own Party.
3. Segmentation. Compression.
RESOURCE CONSUMPTION
1M 1M 1M … Model
Compressed
Segment
Compressed
Segment
Data Model
(Hierarchies,
Calculated Columns,
Relationships)
Compressed
Segment
Compressed
Segment
Compressed
Segment
…
CPU
MEMORY
CPU
TAKEAWAYS
1. Only bring in what you need.
2. DateTime = BAD; unless necessary.
3. Calculated Column = POST compression.
• Perform Calculations Close to the Source (SQL or within Power Query)
DEMO
SWITCH ( TRUE(),
YOUR , BATTLES
)
END USE
1. Nothing is Free. Resource Consumption.
2. Be cautious with preview features.
3. Don’t assume your audience can’t learn.
4. Consistency. Consistency. Consistency.
5. Don’t risk your brand over someone else’s need for a pie chart.
6. Champion modern analytics within your organization.
• By 2020, 50% of analytical queries either will be generated via search, natural language processing or voice, or will be
automatically generated. (Gartner)
DEMO
CLOSING REMARKS
CONTROL WHAT YOU CAN CONTROL.
DELIVER BETTER THAN THE REQUEST.
QUESTIONS?
SUGGESTIONS?
YOU THINK I’M CRAZY?!
@notaboutthecell
/in/alexmpowers
Alex Power[s] BI

More Related Content

What's hot

Structure query language (sql)
Structure query language (sql)Structure query language (sql)
Structure query language (sql)Nalina Kumari
 
Intro to tsql unit 7
Intro to tsql   unit 7Intro to tsql   unit 7
Intro to tsql unit 7Syed Asrarali
 
Sql practise for beginners
Sql practise for beginnersSql practise for beginners
Sql practise for beginnersISsoft
 
Advanced SQL Webinar
Advanced SQL WebinarAdvanced SQL Webinar
Advanced SQL WebinarRam Kedem
 
Microsoft Excel and RS-232 peripherals protocol communication DDE
Microsoft Excel and RS-232 peripherals protocol communication DDEMicrosoft Excel and RS-232 peripherals protocol communication DDE
Microsoft Excel and RS-232 peripherals protocol communication DDEtopomax
 
Tip: Data Scoring: Convert data with XQuery
Tip: Data Scoring: Convert data with XQueryTip: Data Scoring: Convert data with XQuery
Tip: Data Scoring: Convert data with XQueryGeert Josten
 
Sql Basics | Edureka
Sql Basics | EdurekaSql Basics | Edureka
Sql Basics | EdurekaEdureka!
 
vFabric SQLFire for high performance data
vFabric SQLFire for high performance datavFabric SQLFire for high performance data
vFabric SQLFire for high performance dataVMware vFabric
 
BP208 Fabulous Feats with @Formula
BP208 Fabulous Feats with @FormulaBP208 Fabulous Feats with @Formula
BP208 Fabulous Feats with @FormulaKathy Brown
 
Sql ch 12 - creating database
Sql ch 12 - creating databaseSql ch 12 - creating database
Sql ch 12 - creating databaseMukesh Tekwani
 
Steps towards of sql server developer
Steps towards of sql server developerSteps towards of sql server developer
Steps towards of sql server developerAhsan Kabir
 
Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Bjarni Kristjánsson
 
Internet Environment
Internet  EnvironmentInternet  Environment
Internet Environmentguest8fdbdd
 

What's hot (20)

Structure query language (sql)
Structure query language (sql)Structure query language (sql)
Structure query language (sql)
 
Extensible Data Modeling
Extensible Data ModelingExtensible Data Modeling
Extensible Data Modeling
 
BIS05 Introduction to SQL
BIS05 Introduction to SQLBIS05 Introduction to SQL
BIS05 Introduction to SQL
 
Intro to tsql unit 7
Intro to tsql   unit 7Intro to tsql   unit 7
Intro to tsql unit 7
 
Sql practise for beginners
Sql practise for beginnersSql practise for beginners
Sql practise for beginners
 
Advanced SQL Webinar
Advanced SQL WebinarAdvanced SQL Webinar
Advanced SQL Webinar
 
Sql
SqlSql
Sql
 
Microsoft Excel and RS-232 peripherals protocol communication DDE
Microsoft Excel and RS-232 peripherals protocol communication DDEMicrosoft Excel and RS-232 peripherals protocol communication DDE
Microsoft Excel and RS-232 peripherals protocol communication DDE
 
Tip: Data Scoring: Convert data with XQuery
Tip: Data Scoring: Convert data with XQueryTip: Data Scoring: Convert data with XQuery
Tip: Data Scoring: Convert data with XQuery
 
Sql wksht-3
Sql wksht-3Sql wksht-3
Sql wksht-3
 
Sql Basics | Edureka
Sql Basics | EdurekaSql Basics | Edureka
Sql Basics | Edureka
 
vFabric SQLFire for high performance data
vFabric SQLFire for high performance datavFabric SQLFire for high performance data
vFabric SQLFire for high performance data
 
BP208 Fabulous Feats with @Formula
BP208 Fabulous Feats with @FormulaBP208 Fabulous Feats with @Formula
BP208 Fabulous Feats with @Formula
 
Sql ch 12 - creating database
Sql ch 12 - creating databaseSql ch 12 - creating database
Sql ch 12 - creating database
 
Sql ch 5
Sql ch 5Sql ch 5
Sql ch 5
 
Sq lite module7
Sq lite module7Sq lite module7
Sq lite module7
 
Steps towards of sql server developer
Steps towards of sql server developerSteps towards of sql server developer
Steps towards of sql server developer
 
Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012
 
Internet Environment
Internet  EnvironmentInternet  Environment
Internet Environment
 
Sql wksht-6
Sql wksht-6Sql wksht-6
Sql wksht-6
 

Similar to It's Not You. It's Your Data Model.

AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAmazon Web Services
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSAmazon Web Services
 
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...Taking the Performance of your Data Warehouse to the Next Level with Amazon R...
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...Amazon Web Services
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performanceguest9912e5
 
February 2016 Webinar Series - Introduction to DynamoDB
February 2016 Webinar Series - Introduction to DynamoDBFebruary 2016 Webinar Series - Introduction to DynamoDB
February 2016 Webinar Series - Introduction to DynamoDBAmazon Web Services
 
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceRob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceHeroku
 
Design Patterns using Amazon DynamoDB
 Design Patterns using Amazon DynamoDB Design Patterns using Amazon DynamoDB
Design Patterns using Amazon DynamoDBAmazon Web Services
 
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...Cathrine Wilhelmsen
 
Performance By Design
Performance By DesignPerformance By Design
Performance By DesignGuy Harrison
 
(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep Dive(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep DiveAmazon Web Services
 
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...Cathrine Wilhelmsen
 
Advanced MySQL Query Optimizations
Advanced MySQL Query OptimizationsAdvanced MySQL Query Optimizations
Advanced MySQL Query OptimizationsDave Stokes
 
Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Lviv Startup Club
 
Introduction to SQL Server Graph DB
Introduction to SQL Server Graph DBIntroduction to SQL Server Graph DB
Introduction to SQL Server Graph DBGreg McMurray
 
Getting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBGetting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBAmazon Web Services
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPBob Ward
 

Similar to It's Not You. It's Your Data Model. (20)

AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWS
 
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...Taking the Performance of your Data Warehouse to the Next Level with Amazon R...
Taking the Performance of your Data Warehouse to the Next Level with Amazon R...
 
Amazon DynamoDB 深入探討
Amazon DynamoDB 深入探討Amazon DynamoDB 深入探討
Amazon DynamoDB 深入探討
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance
 
February 2016 Webinar Series - Introduction to DynamoDB
February 2016 Webinar Series - Introduction to DynamoDBFebruary 2016 Webinar Series - Introduction to DynamoDB
February 2016 Webinar Series - Introduction to DynamoDB
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDBDeep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceRob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
 
Deep Dive: Amazon DynamoDB
Deep Dive: Amazon DynamoDBDeep Dive: Amazon DynamoDB
Deep Dive: Amazon DynamoDB
 
Design Patterns using Amazon DynamoDB
 Design Patterns using Amazon DynamoDB Design Patterns using Amazon DynamoDB
Design Patterns using Amazon DynamoDB
 
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLSat...
 
Performance By Design
Performance By DesignPerformance By Design
Performance By Design
 
(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep Dive(DAT401) Amazon DynamoDB Deep Dive
(DAT401) Amazon DynamoDB Deep Dive
 
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
Tools and Tips: From Accidental to Efficient Data Warehouse Developer (SQLBit...
 
Advanced MySQL Query Optimizations
Advanced MySQL Query OptimizationsAdvanced MySQL Query Optimizations
Advanced MySQL Query Optimizations
 
Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"
 
Introduction to SQL Server Graph DB
Introduction to SQL Server Graph DBIntroduction to SQL Server Graph DB
Introduction to SQL Server Graph DB
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDBDeep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
Getting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBGetting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDB
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTP
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

It's Not You. It's Your Data Model.

  • 1. Not quite what I was expecting I went ahead and built my own report instead Missed the mark PAINFULLY SLOWDifficult to navigate I’ll never use those features Something like beforeI didn’t want you to change the way it’s always been done
  • 2. IT’S NOT YOU. IT’S YOUR DATA MODEL.
  • 3. Premier Field Engineer - Data & AI | St Louis, MO Workshops: WorkshopPLUS - Business Analytics with Power BI WorkshopPLUS - Advanced Data Analytics with Power BI Professional: Microsoft Certified Solutions Expert: Data Management and Analytics Microsoft Certified Solutions Associate: BI Reporting (Excel, Power BI) Microsoft Certified Associate: Azure AI Engineer Microsoft Certified Trainer Microsoft Technology Associate: Python Microsoft Office Expert & Specialist: Excel, Access Microsoft #HowWeExcel Contest Winner Co-Organizer of the St Louis Power BI User Group #STLPBIUG Personal: Cats, Professional Wrestling, Data Cubs Fan. Blackhawks Fan. Pineapple Pizza Fan. Probably a Monster.
  • 4. USER EXPERIENCE (UX) Refers to a person's emotions and attitudes about using a product, system or service. It includes the practical, experiential, affective, meaningful and valuable aspects of human–computer interaction and product ownership. Additionally, it includes a person’s perception of system aspects such as ease of use, efficiency and utility. Source (Wikipedia)
  • 5. SESSION OBJECTIVES 1. Readability allows for discovery. (Ease of Use) 2. Performance considerations. (Efficiency) 3. Trust the abilities of your end users to learn. (Utility)
  • 8. FIELD NAMES Type Example Camel Case orderDate Pascal Case OrderDate Snake Case ORDER_DATE
  • 10. let Source = #table( type table [CUSTOMER_ID = Int64.Type, CUSTOMER_NAME = text, CUSTOMER_CITY = text, CUSTOMER_STATE = text], { {1, "Bob Smith", "Rockford", "IL"}, {2, "Randy Savage", "St Louis", "MO"}, {3, "Lucy Davis", "Lansing", "MI"} } ), // Replaces Underscore Field Name Values and Converts to Proper Casing ReplaceUnderscores = Table.TransformColumnNames(Source, each Text.Proper( Text.Replace( _ , "_", " " ))) in ReplaceUnderscores In the above let expression we transform our column names replacing underscores with a space and proper casing with each loop. The underscore character is used to iterate thru each item in our column headers collection.
  • 11. let Source = #table( type table [CustomerID = Int64.Type, FullName = text, StreetAddress = text, CustomerCity = text, CustomerState = text], { {1, "Bob Smith", "123 Main St.", "Rockford", "IL"}, … } ), /* Splits Column Header Characters When Transitioning From Lower Case to Upper Case to a list of Values Wrapped in a Text Combine to Combine all List Values to a Scalar Text Value */ SplitByCharacter = Table.TransformColumnNames(Source, each Text.Combine( Splitter.SplitTextByCharacterTransition({"a".."z"}, {"A".."Z"})( _ ) , " ") ) in SplitByCharacter In the above let expression we transform our column names splitting each text into a list by character by transition whenever lower-cased characters in a list are followed by upper-cased characters in a list. The split lists of text are combined including a space between each list item.
  • 14. FILTERS/JOINS TRANSFORMATIONS COLUMN SELECTION Transformations that can achieve query folding: Relational data source transformations that can be query folded are those that can be written as a single SELECT statement. A SELECT statement can be constructed with appropriate WHERE, GROUP BY and JOIN clauses. It can also contain column expressions (calculations) that use common built-in functions supported by SQL databases. Transformations that prevent query folding: Merging or appending queries based on different sources. The use of complex logic that have no equivalent functions in the data source.
  • 15.
  • 16. PERFORMANCE BEATS PRETTY 100% OF THE TIME, AT LEAST 50% OF THE TIME
  • 17. BEHIND THE CURTAIN 1. Vertipaq Engine, Run Length Encoding, Optimal Sort Order. 2. You Can Get Kicked Out of Your Own Party. 3. Segmentation. Compression. Memory Consumption.
  • 19. TABLEColor Value Red 10 Blue 15 Green 13 Green 25 Yellow 31 Yellow 41 Red 11 Blue 14 Purple 21 Orange 6 Red 15 Follow Along: Colors
  • 20. DICTIONARYID Color Value 0 Red 10 1 Blue 15 2 Green 13 2 Green 25 3 Yellow 31 3 Yellow 41 0 Red 11 1 Blue 14 4 Purple 21 5 Orange 6 0 Red 15 Dictionary ID Color 0 Red 1 Blue 2 Green 3 Yellow 4 Purple 5 Orange
  • 21. DICTIONARYID Color Value 0 Red 10 1 Blue 15 2 Green 13 2 Green 25 3 Yellow 31 3 Yellow 41 0 Red 11 1 Blue 14 4 Purple 21 5 Orange 6 0 Red 15 Dictionary ID Color 0 Red 1 Blue 2 Green 3 Yellow 4 Purple 5 Orange
  • 22. COLUMN ENCODING ID Value 0 10 1 15 2 13 2 25 3 31 3 41 0 11 1 14 4 21 5 6 0 15 Dictionary ID Color 0 Red 1 Blue 2 Green 3 Yellow 4 Purple 5 Orange
  • 23. EVALUATION ID Value 0 10 1 15 2 13 2 25 3 31 3 41 0 11 1 14 4 21 5 6 0 15 Dictionary ID Color Value (SUM) 0 Red 36 1 Blue 29 2 Green 38 3 Yellow 72 4 Purple 21 5 Orange 6
  • 24. OPTIMAL SORT ORDER ID Value 0 10 0 11 0 15 1 15 1 14 2 13 2 25 3 31 3 41 4 21 5 6 Dictionary ID Color 0 Red 1 Blue 2 Green 3 Yellow 4 Purple 5 Orange
  • 25. RUN LENGTH ENCODING ID Value 0 10 0 11 0 15 1 15 1 14 2 13 2 25 3 31 3 41 4 21 5 6 Dictionary ID Color Start Count 0 Red 1 3 1 Blue 4 2 2 Green 6 2 3 Yellow 8 2 4 Purple 10 1 5 Orange 11 1 Dictionary ID Color 0 Red 1 Blue 2 Green 3 Yellow 4 Purple 5 Orange
  • 26. ID Value 0 10 0 11 0 15 1 15 1 14 2 13 2 25 3 31 3 41 4 21 5 6 EVALUATION Dictionary ID Color Value (SUM) 0 Red 36 1 Blue 29 2 Green 38 3 Yellow 72 4 Purple 21 5 Orange 6
  • 27. DEMO
  • 28. BEHIND THE CURTAIN 1. Vertipaq Engine, Run Length Encoding, Auto Sort. 2. You Can Get Kicked Out of Your Own Party. 3. Segmentation. Compression. Memory Consumption.
  • 29. CARDINALITY 1. High-cardinality: columns with values that are very uncommon or unique. • DateTime • Unique IDs (Not Needed For Relationships) • Text (Freeform Fields) • Numbers (Floating Point Precision) 2. Low-cardinality: columns with relatively few unique values. • Date (365 Days a Year) • Time (86,400 Seconds) • True / False • Currency (4 Digits after Decimal)
  • 30. DEMO
  • 31. BEHIND THE CURTAIN 1. Vertipaq Engine, Run Length Encoding, Auto Sort. 2. You Can Get Kicked Out of Your Own Party. 3. Segmentation. Compression.
  • 32. RESOURCE CONSUMPTION 1M 1M 1M … Model Compressed Segment Compressed Segment Data Model (Hierarchies, Calculated Columns, Relationships) Compressed Segment Compressed Segment Compressed Segment … CPU MEMORY CPU
  • 33. TAKEAWAYS 1. Only bring in what you need. 2. DateTime = BAD; unless necessary. 3. Calculated Column = POST compression. • Perform Calculations Close to the Source (SQL or within Power Query)
  • 34. DEMO
  • 35. SWITCH ( TRUE(), YOUR , BATTLES )
  • 36. END USE 1. Nothing is Free. Resource Consumption. 2. Be cautious with preview features. 3. Don’t assume your audience can’t learn. 4. Consistency. Consistency. Consistency. 5. Don’t risk your brand over someone else’s need for a pie chart. 6. Champion modern analytics within your organization. • By 2020, 50% of analytical queries either will be generated via search, natural language processing or voice, or will be automatically generated. (Gartner)
  • 37. DEMO
  • 38. CLOSING REMARKS CONTROL WHAT YOU CAN CONTROL. DELIVER BETTER THAN THE REQUEST.