SlideShare a Scribd company logo
San Francisco
2014-04-03
!
@julianhyde
What’s new
in Mondrian 4?
San Francisco
2014-04-03
!
@julianhyde
What’s new
in Mondrian 4?
April 3rd, 2014
@julianhyde
What’s new in
Mondrian 4?
Mondrian 4 – What's new?
• Attributes & dimensions
• Physical schema
• Measure groups & aggregate tables
• Internals
• Delivery
• Futures
4
Richer schema
5
Richer semantic model
Features
!
Attributes and Measures
Dimensions as buckets of attributes
Hierarchies to make navigation easier
Physical schema:
• Only define tables, columns,
relationships once
• Composite keys
Measure groups representing fact and
aggregate tables
Goals
!
Easier schema evolution
More flexible for user
• “Attribute-oriented
analysis”
Wider range of schemas
Non-SQL databases
6
Attributes
Mondrian 3: Dimension, Hierarchy, Level
Mondrian 4: Dimension, Attribute
!
Dimension: Customer
Attributes: Nation, Gender, Zipcode, State, City,
Age, Name
Hierarchy: Customers {Nation, State, City,
Name}
Attribute hierarchies: Nation, Gender, Zipcode,
State, City, Age, Name (created automatically)
7
Hierarchies
Hierarchies are much less important in Mondrian
4 than Mondrian 3.
Build dimensions and attributes first, hierarchies
& levels later.
Hierarchies optimize the user experience —
double-click to drill
8
Defining an attribute
<Attribute> attributes:
• Key column (or columns if composite)
• Name (default key)
• Caption (default name)
• Order column (default name)
• Properties
All of this stuff was in <Level> in Mondrian-3.
Attribute key must be unique:
• [Customer].[City].&[San Francisco]&[CA]
• [Time].[Month].&[4]&[2014]
9
Physical schema
• Define joins, data types, SQL expressions only
once
• Portability across different kinds of database
(including non-SQL), and multiple databases


<PhysicalSchema>

<Table name='product' keyColumn='product_id'/>

<Table name=‘product_class’ keyColumn=‘product_class_id’/>

<Link target='product' source='product_class'>

<ForeignKey>

<Column name='product_class_id'/>

</ForeignKey>

</Link>
10
Calculated columns
• <Column/> element allows Mondrian to use correct
table alias
<PhysicalSchema>

<Table name='customer'>

<Key>

<Column name='customer_id'/>

</Key>

<ColumnDefs>

<CalculatedColumnDef name='full_name' type='String'>

<ExpressionView>

<SQL dialect='oracle'>

<Column name='fname'/> || ' ' || <Column name='lname'/>

</SQL>

<SQL dialect='access'>

<Column name='fname'/> + ' ' + <Column name='lname'/>

</SQL>
11
Localization
<Cube name='Sales' defaultMeasure='Unit Sales'>

<Annotations>

<Annotation name='caption.de_DE'>Verkaufen</Annotation>

<Annotation name='caption.fr_FR'>Ventes</Annotation>

<Annotation name='caption+fr_FR'>Ventes</Annotation>

<Annotation name='description.fr_FR'>Cube des ventes</Annotation>

<Annotation name='description.de'>Cube Verkaufen</Annotation>

<Annotation name='description.de_AT'>Cube den Verkaufen</Annotation>

</Annotations>
Measure groups
In Mondrian 3.x, if you want a cube with multiple
fact tables, you build a virtual cube:
!
<Cube name=“Sales”>

<Table name=“sales_fact”/>

</Cube>



<Cube name=“Warehouse”>

<Table name=“warehouse_fact”/>

</Cube>



<VirtualCube name=“Warehouse and Sales”>

<Cube name=“Sales”/>

<Cube name=“Warehouse”/>

</VirtualCube>
• In Mondrian 4, cubes can
contain multiple
measure groups
• Virtual cubes are obsolete
• Many-to-many association
between measure
groups and dimensions
• Different ways to link
dimensions to fact
tables
• Aggregate tables are
measure groups
Measure groups (2)


<Cube name=“Warehouse and Sales”>

<MeasureGroups>

<MeasureGroup name=“Sales”>

<Table name=“sales_fact”/>

<Measure name=“unit_sales”/>

</MeasureGroup>

<MeasureGroup name=“Warehouse”>

<Table name=“warehouse_fact”/>

<Measure name=“inventory_units”/>

</MeasureGroup>

</MeasureGroups>

</Cube>
Sales Warehouse
Time X X
Product X X
Customer X
Warehouse X
14
Fact tables
15
Simple aggregate table
16
More complex aggregate table
17
Hybrid fact/aggregate tables
Measure groups (fact tables):
• Have varying dimensionality, granularity;
• Reference dimension tables;
• Store un-aggregated measures.
Aggregate tables:
• Have various dimensionality, granularity;
• Sometimes reference dimension tables;
• Store aggregated measures.
!
Let’s store measures in aggregate tables!
Better… let’s make aggregate tables and measure groups
the same thing.
18
Delivering Mondrian 4
What's new in Mondrian 4?
20
Gone Replacement
Mondrian 3 schema Mondrian 4 schema
upgrader
Aggregate recognizer Aggregate table API
(define, enable, disable)
Schema workbench Pentaho modeler (?)
XMLA server olap4j-xmlaserver (github)
Hierarchy syntax
● [Time.Weekly].[Day]
● [Time].[Month]
SSAS-style syntax
● [Time].[Weekly].[Day]
● [Time].[Time].[Month]
JPivot no longer in distro Get your own UI: Analyzer,
Saiku, Pivot4J
21
Done Remaining
The important things
work!
Ragged hierarchies
Schema converter Aggregate table API
3,224 of 3,277 tests
pass
Pentaho modeler
Analyzer, Saiku, Pivot4J
integration
Complex schema
mappings
BA server compliance
testing
Beta
1. Binaries at http://repo.pentaho.org/artifactory/repo under
pentaho:mondrian:4.0.0
2. Run Mondrian-4 on your current schema
● Auto-upgrade
● Schema converter tool TBA
● MDX syntax differences
mondrian.olap.SsasCompatibleNaming=true
3. Write a new-style schema
4. Log bugs http://jira.pentaho.com/browse/MONDRIAN or send a
pull request: https://github.com/pentaho/mondrian/tree/lagunitas
5. Getting started: http://mondrian.pentaho.com/documentation/
developers_guide.php
6. Running Mondrian as an XMLA service: https://github.com/
ThoughtWorksInc/mondrian-xmla-spike
23
Mondrian 4 in Pentaho BA server
• Mondrian 4 is an OSGI compatible module. It can be used
alongside Mondrian 3.
• Both versions of Mondrian are available.
• Create olap4j connections to either one:
“jdbc:mondrian:Catalog=…” or
“jdbc:mondrian4:Catalog=…”
• Behind the scenes, we inject our OSGI driver into the top-
level class loader and we register with the
java.sql.DriverManager
• Caveat: All classpath resources must also be OSGI
compatible and bundled as modules. (No loose files in
WEB-INF/classes.)
• Third party plugins: Most of the more popular analysis UIs of
the Pentaho ecosystem already support Mondrian 4.
Future features
Connections
● Defined in schema
● Multiple connections
● Non-SQL databases
!
Advanced SQL generation
Multiple connections in schema


<Schema name='FoodMart'>

<Connections>

<Connection name='default' default='true' uuid='abcd-1234'>

<Jdbc>jdbc:mysql://localhost/foodmart</Jdbc>

<JdbcUser>foodmart</JdbcUser>

<JdbcPassword>foodmart</JdbcPassword>

</Connection>

<Connection name='aggs' default='false' uuid='abcd-2345'>

<Jdbc>jdbc:mysql://localhost/foodmartAggs</Jdbc>

<JdbcUser>foodmartAggs</JdbcUser>

<Properties>

<Property name='prop1'>value1</Property>

<Property name='prop2'>value2</Property>

</Properties>

</Connection>

</Connections>!
● Cannot join tables from different connections
● Also: non-JDBC connection (via SPI or Optiq)
Advanced SQL generation
● Access control
● Killing big IN lists
● Push down aggregates (esp. time ranges)
● Evaluate as much as possible of the MDX query
in SQL
● Pivot & decompose
● MDX query planning
● Cache segments as in-memory tables
What's new in Mondrian 4?
Summary
Mondrian 4 – A major improvement to Mondrian
model & engine
!
As compatible as possible
!
Will enable further improvements in performance
/ flexibility in upcoming releases
Questions?
@julianhyde
http://julianhyde.blogspot.com
http://github.com/julianhyde
http://community.pentaho.com/projects/mondrian/
San Francisco
2014-04-03
!
@julianhyde
What’s new
in Mondrian 4?

More Related Content

PDF
Redis vs Infinispan | DevNation Tech Talk
Red Hat Developers
 
PDF
Apache Flink 101 - the rise of stream processing and beyond
Bowen Li
 
PPT
Red Hat Ansible 적용 사례
Opennaru, inc.
 
PDF
SPARK SQL
Juhui Park
 
PDF
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
HostedbyConfluent
 
PDF
Beginner’s guide to sap abap 1
Panduka Bandara
 
PDF
What Is Spring?
VMware Tanzu
 
PPT
Asap implementation methodology (2)
Pradipta Mallick
 
Redis vs Infinispan | DevNation Tech Talk
Red Hat Developers
 
Apache Flink 101 - the rise of stream processing and beyond
Bowen Li
 
Red Hat Ansible 적용 사례
Opennaru, inc.
 
SPARK SQL
Juhui Park
 
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
HostedbyConfluent
 
Beginner’s guide to sap abap 1
Panduka Bandara
 
What Is Spring?
VMware Tanzu
 
Asap implementation methodology (2)
Pradipta Mallick
 

What's hot (20)

PDF
What is Apache Kafka and What is an Event Streaming Platform?
confluent
 
PPT
HR ABAP
Anik Chowdhury
 
PDF
Implementing Domain Events with Kafka
Andrei Rugina
 
PDF
Big Data into the MuleSoft world
Coforge (Erstwhile WHISHWORKS)
 
PPTX
The top 3 challenges running multi-tenant Flink at scale
Flink Forward
 
PPTX
Distributed Transaction in Microservice
Nghia Minh
 
PDF
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
 
PDF
Kotlin coroutine - behind the scenes
Anh Vu
 
PPTX
Micro-Services RabbitMQ vs Kafka
Gabriele Santomaggio
 
PPTX
Enterprise Architecture & IT standards
Louw Labuschagne
 
PPTX
Where and when to use the Oracle Service Bus (OSB)
Guido Schmutz
 
PPTX
Stability Patterns for Microservices
pflueras
 
PPTX
SAP BADI Implementation Learning for Functional Consultant
Ankit Sharma
 
PPT
Sap Hcm L 1 Ppt V1.0
Aditi Tarafdar
 
PDF
Management Zabbix with Terraform
Aécio Pires
 
PDF
Patterns of resilience
Uwe Friedrichsen
 
PDF
Abap hr programing
lankapothu sudhakarreddy
 
PDF
Sapwebinar2 how 2transition2s4hanagetyourdatacleanandkeepitclean1569951002523
Steffen König
 
PDF
Introducing EDB Failover Manager
EDB
 
PPT
Data migration
Vatsala Chauhan
 
What is Apache Kafka and What is an Event Streaming Platform?
confluent
 
Implementing Domain Events with Kafka
Andrei Rugina
 
Big Data into the MuleSoft world
Coforge (Erstwhile WHISHWORKS)
 
The top 3 challenges running multi-tenant Flink at scale
Flink Forward
 
Distributed Transaction in Microservice
Nghia Minh
 
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
 
Kotlin coroutine - behind the scenes
Anh Vu
 
Micro-Services RabbitMQ vs Kafka
Gabriele Santomaggio
 
Enterprise Architecture & IT standards
Louw Labuschagne
 
Where and when to use the Oracle Service Bus (OSB)
Guido Schmutz
 
Stability Patterns for Microservices
pflueras
 
SAP BADI Implementation Learning for Functional Consultant
Ankit Sharma
 
Sap Hcm L 1 Ppt V1.0
Aditi Tarafdar
 
Management Zabbix with Terraform
Aécio Pires
 
Patterns of resilience
Uwe Friedrichsen
 
Abap hr programing
lankapothu sudhakarreddy
 
Sapwebinar2 how 2transition2s4hanagetyourdatacleanandkeepitclean1569951002523
Steffen König
 
Introducing EDB Failover Manager
EDB
 
Data migration
Vatsala Chauhan
 
Ad

Viewers also liked (20)

PDF
Streaming SQL (at FlinkForward, Berlin, 2016/09/12)
Julian Hyde
 
PDF
Cost-based Query Optimization in Apache Phoenix using Apache Calcite
Julian Hyde
 
PPT
Mondrian applying dynamic security - Pentaho
David Fombella Pombal
 
PDF
Streaming SQL
Julian Hyde
 
PPTX
Discardable In-Memory Materialized Queries With Hadoop
Julian Hyde
 
PDF
The twins that everyone loved too much
Julian Hyde
 
PDF
Optiq: A dynamic data management framework
Julian Hyde
 
PDF
Why you care about
 relational algebra (even though you didn’t know it)
Julian Hyde
 
PDF
Cost-based query optimization in Apache Hive 0.14
Julian Hyde
 
PDF
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Julian Hyde
 
PPTX
Cost-based query optimization in Apache Hive 0.14
Julian Hyde
 
PDF
Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/Trident
Julian Hyde
 
PDF
SQL on everything, in memory
Julian Hyde
 
PDF
Apache Calcite: One planner fits all
Julian Hyde
 
PDF
Streaming SQL
Julian Hyde
 
PDF
Streaming SQL
Julian Hyde
 
PDF
Streaming SQL with Apache Calcite
Julian Hyde
 
PPTX
Apache Calcite overview
Julian Hyde
 
PPTX
Cost-based query optimization in Apache Hive
Julian Hyde
 
PDF
Streaming SQL
Julian Hyde
 
Streaming SQL (at FlinkForward, Berlin, 2016/09/12)
Julian Hyde
 
Cost-based Query Optimization in Apache Phoenix using Apache Calcite
Julian Hyde
 
Mondrian applying dynamic security - Pentaho
David Fombella Pombal
 
Streaming SQL
Julian Hyde
 
Discardable In-Memory Materialized Queries With Hadoop
Julian Hyde
 
The twins that everyone loved too much
Julian Hyde
 
Optiq: A dynamic data management framework
Julian Hyde
 
Why you care about
 relational algebra (even though you didn’t know it)
Julian Hyde
 
Cost-based query optimization in Apache Hive 0.14
Julian Hyde
 
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Julian Hyde
 
Cost-based query optimization in Apache Hive 0.14
Julian Hyde
 
Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/Trident
Julian Hyde
 
SQL on everything, in memory
Julian Hyde
 
Apache Calcite: One planner fits all
Julian Hyde
 
Streaming SQL
Julian Hyde
 
Streaming SQL
Julian Hyde
 
Streaming SQL with Apache Calcite
Julian Hyde
 
Apache Calcite overview
Julian Hyde
 
Cost-based query optimization in Apache Hive
Julian Hyde
 
Streaming SQL
Julian Hyde
 
Ad

Similar to What's new in Mondrian 4? (20)

PPT
Mondrian update (Pentaho community meetup 2012, Amsterdam)
Julian Hyde
 
PPTX
Retail referencearchitecture productcatalog
MongoDB
 
PPTX
Unify Your Selling Channels in One Product Catalog Service
MongoDB
 
PPTX
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
PDF
Building rednoseday.com on Drupal 8
Peter Vanhee
 
PPTX
Prepare for Peak Holiday Season with MongoDB
MongoDB
 
PDF
Data Analysis with Microsoft Power Bi - eBook PDF
laddsubych57
 
PPTX
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
SearchStax
 
DOCX
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
elearnsap
 
PPTX
SAP Business Objects - Lopes Supermarket
Douglas Bernardini
 
PPTX
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Rittman Analytics
 
PPTX
Cassandra's Sweet Spot - an introduction to Apache Cassandra
Dave Gardner
 
PDF
Ember vs Backbone
Abdriy Mosin
 
PDF
Grails patterns and practices
paulbowler
 
PDF
Salesforce Analytics Cloud - Explained
Carl Brundage
 
PDF
Instant Download Data Analysis with Microsoft Power Bi - eBook PDF PDF All Ch...
jiliensinesh
 
PDF
Download Data Analysis with Microsoft Power Bi - eBook PDF ebook All Chapters...
sygsiiotchie
 
PDF
Building Responsive Applications Using XPages
Teamstudio
 
PPT
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Sébastien Le Marchand
 
PPTX
Where to save my data, for devs!
SharePoint Saturday New Jersey
 
Mondrian update (Pentaho community meetup 2012, Amsterdam)
Julian Hyde
 
Retail referencearchitecture productcatalog
MongoDB
 
Unify Your Selling Channels in One Product Catalog Service
MongoDB
 
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
Building rednoseday.com on Drupal 8
Peter Vanhee
 
Prepare for Peak Holiday Season with MongoDB
MongoDB
 
Data Analysis with Microsoft Power Bi - eBook PDF
laddsubych57
 
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
SearchStax
 
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
elearnsap
 
SAP Business Objects - Lopes Supermarket
Douglas Bernardini
 
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Rittman Analytics
 
Cassandra's Sweet Spot - an introduction to Apache Cassandra
Dave Gardner
 
Ember vs Backbone
Abdriy Mosin
 
Grails patterns and practices
paulbowler
 
Salesforce Analytics Cloud - Explained
Carl Brundage
 
Instant Download Data Analysis with Microsoft Power Bi - eBook PDF PDF All Ch...
jiliensinesh
 
Download Data Analysis with Microsoft Power Bi - eBook PDF ebook All Chapters...
sygsiiotchie
 
Building Responsive Applications Using XPages
Teamstudio
 
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Sébastien Le Marchand
 
Where to save my data, for devs!
SharePoint Saturday New Jersey
 

More from Julian Hyde (20)

PPTX
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
PDF
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Julian Hyde
 
PDF
Building a semantic/metrics layer using Calcite
Julian Hyde
 
PDF
Cubing and Metrics in SQL, oh my!
Julian Hyde
 
PDF
Adding measures to Calcite SQL
Julian Hyde
 
PDF
Morel, a data-parallel programming language
Julian Hyde
 
PDF
Is there a perfect data-parallel programming language? (Experiments with More...
Julian Hyde
 
PDF
Morel, a Functional Query Language
Julian Hyde
 
PDF
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
PDF
The evolution of Apache Calcite and its Community
Julian Hyde
 
PDF
What to expect when you're Incubating
Julian Hyde
 
PDF
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Julian Hyde
 
PDF
Efficient spatial queries on vanilla databases
Julian Hyde
 
PDF
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Julian Hyde
 
PDF
Tactical data engineering
Julian Hyde
 
PDF
Don't optimize my queries, organize my data!
Julian Hyde
 
PDF
Spatial query on vanilla databases
Julian Hyde
 
PDF
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
Julian Hyde
 
PDF
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Julian Hyde
 
PPTX
Lazy beats Smart and Fast
Julian Hyde
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Julian Hyde
 
Building a semantic/metrics layer using Calcite
Julian Hyde
 
Cubing and Metrics in SQL, oh my!
Julian Hyde
 
Adding measures to Calcite SQL
Julian Hyde
 
Morel, a data-parallel programming language
Julian Hyde
 
Is there a perfect data-parallel programming language? (Experiments with More...
Julian Hyde
 
Morel, a Functional Query Language
Julian Hyde
 
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
The evolution of Apache Calcite and its Community
Julian Hyde
 
What to expect when you're Incubating
Julian Hyde
 
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Julian Hyde
 
Efficient spatial queries on vanilla databases
Julian Hyde
 
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Julian Hyde
 
Tactical data engineering
Julian Hyde
 
Don't optimize my queries, organize my data!
Julian Hyde
 
Spatial query on vanilla databases
Julian Hyde
 
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
Julian Hyde
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Julian Hyde
 
Lazy beats Smart and Fast
Julian Hyde
 

Recently uploaded (20)

PDF
A Systems Thinking Approach to Algorithmic Fairness.pdf
Epistamai
 
PPTX
Lecture 1 Intro in Inferential Statistics.pptx
MiraLamuton
 
PDF
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 
PPTX
Measurement of Afordability for Water Supply and Sanitation in Bangladesh .pptx
akmibrahimbd
 
PDF
345_IT infrastructure for business management.pdf
LEANHTRAN4
 
PPTX
Logistic Regression ml machine learning.pptx
abdullahcocindia
 
PDF
CH2-MODEL-SETUP-v2017.1-JC-APR27-2017.pdf
jcc00023con
 
PPTX
Introduction to Biostatistics Presentation.pptx
AtemJoshua
 
PPTX
Major-Components-ofNKJNNKNKNKNKronment.pptx
dushyantsharma1221
 
PPTX
CL11_CH20_-LOCOMOTION-AND-MOVEMENT-Autosaved.pptx
GOTOO80
 
PPTX
Extract Transformation Load (3) (1).pptx
revathi148366
 
PPTX
1intro to AI.pptx AI components & composition
ssuserb993e5
 
PPTX
Moving the Public Sector (Government) to a Digital Adoption
PaulYoung221210
 
PPTX
Machine Learning Solution for Power Grid Cybersecurity with GraphWavelets
Sione Palu
 
PDF
Data Analyst Certificate Programs for Beginners | IABAC
Seenivasan
 
PPTX
Web dev -ppt that helps us understand web technology
shubhragoyal12
 
PPTX
Complete_STATA_Introduction_Beginner.pptx
mbayekebe
 
PPTX
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
abhinavmemories2026
 
PDF
Linux OS guide to know, operate. Linux Filesystem, command, users and system
Kiran Maharjan
 
PPTX
artificial intelligence deeplearning-200712115616.pptx
revathi148366
 
A Systems Thinking Approach to Algorithmic Fairness.pdf
Epistamai
 
Lecture 1 Intro in Inferential Statistics.pptx
MiraLamuton
 
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 
Measurement of Afordability for Water Supply and Sanitation in Bangladesh .pptx
akmibrahimbd
 
345_IT infrastructure for business management.pdf
LEANHTRAN4
 
Logistic Regression ml machine learning.pptx
abdullahcocindia
 
CH2-MODEL-SETUP-v2017.1-JC-APR27-2017.pdf
jcc00023con
 
Introduction to Biostatistics Presentation.pptx
AtemJoshua
 
Major-Components-ofNKJNNKNKNKNKronment.pptx
dushyantsharma1221
 
CL11_CH20_-LOCOMOTION-AND-MOVEMENT-Autosaved.pptx
GOTOO80
 
Extract Transformation Load (3) (1).pptx
revathi148366
 
1intro to AI.pptx AI components & composition
ssuserb993e5
 
Moving the Public Sector (Government) to a Digital Adoption
PaulYoung221210
 
Machine Learning Solution for Power Grid Cybersecurity with GraphWavelets
Sione Palu
 
Data Analyst Certificate Programs for Beginners | IABAC
Seenivasan
 
Web dev -ppt that helps us understand web technology
shubhragoyal12
 
Complete_STATA_Introduction_Beginner.pptx
mbayekebe
 
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
abhinavmemories2026
 
Linux OS guide to know, operate. Linux Filesystem, command, users and system
Kiran Maharjan
 
artificial intelligence deeplearning-200712115616.pptx
revathi148366
 

What's new in Mondrian 4?

  • 2. San Francisco 2014-04-03 ! @julianhyde What’s new in Mondrian 4? April 3rd, 2014 @julianhyde What’s new in Mondrian 4?
  • 3. Mondrian 4 – What's new? • Attributes & dimensions • Physical schema • Measure groups & aggregate tables • Internals • Delivery • Futures
  • 5. 5 Richer semantic model Features ! Attributes and Measures Dimensions as buckets of attributes Hierarchies to make navigation easier Physical schema: • Only define tables, columns, relationships once • Composite keys Measure groups representing fact and aggregate tables Goals ! Easier schema evolution More flexible for user • “Attribute-oriented analysis” Wider range of schemas Non-SQL databases
  • 6. 6 Attributes Mondrian 3: Dimension, Hierarchy, Level Mondrian 4: Dimension, Attribute ! Dimension: Customer Attributes: Nation, Gender, Zipcode, State, City, Age, Name Hierarchy: Customers {Nation, State, City, Name} Attribute hierarchies: Nation, Gender, Zipcode, State, City, Age, Name (created automatically)
  • 7. 7 Hierarchies Hierarchies are much less important in Mondrian 4 than Mondrian 3. Build dimensions and attributes first, hierarchies & levels later. Hierarchies optimize the user experience — double-click to drill
  • 8. 8 Defining an attribute <Attribute> attributes: • Key column (or columns if composite) • Name (default key) • Caption (default name) • Order column (default name) • Properties All of this stuff was in <Level> in Mondrian-3. Attribute key must be unique: • [Customer].[City].&[San Francisco]&[CA] • [Time].[Month].&[4]&[2014]
  • 9. 9 Physical schema • Define joins, data types, SQL expressions only once • Portability across different kinds of database (including non-SQL), and multiple databases 
 <PhysicalSchema>
 <Table name='product' keyColumn='product_id'/>
 <Table name=‘product_class’ keyColumn=‘product_class_id’/>
 <Link target='product' source='product_class'>
 <ForeignKey>
 <Column name='product_class_id'/>
 </ForeignKey>
 </Link>
  • 10. 10 Calculated columns • <Column/> element allows Mondrian to use correct table alias <PhysicalSchema>
 <Table name='customer'>
 <Key>
 <Column name='customer_id'/>
 </Key>
 <ColumnDefs>
 <CalculatedColumnDef name='full_name' type='String'>
 <ExpressionView>
 <SQL dialect='oracle'>
 <Column name='fname'/> || ' ' || <Column name='lname'/>
 </SQL>
 <SQL dialect='access'>
 <Column name='fname'/> + ' ' + <Column name='lname'/>
 </SQL>
  • 11. 11 Localization <Cube name='Sales' defaultMeasure='Unit Sales'>
 <Annotations>
 <Annotation name='caption.de_DE'>Verkaufen</Annotation>
 <Annotation name='caption.fr_FR'>Ventes</Annotation>
 <Annotation name='caption+fr_FR'>Ventes</Annotation>
 <Annotation name='description.fr_FR'>Cube des ventes</Annotation>
 <Annotation name='description.de'>Cube Verkaufen</Annotation>
 <Annotation name='description.de_AT'>Cube den Verkaufen</Annotation>
 </Annotations>
  • 12. Measure groups In Mondrian 3.x, if you want a cube with multiple fact tables, you build a virtual cube: ! <Cube name=“Sales”>
 <Table name=“sales_fact”/>
 </Cube>
 
 <Cube name=“Warehouse”>
 <Table name=“warehouse_fact”/>
 </Cube>
 
 <VirtualCube name=“Warehouse and Sales”>
 <Cube name=“Sales”/>
 <Cube name=“Warehouse”/>
 </VirtualCube>
  • 13. • In Mondrian 4, cubes can contain multiple measure groups • Virtual cubes are obsolete • Many-to-many association between measure groups and dimensions • Different ways to link dimensions to fact tables • Aggregate tables are measure groups Measure groups (2) 
 <Cube name=“Warehouse and Sales”>
 <MeasureGroups>
 <MeasureGroup name=“Sales”>
 <Table name=“sales_fact”/>
 <Measure name=“unit_sales”/>
 </MeasureGroup>
 <MeasureGroup name=“Warehouse”>
 <Table name=“warehouse_fact”/>
 <Measure name=“inventory_units”/>
 </MeasureGroup>
 </MeasureGroups>
 </Cube> Sales Warehouse Time X X Product X X Customer X Warehouse X
  • 17. 17 Hybrid fact/aggregate tables Measure groups (fact tables): • Have varying dimensionality, granularity; • Reference dimension tables; • Store un-aggregated measures. Aggregate tables: • Have various dimensionality, granularity; • Sometimes reference dimension tables; • Store aggregated measures. ! Let’s store measures in aggregate tables! Better… let’s make aggregate tables and measure groups the same thing.
  • 20. 20 Gone Replacement Mondrian 3 schema Mondrian 4 schema upgrader Aggregate recognizer Aggregate table API (define, enable, disable) Schema workbench Pentaho modeler (?) XMLA server olap4j-xmlaserver (github) Hierarchy syntax ● [Time.Weekly].[Day] ● [Time].[Month] SSAS-style syntax ● [Time].[Weekly].[Day] ● [Time].[Time].[Month] JPivot no longer in distro Get your own UI: Analyzer, Saiku, Pivot4J
  • 21. 21 Done Remaining The important things work! Ragged hierarchies Schema converter Aggregate table API 3,224 of 3,277 tests pass Pentaho modeler Analyzer, Saiku, Pivot4J integration Complex schema mappings BA server compliance testing
  • 22. Beta 1. Binaries at http://repo.pentaho.org/artifactory/repo under pentaho:mondrian:4.0.0 2. Run Mondrian-4 on your current schema ● Auto-upgrade ● Schema converter tool TBA ● MDX syntax differences mondrian.olap.SsasCompatibleNaming=true 3. Write a new-style schema 4. Log bugs http://jira.pentaho.com/browse/MONDRIAN or send a pull request: https://github.com/pentaho/mondrian/tree/lagunitas 5. Getting started: http://mondrian.pentaho.com/documentation/ developers_guide.php 6. Running Mondrian as an XMLA service: https://github.com/ ThoughtWorksInc/mondrian-xmla-spike
  • 23. 23 Mondrian 4 in Pentaho BA server • Mondrian 4 is an OSGI compatible module. It can be used alongside Mondrian 3. • Both versions of Mondrian are available. • Create olap4j connections to either one: “jdbc:mondrian:Catalog=…” or “jdbc:mondrian4:Catalog=…” • Behind the scenes, we inject our OSGI driver into the top- level class loader and we register with the java.sql.DriverManager • Caveat: All classpath resources must also be OSGI compatible and bundled as modules. (No loose files in WEB-INF/classes.) • Third party plugins: Most of the more popular analysis UIs of the Pentaho ecosystem already support Mondrian 4.
  • 24. Future features Connections ● Defined in schema ● Multiple connections ● Non-SQL databases ! Advanced SQL generation
  • 25. Multiple connections in schema 
 <Schema name='FoodMart'>
 <Connections>
 <Connection name='default' default='true' uuid='abcd-1234'>
 <Jdbc>jdbc:mysql://localhost/foodmart</Jdbc>
 <JdbcUser>foodmart</JdbcUser>
 <JdbcPassword>foodmart</JdbcPassword>
 </Connection>
 <Connection name='aggs' default='false' uuid='abcd-2345'>
 <Jdbc>jdbc:mysql://localhost/foodmartAggs</Jdbc>
 <JdbcUser>foodmartAggs</JdbcUser>
 <Properties>
 <Property name='prop1'>value1</Property>
 <Property name='prop2'>value2</Property>
 </Properties>
 </Connection>
 </Connections>! ● Cannot join tables from different connections ● Also: non-JDBC connection (via SPI or Optiq)
  • 26. Advanced SQL generation ● Access control ● Killing big IN lists ● Push down aggregates (esp. time ranges) ● Evaluate as much as possible of the MDX query in SQL ● Pivot & decompose ● MDX query planning ● Cache segments as in-memory tables
  • 28. Summary Mondrian 4 – A major improvement to Mondrian model & engine ! As compatible as possible ! Will enable further improvements in performance / flexibility in upcoming releases