9
.. i18n: .. image:: images/Bi_arch.png
12
.. image:: images/Bi_arch.png
28
.. i18n: The cube is based of the following component:
31
The cube is based of the following component:
33
.. i18n: * A MDX parser that will transform an MDX expression to RDBMs queries:
34
.. i18n: - Computed using a mix of:
35
.. i18n: + Using star flow snake like in mondrian (based on joins)
36
.. i18n: + Using space hyerarchy cutting like in cubulus
37
.. i18n: * A memory cache system
38
.. i18n: - On space hyerarchies (dimensions with space cutting)
39
.. i18n: * An aggregation system
40
.. i18n: - Ability to create aggregated table to speed up all queries (automatic or user-defined)
41
.. i18n: - Queries will be computed on fact tables or aggregated tables
42
.. i18n: * A MDX Output (or several) to output the result
45
* A MDX parser that will transform an MDX expression to RDBMs queries:
46
- Computed using a mix of:
47
+ Using star flow snake like in mondrian (based on joins)
48
+ Using space hyerarchy cutting like in cubulus
49
* A memory cache system
50
- On space hyerarchies (dimensions with space cutting)
51
* An aggregation system
52
- Ability to create aggregated table to speed up all queries (automatic or user-defined)
53
- Queries will be computed on fact tables or aggregated tables
54
* A MDX Output (or several) to output the result
56
.. i18n: The cube will use:
61
.. i18n: * SQLAlchemy for all database communications
63
.. i18n: * XML-RPC for his external interfaces
65
.. i18n: * PyParser for MDX parsing
68
* SQLAlchemy for all database communications
70
* XML-RPC for his external interfaces
72
* PyParser for MDX parsing
74
.. i18n: The CLI interface
75
.. i18n: -----------------
81
.. i18n: Allows user to test MDX queries in this CLI command line interface. Simple script in python
82
.. i18n: that will send XML-RPC queries and print the result.
85
Allows user to test MDX queries in this CLI command line interface. Simple script in python
86
that will send XML-RPC queries and print the result.
88
.. i18n: The Cube Definition
89
.. i18n: -------------------
95
.. i18n: The meta data of the cube definition will be stored in the OpenERP database. The user interface
96
.. i18n: to edit cubes is in OpenERP. We will use the same concept of the one defined in the ... XML standard. So that we will be able, in a futur phase, to import such files.
99
The meta data of the cube definition will be stored in the OpenERP database. The user interface
100
to edit cubes is in OpenERP. We will use the same concept of the one defined in the ... XML standard. So that we will be able, in a futur phase, to import such files.
102
.. i18n: This must not depend on any module of Open g ERP so that if you want to use the BI library independently, you may not use OpenERP if cubes are defined. If cubes are not defined, you just install the minimal version of OpenERP that includes: the olap module, user management, workflow managements, access rights management, ... (the base module)
105
This must not depend on any module of Open g ERP so that if you want to use the BI library independently, you may not use OpenERP if cubes are defined. If cubes are not defined, you just install the minimal version of OpenERP that includes: the olap module, user management, workflow managements, access rights management, ... (the base module)
107
.. i18n: The goal is that the user never have to create the cubes himself. We will create a wizard that
108
.. i18n: will compute cubes based on introspection on the RDBM's. The steps of this wizard:
111
The goal is that the user never have to create the cubes himself. We will create a wizard that
112
will compute cubes based on introspection on the RDBM's. The steps of this wizard:
114
.. i18n: * Selection of the database (type of db, then selection box like in the login of OpenERP)
116
.. i18n: * Selection of the factable (selection box)
118
.. i18n: * Selection of the measures and their attributes (selection box, aggregation func)
120
.. i18n: * Selection of the dimensions (click on a tree structure)
123
* Selection of the database (type of db, then selection box like in the login of OpenERP)
125
* Selection of the factable (selection box)
127
* Selection of the measures and their attributes (selection box, aggregation func)
129
* Selection of the dimensions (click on a tree structure)
131
.. i18n: Then it's done, the cube is computed. The aggrgated table may be also auto-matically computed by OpenERP.
134
Then it's done, the cube is computed. The aggrgated table may be also auto-matically computed by OpenERP.
136
.. i18n: The goal is to create new cube on the fly from the OpenERP client on every object, on user demand. This will also server the online demo server.
139
The goal is to create new cube on the fly from the OpenERP client on every object, on user demand. This will also server the online demo server.
141
.. i18n: The cube creation can be stored in the server of kept in memory for one time usage.
144
The cube creation can be stored in the server of kept in memory for one time usage.
146
.. i18n: The Web Client
147
.. i18n: --------------
153
.. i18n: The web client is a web-server that display cubes and provide tools to browse them, it must provide at least these operations:
156
The web client is a web-server that display cubes and provide tools to browse them, it must provide at least these operations:
158
.. i18n: * switch view
160
.. i18n: * different type of charts
162
.. i18n: * drill up/down
171
* different type of charts
179
.. i18n: The OpenOffice plugin
180
.. i18n: ---------------------
183
The OpenOffice plugin
184
---------------------
186
.. i18n: Similar to Palo but all operation of contruction and manipulation of cubes remains in OpenERP to limit development on OOo. The development on OOo just contains functions to:
189
Similar to Palo but all operation of contruction and manipulation of cubes remains in OpenERP to limit development on OOo. The development on OOo just contains functions to:
191
.. i18n: * Insert new data (based on selection of dimensions and filters)
193
.. i18n: * Drill up/down functions
195
.. i18n: * Slice function
198
* Insert new data (based on selection of dimensions and filters)
200
* Drill up/down functions
204
.. i18n: The OpenERP interface
205
.. i18n: -----------------------
208
The OpenERP interface
209
-----------------------
211
.. i18n: From OpenERP, you should be able to right click/drag and drop any field to trigger the cube definition wizard to create your own cube on demand. For this, we will use the web client of the bi system.
214
From OpenERP, you should be able to right click/drag and drop any field to trigger the cube definition wizard to create your own cube on demand. For this, we will use the web client of the bi system.
216
.. i18n: We will intergate this on the gtk and web client of Open erp. For the GTK one, it will open the browser to browse the cube.
219
We will intergate this on the gtk and web client of Open erp. For the GTK one, it will open the browser to browse the cube.
221
.. i18n: Extra libraries
222
.. i18n: ===============
228
.. i18n: Libraries we will use:
231
Libraries we will use:
233
.. i18n: * Turbogears for the web client to browse cube
235
.. i18n: * Mathplotlib for rendering graphs
237
.. i18n: * PyParsing to parse MDX Expressions
239
.. i18n: * SQLAlchemy to construct SQL queries and RDBMS connections
241
.. i18n: * XMLRPC lib for communication with the cube server
243
.. i18n: * PÿUNO for the OOo integration
246
* Turbogears for the web client to browse cube
248
* Mathplotlib for rendering graphs
250
* PyParsing to parse MDX Expressions
252
* SQLAlchemy to construct SQL queries and RDBMS connections
254
* XMLRPC lib for communication with the cube server
256
* PÿUNO for the OOo integration
258
.. i18n: We will use an object relationnal mapping system on all objects: dimensions, ...
261
We will use an object relationnal mapping system on all objects: dimensions, ...