Skip to content

Commit

Permalink
MONDRIAN: Reorganize and enhance documentation for aggregate tables.
Browse files Browse the repository at this point in the history
[git-p4: depot-paths = "//open/mondrian/": change = 3825]
  • Loading branch information
julianhyde committed Jul 17, 2005
1 parent b823f43 commit eae5d1d
Show file tree
Hide file tree
Showing 12 changed files with 1,694 additions and 1,213 deletions.
1,506 changes: 1,506 additions & 0 deletions doc/aggregate_tables.html

Large diffs are not rendered by default.

Binary file added doc/aggregate_tables.vsd
Binary file not shown.
Binary file added doc/aggregate_tables_1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/aggregate_tables_2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/aggregate_tables_3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions doc/faq.html
Expand Up @@ -399,6 +399,40 @@ <h3><a name="Tuning_the_Aggregate_function">Tuning the Aggregate function</a></h
using SQL's <code>GROUP BY</code> operator. If you want to improve it still further,
introduce hourly aggregates.</p>

<hr>

<p>Q. I saw the perforce files, but a I couldn't find where to
register and get new user, or the instructions that you have mentioned
above;

<p>A. The project administrators (Julian) register you. I would
suggest that you start with guest level access and let's see if you need
update access later.

<p>Q. Do you have some model for development environment (e.g.
eclipse 3.0 + ant 1.6 + jboss x.x + .....)?

<p>A. Using Eclipse for Mondrian development works fine. There is an
Eclipse Perforce plug-in, too, but you can use the Perforce client
outside of Eclipse. Some people use Intellij (which is free for
open-source use).

<p>As a test web-server, most people use Tomcat 5.0.

<p>Q. Are all the updated documentation in the perforce server? How
could I get more materials, howtos, etc. to reduce my learn curve?

<p>A. As with any open source project, the documentation is the
mondrian.sourceforge.net web site (which is in Perforce too), the forums
and mailing lists, the test suite and the code.

<p>Q. How could I enroll myself into mondrian source forge project?

<p>A. Sign up as a SourceForge user and subscribe to the
Mondrian mailing lists and forums. Also, there are a lot of Mondrian
related questions from the JPivot project - I suggest you subscribe to
JPivot too.

<hr noshade color="#000000" size="1">


Expand Down
4 changes: 4 additions & 0 deletions doc/install.html
Expand Up @@ -23,6 +23,10 @@
<body>
<h1>How to download and install Mondrian</h1>

<p>By Julian Hyde; last updated June, 2005.</p>

<hr noshade color="#000000" size="1">

<h2><a name="1_Contents">1. Contents</a></h2>
<ol>
<li><a href="#1_Contents">Contents</a></li>
Expand Down
3 changes: 2 additions & 1 deletion doc/navigation.html
Expand Up @@ -38,8 +38,9 @@
&nbsp;&nbsp;&nbsp;<a href="mdx.html">MDX</a><br>
&nbsp;&nbsp;&nbsp;<a href="architecture.html">Architecture</a><br>
&nbsp;&nbsp;&nbsp;<a href="schema.html">Writing a schema</a><br>
&nbsp;&nbsp;&nbsp;<a href="cmdrunner.html">Command runner</a><br>
&nbsp;&nbsp;&nbsp;<a href="optimizing_performance.html">Performance</a><br>
&nbsp;&nbsp;&nbsp;<a href="aggregate_tables.html">Aggregate tables</a><br>
&nbsp;&nbsp;&nbsp;<a href="cmdrunner.html">Command runner</a><br>
&nbsp;&nbsp;&nbsp;<a href="faq.html">FAQ</a><br>
&nbsp;&nbsp;&nbsp;<a href="roadmap.html">Roadmap</a><br>
Design<br>
Expand Down
3 changes: 2 additions & 1 deletion doc/noframes.html
Expand Up @@ -51,8 +51,9 @@
&nbsp;&nbsp;&nbsp;<a href="mdx.html">MDX</a><br>
&nbsp;&nbsp;&nbsp;<a href="architecture.html">Architecture</a><br>
&nbsp;&nbsp;&nbsp;<a href="schema.html">Writing a schema</a><br>
&nbsp;&nbsp;&nbsp;<a href="cmdrunner.html">Command runner</a><br>
&nbsp;&nbsp;&nbsp;<a href="optimizing_performance.html">Performance</a><br>
&nbsp;&nbsp;&nbsp;<a href="aggregate_tables.html">Aggregate tables</a><br>
&nbsp;&nbsp;&nbsp;<a href="cmdrunner.html">Command runner</a><br>
&nbsp;&nbsp;&nbsp;<a href="faq.html">FAQ</a><br>
&nbsp;&nbsp;&nbsp;<a href="roadmap.html">Roadmap</a><br>
Design<br>
Expand Down
70 changes: 62 additions & 8 deletions doc/optimizing_performance.html
Expand Up @@ -10,6 +10,27 @@

<h1>Optimizing Mondrian Performance</h1>

<p>By Sherman Wood; last updated July, 2005.</p>

<hr noshade color="#000000" size="1">

<h2>Contents</h2>
<ol>
<li><a href="#Introduction">Introduction</a></li>
<li><a href="#A_generalized_tuning_process_for_Mondrian">A generalized
tuning process for Mondrian</a></li>
<li><a href="#Recommendations_for_database_tuning">Recommendations for
database tuning</a></li>
<li><a href="#Aggregate_Tables_Materialized_Views_and_Mondrian">Aggregate
Tables, Materialized Views and Mondrian</a><ol>
<li><a href="#Choosing_aggregate_tables">Choosing aggregate tables</a></li>
</ol>
</li>
<li><a href="#AggGen">AggGen</a></li>
</ol>

<h2><a name="Introduction">Introduction</a></h2>

<p>As with any data warehouse project, dealing with volumes is always
the make or break issue. Mondrian has its own issues, based on its
architecture and goals of being cross platform. Here are some
Expand Down Expand Up @@ -61,7 +82,7 @@ <h1>Optimizing Mondrian Performance</h1>

</blockquote>

<h2>A generalized tuning process for Mondrian</h2>
<h2><a name="A_generalized_tuning_process_for_Mondrian">A generalized tuning process for Mondrian</a></h2>

<p>The process for addressing performance of Mondrian is a combination
of design, hardware, database and other configuration tuning. For
Expand Down Expand Up @@ -99,7 +120,7 @@ <h2>A generalized tuning process for Mondrian</h2>

</ul>

<h2>Recommendations for database tuning</h2>
<h2><a name="Recommendations_for_database_tuning">Recommendations for database tuning</a></h2>

<p>As part of database tuning process, enable SQL tracing and tail the
log file. Run some representative MDX queries and watch which SQL
Expand Down Expand Up @@ -133,7 +154,7 @@ <h2>Recommendations for database tuning</h2>
-- although performance is likely to vary between databases, because
optimizing count-distinct queries is a tricky problem.</p>

<h2>Aggregate Tables, Materialized Views and Mondrian</h2>
<h2><a name="Aggregate_Tables_Materialized_Views_and_Mondrian">Aggregate Tables, Materialized Views and Mondrian</a></h2>

<p>The best way to increase the performance of Mondrian is to build a
set of aggregate (summary) tables that coexist with the base fact
Expand All @@ -146,11 +167,44 @@ <h2>Aggregate Tables, Materialized Views and Mondrian</h2>
aggregation tables through your data warehouse load processes, usually
by clearing them and rerunning aggregating INSERTs.</p>

<p>There is a discussion of aggregate tables, terminology and how they
are used on the Mondrian web site. See Writing a Schema->Advanced
Aggregate Tables.</p>

<h2>AggGen</h2>
<p>Aggregate tables are introduced in the <a href="schema.html#Aggregate_tables">
Schema Guide</a>, and described in more detail in their own document,
<a href="aggregate_tables.html">Aggregate Tables</a>.</p>

<h3><a name="Choosing_aggregate_tables">Choosing aggregate tables</a></h3>

<p>It isn't easy to choose the right aggregate tables. For one thing, there are
so many to choose from: even a modest cube with six dimensions each with three
levels has 6<sup><font face="Verdana">4</font></sup> = 1296 possible aggregate
tables! And aggregate tables interfere with each other. If you add a new
aggregate table, Mondrian may use an existing aggregate table less frequently.</p>

<p>Missing aggregate tables may not even be the problem. Choosing aggregate
tables is part of a wider performance tuning process, where finding the problem
is more than half of the battle. The real cause may be a missing index on your
fact table, your cache isn't large enough, or (if you're running Oracle) the
fact that you forgot to compute statistics. (See
<a href="#Recommendations_for_database_tuning">recommendations</a>, above.)</p>

<p>Performance tuning is an iterative process. The steps are something like
this:</p>
<ol>
<li>Choose a few queries which are typical for those the end-users will be
executing.</li>
<li>Run your set of sample queries, and note how long they take. Now the
cache has been primed, run the queries again: has performance improved?</li>
<li>Is the performance good enough? If it is, stop tuning now! If your data
set isn't very large, you probably don't need any aggregate tables. </li>
<li>Decide which aggregate tables to create. If you turn on SQL tracing,
looking at the GROUP BY clauses of the long-running SQL statements will be a
big clue here.</li>
<li>Register the aggregate tables in your catalog, create the tables in the
database, populate the tables, and add indexes.</li>
<li>Restart Mondrian, to flush the cache and re-read the schema, then go to
step 2 to see if things have improved.</li>
</ol>

<h2><a name="AggGen">AggGen</a></h2>

<p><code>AggGen</code> is a tool that generates SQL to support the
creation and maintenance of aggregate tables, and would give a
Expand Down
20 changes: 13 additions & 7 deletions doc/roadmap.html
Expand Up @@ -15,19 +15,18 @@ <h1><font size="6"> Mondrian roadmap</font></h1>
<h2><a name="1_Contents">1 Contents</a></h2>
<ol>
<li><a href="#1_Contents">Contents</a>
<li><a href="#3_Setup_build_environment">Introduction</a><ol>
<li><a href="#2.1_Purpose_of_this_document">Purpose of this document</a></li>
<li><a href="#3_Setup_build_environment">Introduction</a>
<ol>
<li><a href="#2.1_Purpose_of_this_document">Purpose of this document</a></li>
<li><a href="#2.2_Mondrians_goals">Mondrian's goals</a></li>
<li><a href="#2.3_Scope">Scope</a></li>
<li><a href="#2.4_Sponsored_development_and_co-development">Sponsored
development and co-development</a></li>
</ol>

</li>
</li>
<li><a href="#4_Build">Feature list</a>
<ol>
<li><a href="#3.1_Internationalization_localization">
Internationalization/localization</a></li>
<li><a href="#3.1_Internationalization_localization">Internationalization/localization</a></li>
<li><a href="#3.2_Aggregate_navigation">Aggregate navigation</a></li>
<li><a href="#3.3_Improved_cache_control">Improved cache control</a></li>
<li><a href="#3.4_WITH_SET">WITH SET</a></li>
Expand All @@ -48,9 +47,10 @@ <h2><a name="1_Contents">1 Contents</a></h2>
<li><a href="#3.17_Schema_and_query_validation">Schema and query validation</a></li>
<li><a href="#3.18_Documentation">Documentation</a></li>
<li><a href="#3.19_Name-resolution">Name-resolution</a></li>
</ol>
<li><a href="#3.20_XMLA_interoperability">XML/A interoperability</a></li>

</ol>
</ol>

<h2><a name="2_Introduction">2 Introduction</a></h2>

Expand Down Expand Up @@ -351,6 +351,12 @@ <h3><a name="3.19_Name-resolution">3.19 Name-resolution</a></h3>
are supported, but '<code>ON 0</code>' is not.</li>
</ol>

<h3><a name="3.20_XMLA_interoperability">3.20 XML/A interoperability</a></h3>

<p>Get Excel working against Mondrian's XML/A interface. See posting
<a
href="https://sourceforge.net/forum/forum.php?thread_id=1306599&forum_id=111376">Excel
2003 and Mondrian</a>.

<p>&nbsp;</p>

Expand Down

0 comments on commit eae5d1d

Please sign in to comment.