Here’s a quick assessment highlighting the main differences between Hyperion Essbase vs Oracle OLAP. Knowing that both products are now under the same ownership, I thought this should be archived before it gets completely outdated!
Martin
Saturday, September 17, 2011
Monday, August 08, 2011
QlikView: introduction to "In-memory BI technology"
I've been introduced to QlikView lately and it has been somewhat a refreshing experience compared to more traditional BI solution. So this post will give some of the notes taken out of training and after experimentation of the tool.
It turns out I do enjoy it today as a data explorer tool. This allows me to easily navigate through some unknown data model and quickly understand data relationship and hidden rules (not enforced explicitly with defined database constraint). I find this a faster way to explore new data stored in database than going through a lot of SQL request/result analysis iteration.
Here's some additional notes I've gathered:
At 10,000 feet level, there are two major key differentiators :
- The associative nature of the data architecture domain*
- The all in-memory principle
*The associative term is somewhat abusive as it should not be confused with associate data structure (ref). It seems to be rather related to the way front-end dynamically associates data element under selection, and also probably to the automatic association between elements having identical filed name in the data model. It seems that the data is linked using Vector-based association with pointer-type reference.
The underlying data model is actually quite simple: it is built around the familiar concept of datasets with related tables having a number of fields (tabular format). However, there are fundamental rules to respect in regard to that simple model:
- Limit all relation key to a single field (any PK combined fields also used as FK will generate a so-called Synthetic table by QV....which must be avoided)
- Eliminate all circular reference within the whole Data model
- The field key used for relationship between tables must all have identical name (automatic relation generated by QV)
The number of tables can easily reach hundreds while total number of fields reaching thousands. Datasets are always pre-loaded into memory (mandatory) in a compressed format (apparently not using columnar data storage but rather record-based table representation) with very good compression ratio near 10:1**. (from what I could find, the in-memory data is stored through direct compiled machine code ... explaining why only Intel-based processor -multi-core included- are supported as different port would involve intense engineering re-coding and re-optimization).
**As a sidenote: anyone familiar with the de-normalized structure of WH data will not be surprised by this ratio, considering that all data redundancy will be eliminated with the use of pointer in the data structure.
As stated in the 3rd rule, associations are generated automatically against the entire dataset by following this simple convention: all pairs of fields in different table having identical name are automatically part of an association. No particular data model (like star-schema) is assumed, but to remove possible data incoherence/ambiguity, each pair of table must have a single join path (as stated in 2nd rule above). Actually, QV will simply break all redundant links (randomly) to avoid the closed-loop within the data model. This implies that for star-schema model it is practically impossible to traverse multiple fact table within the same QV dataset, except for the rare case where only one common dimension is found between two star-schema...
**As a sidenote: anyone familiar with the de-normalized structure of WH data will not be surprised by this ratio, considering that all data redundancy will be eliminated with the use of pointer in the data structure.
As stated in the 3rd rule, associations are generated automatically against the entire dataset by following this simple convention: all pairs of fields in different table having identical name are automatically part of an association. No particular data model (like star-schema) is assumed, but to remove possible data incoherence/ambiguity, each pair of table must have a single join path (as stated in 2nd rule above). Actually, QV will simply break all redundant links (randomly) to avoid the closed-loop within the data model. This implies that for star-schema model it is practically impossible to traverse multiple fact table within the same QV dataset, except for the rare case where only one common dimension is found between two star-schema...
After having configured all your input data and loaded up in QV, you get a data model similar to:
![]() |
| Figure 1. Example of Data model defined in QlickView. |
All associations are managed at the engine-level and not at the application-level (a typical BI app would need to explicitly manage, store and maintain associations between individual queries association). With QlikView, you always get the associated data as well as the un-associated data elements well highlighted (black and grey-out respectively). That's highlighted by their commercial pitch : QlikView is not a query-based tool! Meaning that data is always linked or associated during analysis instead of having go through iterative query-based analysis in more or less isolated steps:
business question --> query definition --> launch query --> analysis query result -->refine business question --> redefine query definition --> etc...
The data access architecture is not well documented, and it seems to be always fetching data via memory scan, avoiding to have indexes, pre-computed aggregate typically found in other BI-tool in some form or another (see reference The underlying techno..). .
The dataset maximum size that can fit within your host will not be straightforward to calculate as it will depend on the server memory size, compression factor and obviously on other parameters like number of dashboard pages and objects, number of concurrent users connecting to Qlikview server, etc.. Typically, the solution is currently designed for gigabytes-scale databases, but obviously this keeps improving (thanks to Moore's law) especially with the 64-bit server architecture.
business question --> query definition --> launch query --> analysis query result -->refine business question --> redefine query definition --> etc...
The data access architecture is not well documented, and it seems to be always fetching data via memory scan, avoiding to have indexes, pre-computed aggregate typically found in other BI-tool in some form or another (see reference The underlying techno..). .
The dataset maximum size that can fit within your host will not be straightforward to calculate as it will depend on the server memory size, compression factor and obviously on other parameters like number of dashboard pages and objects, number of concurrent users connecting to Qlikview server, etc.. Typically, the solution is currently designed for gigabytes-scale databases, but obviously this keeps improving (thanks to Moore's law) especially with the 64-bit server architecture.
Some drawbacks:
- as always with this sort of tool, you need to extract the data outside your main data repository (whatever that may be) and loaded up inside other server host
- this extract/re-hosting step opens the door to KPI rules duplications/inconsistencies, and uncontrolled data rule transformations that will likely leak outside your central data transfo rules metadata (if you're lucky tro have one)
- scaling and data volume limitations: I came across quite a few Memory error during loading process when dealing with bigger database ... happens especially when loading wider tables (many attributes). The major drawback is that you learn this the hardway...yon only know your database will not fit inside your hardware after spending a considerable amount of time trying to load it into memory!! On some occasions, you actually will need to kill the ‘Not Responding’ app before you can get any response:
Other miscellaneous notes and observations :
- All fields within the data model end-up being an axis of analysis! Even fact-type measure can be queried and searched by.value (more commonly by rinterval of values).
- A file *.QVW is a self-contained QV dataset which potentially include : all data scripting (for data loading into memory), the data itself stored natively in-memory and the presentation stuff (all dashboards and report views)
- Make use of the export native file format QVD, as it offers much better loading performance and good compression compared to the legacy data source.
- we should limit the number of association as it will always be quicker to fetch data within same table. In theory, the complete dataset could fit into a single wide table, however this has some drawbacks like data model understandability.
- Ideally replace Distinct count formula (e.g. Count(distinct EmployeeId)) by adding a simple counter on the table on which we need to count distinct value (distinct involved creating a temporary structure with unique field value on-the-fly).
- Limit the number of tables... so if you have lots of snowflaking inside your WH, try to merge during Data loading into QV.
- When concatenating combined-primary keys into a single field, use Autonumber() [e.g. Autonumber(OrderId & '-' & lineItemNo) ] function to end up with number-based key (instead of String-based key taking more memory)
- All data storage is either : 1- String-based or 2-Number-based (only possible when all values within the table can be interpreted as valid number)
- Number values are read in sequence... i.e. if we have these identical sequence of number: 1.0, 1, 1.000, then only the first value read will be kept (i.e. 1.0)
Martin
Saturday, June 11, 2011
Conceptual modeling your star schema
Due to its simplicity and its general appeal, the dimensional data model (aka star schema) has probably reached a standard-like level in terms of its usage and acceptability in the BI world. Arguably, this modeling techniques is not ideal when one’s goal is merely to store and integrate a number of heterogeneous source of data. However, when one’s goal is to report and analyze on these source of data, then yes Dimensional modeling is your safest bet. The normally architected EDW platform should hold at minimum three layers, each one having clear specifications and goals. Ideally Dimensional modeling is restricted to layers closer to end-users :
| Layers | Dimension modeling applicability |
| Staging area | No –> persistent & irrelevant. Use same data model as source (typically 3NF) |
| Data Integration | No –> lack of traceability and creates a dependency on what is now considered a myth: single version of the truth. Dimensional modeling applies business rules and transformation far too early to apply it onto this EDW layer. |
| Data Presentation / Datamart | Yes –> Perfectly adapted as it exposes simple & understandable views well suited to different departmental business views |
This post is not about the details of each layer and their recommended modeling approach, but rather presents a conceptual modeling technique that I often used in real world project as a tool for validating Datamart models with business stakeholder.
This technique is inspired by a representation methodology from the ad-hoc model tool called Dimensional Fact Model, and is well adapted for our presentation layers of the EDW. This dimensional fact model methodology was originally created by Matteo Golfarelli and Stefano Rizzi. They came up with a model tool offering an easy and convenient way of communication between business stakeholders and IT technical teams. Its main advantages include:
- Specially aimed for multi-dimensional modeling
- Simple graphical form showing constraints & functional dependencies
- Recognized to be readable by non-expert
- Ideal to support the dialogue between end-users and designer during design phase
· Facts (the transaction, event, recording snapshot, .. ) occurring within the enterprise
· Measures: numerical property of a fact describing its quantitative aspect
· Dimension: axis of analyses of the fact that has a finite domain (property analyzed with the term : “By”)
· Dimension attribute: a dimension property with a finite domain and being part of at least one Hierarchy (as opposed to descriptive attributes)
· Hierarchy: a directed tree with nodes corresponding to dimension attribute and arcs to the many-to-one association between them
· Descriptive attribute: a dimension property not part of any Hierarchy, and typically being one-to-one with the dimension lowest members (can be amount-based or yet descriptive base)
The full DFM technique has richer and more complex elements, but not all of them are relevant in a ROLAP physical implementation (see link given above for more details).
Note that these model only present a Conceptual view of the date. Each view normally represents one subject area where similar facts are grouped together. Let’s also note that, these are not describing any logical/physical data model. It may turn out that, during implementation, more than one physical star schema would be necessary to represent one Conceptual Design, or conversely, one physical star schemas may be used for more than one Conceptual Design. The role of these Conceptual Designs is to get the Business sign-off which is independent on the physical details implementation choice.
Below is a generic model diagram depicting the main concepts that I rely upon for my projects:
Martin
Sunday, May 15, 2011
La Sicile vue par mes enfants
Nous avons profité des dernières vacances de Pâques pour aller visiter la Sicile.
J'ai eu l'agréable surprise de constater que mes enfants ont eu l'idée de faire un résumé du voyage avec leur mamie. Je me permet donc d'en retranscrire ici le contenu. Ceci s'avère intéressant de voir leur propre interprétation du même voyage ... Je n'y ai donc fait aucune édition sauf pour la correction de "quelques" fautes normales de la part d'enfants de 7 et 9 ans (les notes en italiques correspondent à mes commentaires, et j'y ai aussi apporter des photos avec mes descriptions pour la postérité!).
-------------------
Vacances en Sicile du 15 au 23 avril 2011.
Vendredi: Nous avons fini l'école plus tôt que d'habitude. On est allé chercher mamie à l'aéroport. On a fait 5 heures de route pour aller au bateau. Pendant ce trajet on a fait des jeux: , .
On a fait la file avant d'entrer dans le bateau. Avant de partir,on a attendu avant de se coucher que le bateau parte. Je couchais avec mamie, Mathias et Athéna (et oui, nous avons dû amener le hamster avec nous).
Samedi: après le déjeuner on a fait le tour du bateau avec papa et on a trouvé un coin du bateau où il y avait énormément de vent. On a débarqué du bateau et puis on a fait 2 heures de route, et on est arrivé à notre maison. Il pleuvait. On a mangé du pain, et on s'est couché.
Dimanche: on s'est levé avec un beau soleil. Mathias et moi on s'est baigné 5 fois (à une température avoisinant 17C pour l'eau et pas plus chaud pour l'air extérieure..donc les parents sont intervenus avant l'hypothermie!).
| Photo osée de Laurie ne souffrant pas encore d'hypothermie! |
| Le jardin garni d'arbres fruitiers tel que le neflier et le citronier |
Lundi: le lendemain matin on est allé à Castellamare del Golfo pour acheter un ballon de foot (en autres). On est allé cherché maman et on a mangé dehors. On est rentré jouer au ballon et on a mangé de la bonne pizza (c'est tout?!).
| Petit place au coeur de Castellamare del Golfo |
| Vue de la petite ville portuaire pris depuis une colline |
| Vue du port depuis les hauteurs |
Mardi: on est allé à Sageste voir un temple grec et en descendant papa a vendu 2 billets (hmm...le temple vieux d'à peu près 2500ans est relégué au même niveau que l'anecdote!).
| Vue derrière le temple donnant sur la cité d'autrefois (la ville fut détruite par les Vandales au Ve siecle A.D. |
Mecredi: on est allé voir le volcan Etna. Papa et moi et Mathias nous sommes montés à pied voir cratère. Il faisait très froid. Après on a choisit des souvenirs (pas de commentaires leur mamie lis probablement ce texte!). Mathias a choisi: un lézard et une petite charette. Moi j'ai choisi une boîte de pierres du volcan et un petit hibou en lave. Et maman m'a donné une belle bague noire.
| Des vestiges de la dernière grande éruption |
Après on est allé à la ville d'Enna qui est la plus haute de la Sicile: La plus belle journée (ca fait plaisir! )
| Un aperçu de la haute ville localisée sur un haut plateau de près de 1000m |
| Partie de la ville. |
| Vue sur Calascibetta ville perchée juste en face d'Enna |
| La ville est très densément construite et comporte plusieurs portes sorte de fenêtre vers l'extérieur! |
Jeudi: il faisait beau et chaud. On a mangé des bonnes glaces: mamie à la pistache, Mathias à la vanille, papa au café et moi j'ai pris au chocolat. On est allé à la plage, on s'est baigné et on a couru dans les vagues et ramassé des pierres.
| Sans équivoque la journée la plus marquante pour les enfants! (eau et air à 18C ... que demander de mieux) |
Vendredi: il pleuvait. On a visité des temples d'une ancienne cité (Visite de
Sélinonte, ancienne cité grecque, la Sicile fut un haut lieu de la
civilisation greque, comme en témoigne la présence de nombreux bâtiments
grecs antiques comme par ex. la vallée des Temples près d’Agrigento ) et moi, Mathias, maman et papa on a grimpé sur les grosses pierres.
| Temple reconstitué de Sélinonte |
Plusieurs
temples se trouvent sur ce site, dont un ayant encore la majorité de ces
colonnes toujours dressées! Ce qui provoqua une question pertinente de
mon fils: pourquoi tous les autres temples sont en ruines sauf
celui-là..? En effet
qu'elles sont les probabilités qu'un tremblement de terre majeur ait pu
détruire tous les temples avant la construction du dernier et ce sans
répétition depuis !? Je ne veux pas me vanter mais il a trouvé la
seule réponse logique ! ce temple a bel et bien
été réstaurée, …déduit des dates de construction trouvées ici et confirmé par cette article précisant la réconstitution
du temple dans les années 1950.
| Les enfants sur les ruines des autres temples |
| Les restes de l'acropole |
Après on est allé aux souvenirs: Mathias a choisi un hibou en bronze et moi j'ai rien choisi. Après on est allé mangé le souper au restaurant, puis retourné à la maison et on s'est couché.
Samedi: on a fait nos bagages et on est parti pour visiter Monreal. On s'est perdu dans Monreal, et les rue étaient très étroites et un monsieur a guidé papa pour sortir (c'est maintenant connu les GPS ne sont pas toujours les meilleurs guides). On a dîné et après moi et Mathias on a choisi des souvenirs, Mathias a choisit un hibou en lave et moi j'ai choisi un hibou en bronze (est-ce la mémoire sélective qui font que mes enfants se répètent ou bien devrais-je parler ma mère). On a pris le bateau pour revenir à Gènes.
Dimanche: on était sur le bateau et maman nous a acheté du chocolat de Pâques et on est sorti du bateau pour prendre la route qui mène à notre maison. On a fait 5 heures de route pour aller à la maison et c'était la fin de nos vacances!
Laurie et Mathias.
----
Bon, cette
description de voyage n'est pas tout à fait étrangère mais quand même…
Sans re-faire ma propre version je me contenterai de résumer le mien
par: de la bonne bouffe en famille, du vélo, un peu de culture et
beaucoup de paysage
et petites découvertes toutes simples qui font la beauté des voyages:
| Magnifique et énorme ficus situé dans un petit parc public de Castellammare Del Golfo |
Monday, April 11, 2011
Personal Knowledge Management
I've always been looking for a tool that could simplify all notes I take to store and gather business knowledge I accumulate along my consulting activities. This could even be leveraged for other aspect of life for that matter, but for now my need is to optimize the knowledge acquisition and retention done when taking on new professional projects.
The level of cognitive load is directly linked to all the new information (principles, fact, rules, definition, etc.. ) that is to be assimilated early on any new project inception. Any method or tool helping me to optimize my knowledge acquisition and management could certainly be a big benefit for the project.
The key spec I'm looking for in such a tool are:
There are tools more oriented toward online collaboration which have been adapted for personal use: personal wiki ( e.g. twiki for personal, moinmoin personal). But I find these too html-presentation oriented... my concern is to gather information not how should it be represented.
Although I did not yet find the optimal solution, I find the tools that falls into the area of "mind-mapping" (e.g. theBrain, freeMind, thinkgraph) to offer good characteristics. You are not too worried with how info is presented (since it pretty much follow a fix canvas) so you can fully dedicate yourself with the information content. However, it does suffer from a few limitation: volume content (I don't see collpasing/exploding thousands or more nodes), versioning and/or time-dependent information, ...
The level of cognitive load is directly linked to all the new information (principles, fact, rules, definition, etc.. ) that is to be assimilated early on any new project inception. Any method or tool helping me to optimize my knowledge acquisition and management could certainly be a big benefit for the project.
The key spec I'm looking for in such a tool are:
- must be flexible and easy to add new content without having to first organize and structure the content, the relationship among concept and taxonomy
- must be light (must not "get in the way" ) and ideally available from the net and stored the info centrally
- must easily allow for structuring, re-structuring the content (either through tag, hierarchy, taxonomy, etc...)
- and obviously must be intuitive...
There are tools more oriented toward online collaboration which have been adapted for personal use: personal wiki ( e.g. twiki for personal, moinmoin personal). But I find these too html-presentation oriented... my concern is to gather information not how should it be represented.
Although I did not yet find the optimal solution, I find the tools that falls into the area of "mind-mapping" (e.g. theBrain, freeMind, thinkgraph) to offer good characteristics. You are not too worried with how info is presented (since it pretty much follow a fix canvas) so you can fully dedicate yourself with the information content. However, it does suffer from a few limitation: volume content (I don't see collpasing/exploding thousands or more nodes), versioning and/or time-dependent information, ...
So until I find a better match, I will keep on relying on mind mapping software, and it always help when you can have a good open source and free version such as Freemind. And for an online solution, there is also mind42.com.
As an example, I just used it to gather some background knowledge on rules/best practices applicable when one wants to define data layer of aggregation in a typical data warehouse implementation relying solely on relational technology (inspired from Mastering data warehouse aggregates). Here is a partial view of this guideline (done with Freemind):
Here is the same guideline shown as a dynamic mind map :
Martin
Sunday, March 06, 2011
Ski en Engadine
La Suisse est certainement le pays le plus emblèmatique des alpes. Plus de 60% de sa superficie est située en territoire alpin (tout juste derrière l'Autriche) et plus de la moitié des sommets à 4000 se trouvent ici. Nous en profitons régulièrement avec les sorties de ski du weekend, par contre nous n'avions jamais fait un voyage exclusivement dédié au plaisir de la montagne avec les enfants. Cette année, nous avons donc choisi de passer une semaine dans la région d'Engadine, vaste et longue vallée avec de nombreuses stations de ski. Cette région est aussi connue pour, à la fois son manteau neigeux et ... son ensoleillement!
La région a le climat le plus froid de la Suisse et offre donc les meilleures conditions de neige ... pas trop de soucis à se faire contrairement à d'autres sites alpins comme en France.
Pour se rendre il faut pratiquement traverser tout le pays d'ouest en est, ... ce qui nécessiterait de franchir plus de 4 cols!! Donc, il est plus simple de faire simplement le tour des montagnes en passant par Zurich!
La première montée se fait dans la vallée creusée par la rivière Julia qui est située dans le canton de Grisons. Se trouve le long de la route le barrage du lac de Marmorera qui fut construit en 1954 tout en nécessitant le déplacement de toute la commune du même nom!!
| Site du barrage de Marmorera |
| Les enfants qui profitent d'une pause pour se dégourdir et surtout oublier leurs maux de coeur...! |
Ensuite on franchit le col de Julier à plus 2200m, qui reste ouvert toute l'année. La descente se fait par la suite jusqu'à la ville de St.Moritz.
Une fois sur place, et bien il ne reste qu'à profiter du ski et des sports hivernals car toute la région est bien enneigée et ce jusqu'en bas de la vallée, somme toute assez haute en altitude. Voici quelques clichées pris depuis les 2 domaines les plus importants du coin, soient Corvatsch et Corviglia.
| Vue plongeante vers St-Moritz depuis Corviglia |
| Autre vue du domaine Corviglia qui culmine au "Piz Nair" |
| Magnifique vue sur le Bernina, point culminant à 4049m. |
| L'autre versant est le domaine Corvatsch, qui permet de monter plus haut et skier sur le glacier du même nom. |
Martin
Thursday, August 05, 2010
Thesis
One of the reason why I'm holding this blog is to archive things I consider important enough to be kept in a longterm platform as I hope this one to be? A while back, I wanted to put online the thesis I wrote in the mid-90's... wow that sounds old! Being optimistic I though this would be a simple matter... it is not as if I wrote this with a typewriter requiring me to scan the entire document! Word processor existed back then and I even used what was considered at the time the top of word processor: WordPerfect.
Well this wishful thinking was ignoring limitation of technology and its rapid obsolescence. When I consider what I ended up using to archive this important piece of work> not USB Flash drive, not CD , not DVD, not even Zip drive.. yes on those 3.5inch floppy disk: there was simply no chance of getting it back. I did manage to restore one diskette, but was less successful in reading and converting its format (of course I kept the files on their original WP 5.2 format ! ).
Anyway, enough allusion to my age, and here is the main content of this post> A full scan in pdf of my thesis dated back from 1994:
Martin
Monday, April 19, 2010
PALO MOLAP SERVER and Excel Add-in
What is Palo MOLAP Server:
- Palo is cell-related
- Palo is an in-memory database
- Palo is multi-dimensional
- Support Hierarchies in Dimension
- Support Attributes for Dimension member (e.g. to allow for localization, provide longer name … ) in addition to Element names. Note that these Attributes are stored in separate tables.
A local server is installed on your computer when you install the Palo client. You can log into the local servers of other computers in a network. In practice, this makes each local server public. You can create users and groups and also assign passwords to manage necessary access rights to your server. But you can't add another server on the same computer.
A Server can host many different Databases which contain one or more Data Cubes. Dimensions can be shared among different Cubes. A server can be installed and run privately (Localhost, by default: http://127.0.0.1:7777) or on a shared server for concurrent multi-users access.
Palo OLAP Server with Excel Add-In is open source designed to help working with large data quantities represented multidimensionally. Palo server can host multiple end-users on a network and thus eliminate the need to distribute all Excel tables with all well known problems associated to that.
Although its main focus is to work on top of Excel, it seemed to be supporting the OpenOffice Calc equivalent as well, although I did not try it.
My observations done on the Palo BI Server 3.0 & Excel Add-in:
Very robust and well designed with a full integration with Excel. So if you are a big Excel fan and don’t like the mess that this lead too in big organization this can help mitigate the often disastrous Excel over-used in today’s large enterprise.
Who has not suffered from Excel hell where merely all managers start their own mini Reporting app initiative within Excel…another illustration of the Peter Principle applied to software application ;-)!!!
So if you are very good with Excel, then you can basically create Cube right-off the bath without merely leaving your comfort zone. Even all Cube management and Administration is done through a dedicated Menu Palo added in Excel.
Ok, at one point you will need to import data from external source, but even then you can easily use Excel built-in function to load a cube from a simple CSV file and leverage Palo provided Excel function to generate your hierarchies levels, your calculated metrics, your ragged dimensions (for example you could easily create a time dimension from a simple date format by deriving the quarter, week, months and year data using normal Excel functions).
…It is quite cool you actually see these import in real-time with cells being refreshed in front of you (ok yes not so good for performance but you have the option to stop the refresh).
Concerning the dimension, I’ve encountered a few limitations concerning its dimensions structure and Elements. Besides the documented naming restrictions concerning Elements (see below), consolidated Elements cannot have the same names (case insensitive, in contradiction with user-doc) as one of its sub-elements (i.e. parent can’t have the same name as children). It seems to be applicable throughout all the dimension hierarchy, no duplicates can exist at any level! (I remember Essbase having similar constraints?)
Also, complex dimension structure having multiple independent hierarchies in parallel tends to degrade performance considerably.
Documented limitation and rules about Characters allowed in element-names:
Characters allowed in element name:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.
Rules to follow for name of an element:
- The length cannot be 0.
- It cannot begin with a blank.
- It cannot end with a blank.
- Names in Palo are case sensitive!
The most commons functions you would use within Excel are:
--- PALO.DATA()
This is used to represent data of a cube inside Excel (work in both read/write mode ) based on the arguments listed. The arguments are used to identify the host, database and the cube. Obviously we must include the dimension/measures elements in order to address the cube cell precisely.---PALO.EADD()
Other similar function exist to represent data (PALO.DATAC and .DATAV) but these differ only by how the data is fetched: each sheet cell individually (PALO.DATA being the slowest), all sheet cells having PALO.DATAC formulas will be calculated in one-pass, whereas the PALO.DATAV is even faster because it leverages Excel array formula (not always possible).
This is used to Add Elements within existing Dimension. We have also arguments to provide server/database as well one to provide the Dimension name. Other argument is to give the Type (‘n’ : base element, ‘c’: consolidated) specify the type of elements. The use of type "n” can always be used since it will anyway be converted to ‘c’ later on during import when sub elements are assigned to parent element.---PALO.EADD()
We need obviously to provide the Element name, the Parent name (optional since top parent may not have any) and Weight (number used to describe the consolidation factor). A final important argument is Clear : this decides if the dimension should be cleared for all elements before importing, so when this parameter is set to TRUE all elements are deleted before importing and when it is set to FALSE it just updates old and inserts new elements.
So you should change this parameter in all your PALO.EADD functions from TRUE to FALSE to avoid clearing the dimensions.
Possible parameters values are 0 (or FALSE), 1 (or TRUE) and 2
0: Removes before importing no elements of the dimension.
1: Removes before importing all elements of the existing dimension.
2: Removes before importing all existing elements of the C-dimension, basic
elements are not deleted.
Attention with Problem of removing Dimension element with PALO.EADD:
I had this problem until I realised that PALO imports work in the entire workbook (not only the active worksheet)! So when you are importing using the PALO.SETDATA function in one worksheet any PALO.EADD function in other open workbook will also be run. But since new rows are only imported in the active sheet, only the currently displayed (last) row in inactive sheets are imported again using PALO.EADD.
And obviously you also have a function to load fact data into the Cube: PALO.SETDATA. This function works similarly as PALO.EADD (must specify server/database/cube), as well as all the coordinates elements (for which dimension member the value is loaded) and obviously the cell value (the value of the measure specify in the coordinate). It has also a Splash (a funny terminology ?!!) argument which indicates whether we can write to a consolidated element (and distribute data evenly among children afterwards..).
Important Design PALO features:
1. Attributes
Attributes are used to provide additional element properties (e.g. other languages, elements description like Product description, code and other attributes, and also special number like Product Unit Prices, etc..).
A very Palo-specific way to manage these Attributes is done through a dedicated special Cube (Attribute-type) stored independently of the Cubes having the fact data. These independencies between Attributes and Elements data is flexible, but force you to switch back and forth between different Cubes during normal Reporting….
2. Hierarchies
Palo support Hierarchy inside a Dimension, and these hierarchies can be Balance or Unbalanced and even Ragged,. You can even have multiple hierarchies within the same dimension (same elements can belong to different consolidations element, i.e. different Parent).3. Comments
You can add Comment elements (defined as normal elements in Dimension but important to set in String format and not Numeric format typically used for normal Elements).4. Calculated Elements
To create calculated Elements (typically Calculated measures), we have two options:
1) set up so-called server Enterprise rules in the database where computations are done within the database… these Enterprise rules may involve complex models and large data volumes impacting potentially the speed as a great deal of computing may be required to calculate the entire cube).
2) a simpler approach and sometimes good alternative is the use of Push Rules, i.e. operations, which are performed in Excel and the results of which are then written back into the cube, so no need for Server-processing. This is done through the use of PALO.SETDATA function to upload into the cube any elements cells and then leverage all Excel functions used to calculate the Elements.
5. Consolidation Factors
With hierarchical structures you may factor elements differently among all children of a Parent. Typically you normally have an equal factor (=1), but you may need to weight the elements differently: negative weightings for Measure-type element for which you would derive a consolidated Parent (e.g., when consolidating expenditures and revenue to have a Profit-type consolidated member).
How-tos:
- Creating new cubes
The following sequences are normally necessary to Create a complete new Cube:- Importing External Data
I. Create a new database
II. Create dimensions
III. Create a cube with the dimensions
IV. Importing elements into the dimensions
V. Import data cells
Important: Dimensions are created independently of Cube (they are stored at the Database-level), so that we can delete complete Cube without loosing any Dimension data. On the other hand, updating a Dimension structure/data will impact all associated Cubes.
Although it is quite simple to populate Dimension and Cube directly doing data entry Excel, it is certainly not practical with large volume of data. So other options exist.- Working with Snapshot
Import options (through special Excel built-in functions) from different source:
- text files
- other Palo cubes
- database through ODBC driver
- from direct excel Worksheet
- some external ETL standard tools (including PALO ETL Server application)
Final option is through Database back-up: although Palo is memory-based, it obviously keeps a copy of each database into dedicated directory. Each Database-directory has three different files types (1-, 2- and 3- ) directly stored within the server file system.
It is convenient to do backup copies of database by simply copying the full directory content (after having stopped the PaloServerService)…that you can also use to transfer full Database (with all their cubes/dimensions) into a different host.
Also convenient is to work on a normal Excel Worksheet without being connected to the Palo server. This is possible on any worksheet tied to a PaloServer with the options Save as Snapshot… this will change all Palo-specific formulas in cells by normal data values… as any standard Excel sheet.
Similarly but not quite the same, you can also work on an offline mode (so the cells keep their Palo-specific formulas) to be able to see data without any connection to the Palo MOLAP Server (this requires to activate the Use client Cache in the Database settings).
Martin
Tuesday, April 13, 2010
La région du bassin du Souss-Massa
Les dernières vacances m’ont permis de voir pour la première fois un pays du Maghreb, le Maroc.
Premières impressions depuis l’avion: c’est beaucoup plus vert que ce que j’aurais cru étant donné la proximité du désert… mais peut-être que la conjonction de l’océan et des chaînes de montagne Atlas fait en sorte que la saison des pluies arrosent tout de même un peu une partie de ce grand pays ?
Autre particularité du monde végétale du coin est l'Arganier, petit arbre endémique du Maroc. Son amande a des belles qualités et se transforme en huile soit de cuisine ou de produit de soins pour le corps. D'ailleurs on voit de plus en plus cette huile dans nos magasins...
Me voici avec Mathias explorant les champs de l'Arganier dans un bolide de son choix ! Plus tard, il m'avouera qu'il s'était caché les yeux par peur... peur qu'il combattait en se répétant inlassablement que son papa était un bon conducteur !!
Une autre photo de l'arganeraie où les plus fins observateurs apercevront les fameuses chèvres grimpeuses d'Arganier:
une fois le fruit recueilli de cet arbre, on peut en extraire l'huile à partir de son amande:
Autre attrait à voir de Taroudant est la synagogue qui a été convertie en lieu de trésor aux plaisirs pour les yeux depuis le départ de toute la population juive de cet endroit (la communauté juive du Maroc est aujourd'hui seulement présente dans les grandes villes).
Y'a une autre facette du pays qui nous moins plu: cette culture de marchandage et cette pression commerciale très présente dans les rues... surtout dans les villes plus touristiques où tout touriste est assurément racolé à peu près à chaque coin de rue.
Ok il faut savoir composer avec cela et c’est pas trop agressif non plus. Bon il est vrai qu’on va trouvé de beaucoup meilleur prix sur la rue (la voiture louée à 5fois moins cher que celle trouvé via les agences touristiques normales ), mais certains voudront éviter d’avoir à gérer ces négociations et le pourboire une fois le service fourni !
Parlant de marchandage, on ne pourra passer sous silence le fameux marchand de tapis. On a eu une agréable surprise d'ailleurs avec cette rencontre d'un marchand des plus typique qui a fait toute une mise en scène pour expliquer les différences entre Berbère, nomades et bédouins, la signification des dessins et style des tapis et leur origine. Ok, y’a beaucoup de mise en scène pour augmenter les chances de vente, mais les enfants ont été conquis... et les parents ont finalement plié suite aux milliers de tapis déroulés!
Ce fut aussi accompagné de cette pratique de convivialité et d’hospitalité avec thé à la menthe. On a eu plusieurs occasions d'y goûter et même les enfants se sont mis au thé.
On a aussi parcouru le littoral entre Agadir et Essaouira via une route très agréable longeant plus ou moins la rive. Attention aux flics cachés derrière les panneaux de limite 60 souvent précédés d'une distance d'à peine 200m par d'autres panneaux indiquant plutôt 80. Je ne sais pas si c'est une attrape touriste, mais je me suis bien fait avoir.
Ce littoral est parfois bien découpé, et on a pu constater la force impressionnante de l’océan de ce côté de l'Atlantique!!
Le long de la route, on voit aussi les avancés du désert qui semble se jeter littérallement dans l'océan!
Aussi plusieurs dromadaires nous apparurent dans ces parcs tout près de la route... sont-ils à l'état sauvages, je ne crois pas?
On a fini l'excursion de la journée à la ville fortifiée d’Essaouira. Cette ville apparemment très venteuse (confirmée lors de notre séjour) fut fondée au 18e siècle par MohammedIII et construit par des architectes européens. Elle comporta un port marchand de grande importance mais qui est maintenant qu'un port dédié à la pêche.
Les enfants toujours aussi sérieux:
Finalement mes enfants m'en voudraient vraiment si ja passait sous silence le charmeur de serpent (c'est ce qu'ils ont le plus apprécié du voyage... dit avec toute l'honnêteté et la candeur propres aux enfants)
Mathias n'en revient toujours pas de sa rencontre avec le cobra argenté!
Le dernière anecdote du voyage est la chute de Mathias ...qui a atterri sur la tête pendant une escapade avec Laurie. Laurie, soeur attentive et toujours aux petits soins avec son frère benjamin, donna les premiers soins et ensuite se précipita vers sa mère avec cette phrase assassine: ... pendant que toi tu étais en train de te prélasser au bar Mathias se fendait le crâne!
Martin
Premières impressions depuis l’avion: c’est beaucoup plus vert que ce que j’aurais cru étant donné la proximité du désert… mais peut-être que la conjonction de l’océan et des chaînes de montagne Atlas fait en sorte que la saison des pluies arrosent tout de même un peu une partie de ce grand pays ?
Après vérification, la région du bassin du Souss-Massa où l’on se trouvait est plutôt caractérisée par un climat subdésertique handicapant sérieusement les cultures céréalières. Par contre, grâce à l’exploitation des nappes phréatiques, la culture arboricole est très présente ce qui explique la présence de grandes étendus de champs de verdure correspondant à exploitation d’arbres agrumes (oranger, clémentine, citronnier,..). On comprend mieux l’omniprésence de tous les fruits marocains dans nos marchés. L’agriculture est très importante pour l’économie du pays et est apparemment très conditionnée aux quantités de pluie reçu…

Aussi typique de ce pays sont les épices que l’on retrouvent partout exposés et frais dans les souks … entre la coriandre, le safran (épice les plus chers au monde extrait à partir d’une fleur au pétale mauves), le cumin, le gingembre, la cannelle, le clou de girofle, la noix de muscade, ou encore les mélanges préparés pour les tajines et couscous comme le Ras el hanout (composé traditionnellement de plus d'une vingtaine d'ingrédients!). Le choix est vraiment impressionnant comme en témoigne la photo pris du marché berbère de Taroudant. La cuisine marocaine en est bien imprégnée surtout dans ses couscous et autres tajines apprêtés avec plusieurs épices raffinées.

Paysage pris des collines tout près d'Agadir.
Aussi typique de ce pays sont les épices que l’on retrouvent partout exposés et frais dans les souks … entre la coriandre, le safran (épice les plus chers au monde extrait à partir d’une fleur au pétale mauves), le cumin, le gingembre, la cannelle, le clou de girofle, la noix de muscade, ou encore les mélanges préparés pour les tajines et couscous comme le Ras el hanout (composé traditionnellement de plus d'une vingtaine d'ingrédients!). Le choix est vraiment impressionnant comme en témoigne la photo pris du marché berbère de Taroudant. La cuisine marocaine en est bien imprégnée surtout dans ses couscous et autres tajines apprêtés avec plusieurs épices raffinées.
L'épice la plus mythique est sans aucun doute le safran cultivé et exporté principalement du creux de l’anti-Atlas entre Taroudant et Ouarzazate. Y'a aussi le piment doux, la coriandre en grains et bien-sûr la menthe douce qui demeure un symbole fort grâce au thé à la menthe sucrés tradition importante de la vie sociale dans tout le Maghreb. La menthe du Maroc serait considérée comme une des meilleures du monde !
Tous ces épices se retrouvent en abondance dans le souk et autres marchés. Un exemple de marché authentique est celui de la petite ville de Taroudant très recommandée avec ses 2 souk berbères et arabes. On a un meilleur ratio qualité/prix qu’à Agadir, donc conseil aux touristes il faut se déplacer des villes les plus touristiques pour trouver de bonnes affaires.

Dans le souk on trouve presque de tout... des céréales, des meubles artisanaux jusqu'aux animaux de la ferme!
C'est assez impressionnant sur cette photo du souk, comment les femmes s'empressent à se cacher le visage: dans la culture musulmane les gens refusent souvent de se faire photographier et ce plus particulièrement les femmes ... ce serait pour éviter toute idôlatrie de reproduction d'être vivant! J'ai pris réellement connaissance de ce comportement une fois retourné à la maison ...et oui j'ai été digne du parfait touriste.

Dans le souk on trouve presque de tout... des céréales, des meubles artisanaux jusqu'aux animaux de la ferme!
C'est assez impressionnant sur cette photo du souk, comment les femmes s'empressent à se cacher le visage: dans la culture musulmane les gens refusent souvent de se faire photographier et ce plus particulièrement les femmes ... ce serait pour éviter toute idôlatrie de reproduction d'être vivant! J'ai pris réellement connaissance de ce comportement une fois retourné à la maison ...et oui j'ai été digne du parfait touriste.
Autre particularité du monde végétale du coin est l'Arganier, petit arbre endémique du Maroc. Son amande a des belles qualités et se transforme en huile soit de cuisine ou de produit de soins pour le corps. D'ailleurs on voit de plus en plus cette huile dans nos magasins...
Me voici avec Mathias explorant les champs de l'Arganier dans un bolide de son choix ! Plus tard, il m'avouera qu'il s'était caché les yeux par peur... peur qu'il combattait en se répétant inlassablement que son papa était un bon conducteur !!
Une autre photo de l'arganeraie où les plus fins observateurs apercevront les fameuses chèvres grimpeuses d'Arganier:
| From Maroc_2010 |
une fois le fruit recueilli de cet arbre, on peut en extraire l'huile à partir de son amande:
Autre attrait à voir de Taroudant est la synagogue qui a été convertie en lieu de trésor aux plaisirs pour les yeux depuis le départ de toute la population juive de cet endroit (la communauté juive du Maroc est aujourd'hui seulement présente dans les grandes villes).
![]() |
| Vue de l'intérieur de la synagogue avec toutes ces décorations ostentatoires (par ailleurs tous à vendre, à condition d'y mettre le prix ) |
Y'a une autre facette du pays qui nous moins plu: cette culture de marchandage et cette pression commerciale très présente dans les rues... surtout dans les villes plus touristiques où tout touriste est assurément racolé à peu près à chaque coin de rue.
Ok il faut savoir composer avec cela et c’est pas trop agressif non plus. Bon il est vrai qu’on va trouvé de beaucoup meilleur prix sur la rue (la voiture louée à 5fois moins cher que celle trouvé via les agences touristiques normales ), mais certains voudront éviter d’avoir à gérer ces négociations et le pourboire une fois le service fourni !
Parlant de marchandage, on ne pourra passer sous silence le fameux marchand de tapis. On a eu une agréable surprise d'ailleurs avec cette rencontre d'un marchand des plus typique qui a fait toute une mise en scène pour expliquer les différences entre Berbère, nomades et bédouins, la signification des dessins et style des tapis et leur origine. Ok, y’a beaucoup de mise en scène pour augmenter les chances de vente, mais les enfants ont été conquis... et les parents ont finalement plié suite aux milliers de tapis déroulés!
Ce fut aussi accompagné de cette pratique de convivialité et d’hospitalité avec thé à la menthe. On a eu plusieurs occasions d'y goûter et même les enfants se sont mis au thé.
On a aussi parcouru le littoral entre Agadir et Essaouira via une route très agréable longeant plus ou moins la rive. Attention aux flics cachés derrière les panneaux de limite 60 souvent précédés d'une distance d'à peine 200m par d'autres panneaux indiquant plutôt 80. Je ne sais pas si c'est une attrape touriste, mais je me suis bien fait avoir.
Ce littoral est parfois bien découpé, et on a pu constater la force impressionnante de l’océan de ce côté de l'Atlantique!!
Le long de la route, on voit aussi les avancés du désert qui semble se jeter littérallement dans l'océan!
Aussi plusieurs dromadaires nous apparurent dans ces parcs tout près de la route... sont-ils à l'état sauvages, je ne crois pas?
On a fini l'excursion de la journée à la ville fortifiée d’Essaouira. Cette ville apparemment très venteuse (confirmée lors de notre séjour) fut fondée au 18e siècle par MohammedIII et construit par des architectes européens. Elle comporta un port marchand de grande importance mais qui est maintenant qu'un port dédié à la pêche.
| From Maroc_2010 |
Les enfants toujours aussi sérieux:
Finalement mes enfants m'en voudraient vraiment si ja passait sous silence le charmeur de serpent (c'est ce qu'ils ont le plus apprécié du voyage... dit avec toute l'honnêteté et la candeur propres aux enfants)
Mathias n'en revient toujours pas de sa rencontre avec le cobra argenté!
Martin
Subscribe to:
Posts (Atom)



















