SlideShare a Scribd company logo
1 of 30
Download to read offline
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
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
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

What's hot

Road to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopRoad to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopNeo4j
 
Enabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNEnabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNDataWorks Summit
 
Neo4j GraphTour Santa Monica 2019 - Amundsen Presentation
Neo4j GraphTour Santa Monica 2019 - Amundsen PresentationNeo4j GraphTour Santa Monica 2019 - Amundsen Presentation
Neo4j GraphTour Santa Monica 2019 - Amundsen PresentationTamikaTannis
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 
Top 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsTop 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationshadooparchbook
 
Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkKazuaki Ishizaki
 
Haystack 2019 - Query relaxation - a rewriting technique between search and r...
Haystack 2019 - Query relaxation - a rewriting technique between search and r...Haystack 2019 - Query relaxation - a rewriting technique between search and r...
Haystack 2019 - Query relaxation - a rewriting technique between search and r...OpenSource Connections
 
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsTop 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsCloudera, Inc.
 
Enterprise Ready: A Look at Neo4j in Production
Enterprise Ready: A Look at Neo4j in ProductionEnterprise Ready: A Look at Neo4j in Production
Enterprise Ready: A Look at Neo4j in ProductionNeo4j
 
Big Data MDX with Mondrian and Apache Kylin
Big Data MDX with Mondrian and Apache KylinBig Data MDX with Mondrian and Apache Kylin
Big Data MDX with Mondrian and Apache Kylininovex GmbH
 
Hive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilHive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilDatabricks
 
Eguzki Sistema txostena txanela 1.gaia
Eguzki Sistema txostena txanela 1.gaiaEguzki Sistema txostena txanela 1.gaia
Eguzki Sistema txostena txanela 1.gaiaJavi Muñoz
 
hitz elkartuak - ariketak
 hitz elkartuak - ariketak hitz elkartuak - ariketak
hitz elkartuak - ariketakidoialariz
 
Technip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matterTechnip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matterNeo4j
 
Introduction to Graph Databases.pdf
Introduction to Graph Databases.pdfIntroduction to Graph Databases.pdf
Introduction to Graph Databases.pdfNeo4j
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in DeltaDatabricks
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroDatabricks
 

What's hot (20)

Road to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache HopRoad to NODES - Handling Neo4j Data with Apache Hop
Road to NODES - Handling Neo4j Data with Apache Hop
 
Enabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNEnabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARN
 
Neo4j GraphTour Santa Monica 2019 - Amundsen Presentation
Neo4j GraphTour Santa Monica 2019 - Amundsen PresentationNeo4j GraphTour Santa Monica 2019 - Amundsen Presentation
Neo4j GraphTour Santa Monica 2019 - Amundsen Presentation
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 
Spark sql
Spark sqlSpark sql
Spark sql
 
Top 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsTop 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applications
 
Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache Spark
 
Haystack 2019 - Query relaxation - a rewriting technique between search and r...
Haystack 2019 - Query relaxation - a rewriting technique between search and r...Haystack 2019 - Query relaxation - a rewriting technique between search and r...
Haystack 2019 - Query relaxation - a rewriting technique between search and r...
 
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsTop 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
 
Enterprise Ready: A Look at Neo4j in Production
Enterprise Ready: A Look at Neo4j in ProductionEnterprise Ready: A Look at Neo4j in Production
Enterprise Ready: A Look at Neo4j in Production
 
Big Data MDX with Mondrian and Apache Kylin
Big Data MDX with Mondrian and Apache KylinBig Data MDX with Mondrian and Apache Kylin
Big Data MDX with Mondrian and Apache Kylin
 
Hive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilHive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas Patil
 
Eguzki Sistema txostena txanela 1.gaia
Eguzki Sistema txostena txanela 1.gaiaEguzki Sistema txostena txanela 1.gaia
Eguzki Sistema txostena txanela 1.gaia
 
hitz elkartuak - ariketak
 hitz elkartuak - ariketak hitz elkartuak - ariketak
hitz elkartuak - ariketak
 
Technip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matterTechnip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matter
 
Introduction to Graph Databases.pdf
Introduction to Graph Databases.pdfIntroduction to Graph Databases.pdf
Introduction to Graph Databases.pdf
 
Delta Architecture
Delta ArchitectureDelta Architecture
Delta Architecture
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in Delta
 
webOS Introduction
webOS IntroductionwebOS Introduction
webOS Introduction
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
 

Viewers also liked

Streaming SQL (at FlinkForward, Berlin, 2016/09/12)
Streaming SQL (at FlinkForward, Berlin, 2016/09/12)Streaming SQL (at FlinkForward, Berlin, 2016/09/12)
Streaming SQL (at FlinkForward, Berlin, 2016/09/12)Julian Hyde
 
Cost-based Query Optimization in Apache Phoenix using Apache Calcite
Cost-based Query Optimization in Apache Phoenix using Apache CalciteCost-based Query Optimization in Apache Phoenix using Apache Calcite
Cost-based Query Optimization in Apache Phoenix using Apache CalciteJulian Hyde
 
Mondrian applying dynamic security - Pentaho
Mondrian applying  dynamic security - PentahoMondrian applying  dynamic security - Pentaho
Mondrian applying dynamic security - PentahoDavid Fombella Pombal
 
Discardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With HadoopDiscardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With HadoopJulian Hyde
 
The twins that everyone loved too much
The twins that everyone loved too muchThe twins that everyone loved too much
The twins that everyone loved too muchJulian Hyde
 
Optiq: A dynamic data management framework
Optiq: A dynamic data management frameworkOptiq: A dynamic data management framework
Optiq: A dynamic data management frameworkJulian Hyde
 
Why you care about
 relational algebra (even though you didn’t know it)
Why you care about
 relational algebra (even though you didn’t know it)Why you care about
 relational algebra (even though you didn’t know it)
Why you care about
 relational algebra (even though you didn’t know it)Julian Hyde
 
Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Julian Hyde
 
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Julian Hyde
 
Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Julian Hyde
 
Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/Trident
 Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/Trident Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/Trident
Querying the Internet of Things: Streaming SQL on Kafka/Samza and Storm/TridentJulian Hyde
 
SQL on everything, in memory
SQL on everything, in memorySQL on everything, in memory
SQL on everything, in memoryJulian Hyde
 
Apache Calcite: One planner fits all
Apache Calcite: One planner fits allApache Calcite: One planner fits all
Apache Calcite: One planner fits allJulian Hyde
 
Streaming SQL with Apache Calcite
Streaming SQL with Apache CalciteStreaming SQL with Apache Calcite
Streaming SQL with Apache CalciteJulian Hyde
 
Apache Calcite overview
Apache Calcite overviewApache Calcite overview
Apache Calcite overviewJulian Hyde
 
Cost-based query optimization in Apache Hive
Cost-based query optimization in Apache HiveCost-based query optimization in Apache Hive
Cost-based query optimization in Apache HiveJulian Hyde
 

Viewers also liked (20)

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

Similar to What's new in Mondrian 4?

Mondrian update (Pentaho community meetup 2012, Amsterdam)
Mondrian update (Pentaho community meetup 2012, Amsterdam)Mondrian update (Pentaho community meetup 2012, Amsterdam)
Mondrian update (Pentaho community meetup 2012, Amsterdam)Julian Hyde
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalogMongoDB
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceMongoDB
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveIBM Cloud Data Services
 
Building rednoseday.com on Drupal 8
Building rednoseday.com on Drupal 8Building rednoseday.com on Drupal 8
Building rednoseday.com on Drupal 8Peter Vanhee
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBMongoDB
 
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal SolutionCustomer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal SolutionSearchStax
 
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By EliazSAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliazelearnsap
 
SAP Business Objects - Lopes Supermarket
SAP   Business Objects - Lopes SupermarketSAP   Business Objects - Lopes Supermarket
SAP Business Objects - Lopes SupermarketDouglas Bernardini
 
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...Rittman Analytics
 
Cassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache CassandraCassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache CassandraDave Gardner
 
Grails patterns and practices
Grails patterns and practicesGrails patterns and practices
Grails patterns and practicespaulbowler
 
Salesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedSalesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedCarl Brundage
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPagesTeamstudio
 
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinUsing MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinSébastien Le Marchand
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstartClint Edmonson
 
Solr and ElasticSearch demo and speaker feb 2014
Solr  and ElasticSearch demo and speaker feb 2014Solr  and ElasticSearch demo and speaker feb 2014
Solr and ElasticSearch demo and speaker feb 2014nkabra
 
How city of chicago boosts their sap business objects environment prepares fo...
How city of chicago boosts their sap business objects environment prepares fo...How city of chicago boosts their sap business objects environment prepares fo...
How city of chicago boosts their sap business objects environment prepares fo...Sebastien Goiffon
 

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

Mondrian update (Pentaho community meetup 2012, Amsterdam)
Mondrian update (Pentaho community meetup 2012, Amsterdam)Mondrian update (Pentaho community meetup 2012, Amsterdam)
Mondrian update (Pentaho community meetup 2012, Amsterdam)
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalog
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog Service
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
 
Building rednoseday.com on Drupal 8
Building rednoseday.com on Drupal 8Building rednoseday.com on Drupal 8
Building rednoseday.com on Drupal 8
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDB
 
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal SolutionCustomer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
Customer Webinar: Scaling and Optimizing a Large e-Commerce Drupal Solution
 
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By EliazSAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
SAP BOBI 4.1 with SAP HANA 1.0 SP7 Online Training - By Eliaz
 
SAP Business Objects - Lopes Supermarket
SAP   Business Objects - Lopes SupermarketSAP   Business Objects - Lopes Supermarket
SAP Business Objects - Lopes Supermarket
 
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
Budapest Data Forum 2017 - BigQuery, Looker And Big Data Analytics At Petabyt...
 
Cassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache CassandraCassandra's Sweet Spot - an introduction to Apache Cassandra
Cassandra's Sweet Spot - an introduction to Apache Cassandra
 
Ember vs Backbone
Ember vs BackboneEmber vs Backbone
Ember vs Backbone
 
Grails patterns and practices
Grails patterns and practicesGrails patterns and practices
Grails patterns and practices
 
Salesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedSalesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - Explained
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinUsing MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
 
Where to save my data, for devs!
Where to save my data, for devs!Where to save my data, for devs!
Where to save my data, for devs!
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Solr and ElasticSearch demo and speaker feb 2014
Solr  and ElasticSearch demo and speaker feb 2014Solr  and ElasticSearch demo and speaker feb 2014
Solr and ElasticSearch demo and speaker feb 2014
 
How city of chicago boosts their sap business objects environment prepares fo...
How city of chicago boosts their sap business objects environment prepares fo...How city of chicago boosts their sap business objects environment prepares fo...
How city of chicago boosts their sap business objects environment prepares fo...
 

More from Julian Hyde

Building a semantic/metrics layer using Calcite
Building a semantic/metrics layer using CalciteBuilding a semantic/metrics layer using Calcite
Building a semantic/metrics layer using CalciteJulian Hyde
 
Cubing and Metrics in SQL, oh my!
Cubing and Metrics in SQL, oh my!Cubing and Metrics in SQL, oh my!
Cubing and Metrics in SQL, oh my!Julian Hyde
 
Adding measures to Calcite SQL
Adding measures to Calcite SQLAdding measures to Calcite SQL
Adding measures to Calcite SQLJulian Hyde
 
Morel, a data-parallel programming language
Morel, a data-parallel programming languageMorel, a data-parallel programming language
Morel, a data-parallel programming languageJulian Hyde
 
Is there a perfect data-parallel programming language? (Experiments with More...
Is there a perfect data-parallel programming language? (Experiments with More...Is there a perfect data-parallel programming language? (Experiments with More...
Is there a perfect data-parallel programming language? (Experiments with More...Julian Hyde
 
Morel, a Functional Query Language
Morel, a Functional Query LanguageMorel, a Functional Query Language
Morel, a Functional Query LanguageJulian Hyde
 
Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Julian Hyde
 
The evolution of Apache Calcite and its Community
The evolution of Apache Calcite and its CommunityThe evolution of Apache Calcite and its Community
The evolution of Apache Calcite and its CommunityJulian Hyde
 
What to expect when you're Incubating
What to expect when you're IncubatingWhat to expect when you're Incubating
What to expect when you're IncubatingJulian Hyde
 
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache CalciteOpen Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache CalciteJulian Hyde
 
Efficient spatial queries on vanilla databases
Efficient spatial queries on vanilla databasesEfficient spatial queries on vanilla databases
Efficient spatial queries on vanilla databasesJulian Hyde
 
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Julian Hyde
 
Tactical data engineering
Tactical data engineeringTactical data engineering
Tactical data engineeringJulian Hyde
 
Don't optimize my queries, organize my data!
Don't optimize my queries, organize my data!Don't optimize my queries, organize my data!
Don't optimize my queries, organize my data!Julian Hyde
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databasesJulian Hyde
 
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
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 ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Julian Hyde
 
Lazy beats Smart and Fast
Lazy beats Smart and FastLazy beats Smart and Fast
Lazy beats Smart and FastJulian Hyde
 
Don’t optimize my queries, optimize my data!
Don’t optimize my queries, optimize my data!Don’t optimize my queries, optimize my data!
Don’t optimize my queries, optimize my data!Julian Hyde
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache CalciteJulian Hyde
 

More from Julian Hyde (20)

Building a semantic/metrics layer using Calcite
Building a semantic/metrics layer using CalciteBuilding a semantic/metrics layer using Calcite
Building a semantic/metrics layer using Calcite
 
Cubing and Metrics in SQL, oh my!
Cubing and Metrics in SQL, oh my!Cubing and Metrics in SQL, oh my!
Cubing and Metrics in SQL, oh my!
 
Adding measures to Calcite SQL
Adding measures to Calcite SQLAdding measures to Calcite SQL
Adding measures to Calcite SQL
 
Morel, a data-parallel programming language
Morel, a data-parallel programming languageMorel, a data-parallel programming language
Morel, a data-parallel programming language
 
Is there a perfect data-parallel programming language? (Experiments with More...
Is there a perfect data-parallel programming language? (Experiments with More...Is there a perfect data-parallel programming language? (Experiments with More...
Is there a perfect data-parallel programming language? (Experiments with More...
 
Morel, a Functional Query Language
Morel, a Functional Query LanguageMorel, a Functional Query Language
Morel, a Functional Query Language
 
Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)
 
The evolution of Apache Calcite and its Community
The evolution of Apache Calcite and its CommunityThe evolution of Apache Calcite and its Community
The evolution of Apache Calcite and its Community
 
What to expect when you're Incubating
What to expect when you're IncubatingWhat to expect when you're Incubating
What to expect when you're Incubating
 
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache CalciteOpen Source SQL - beyond parsers: ZetaSQL and Apache Calcite
Open Source SQL - beyond parsers: ZetaSQL and Apache Calcite
 
Efficient spatial queries on vanilla databases
Efficient spatial queries on vanilla databasesEfficient spatial queries on vanilla databases
Efficient spatial queries on vanilla databases
 
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
 
Tactical data engineering
Tactical data engineeringTactical data engineering
Tactical data engineering
 
Don't optimize my queries, organize my data!
Don't optimize my queries, organize my data!Don't optimize my queries, organize my data!
Don't optimize my queries, organize my data!
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databases
 
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
Data all over the place! How SQL and Apache Calcite bring sanity to streaming...
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
 
Lazy beats Smart and Fast
Lazy beats Smart and FastLazy beats Smart and Fast
Lazy beats Smart and Fast
 
Don’t optimize my queries, optimize my data!
Don’t optimize my queries, optimize my data!Don’t optimize my queries, optimize my data!
Don’t optimize my queries, optimize my data!
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache Calcite
 

Recently uploaded

Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night StandCall Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...amitlee9823
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...amitlee9823
 
Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramMoniSankarHazra
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...SUHANI PANDEY
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysismanisha194592
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...amitlee9823
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...amitlee9823
 

Recently uploaded (20)

Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night StandCall Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
 
Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics Program
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 

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.
  • 19.
  • 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
  • 27.
  • 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