2012-03-30 1 views
0

J'évalue une solution de Mondrian-Saiku pour un client. Après avoir analysé leurs schémas de base de données actuels, je me rends compte que ce qui constitue leurs «données de table de faits» est actuellement stocké dans XML. Les XML eux-mêmes sont stockés sous forme de types de données blob dans une table MySQL. Pensez-y comme ceci: la table contient toutes les transactions de l'entreprise; les détails de chaque transaction sont stockés dans leur propre XML; chaque chaîne XML est stockée en tant que l'une des valeurs de champ dans une ligne de transaction donnée. Cela présente un léger dilemme puisque le schéma XML de Mondrian nécessite l'utilisation explicite de noms de colonnes. À moins d'avoir à extraire et à transférer les données XML vers de nouvelles tables (ce qui n'est pas réaliste en raison de la taille des données et des dépendances d'autres systèmes), est-ce que je peux utiliser la configuration existante de mon client? d'une mise en œuvre de Mondrian-Saiku?Mondrian - Données de la table des faits au format XML

Répondre

1

Vous devez exposer les données de manière traditionnelle. Quelle est la base de données ici? Pouvez-vous créer une vue de base de données qui effectue un traitement XML sur le XML dans le blob et expose les colonnes? Alternativement peut-être quelque chose comme composite ou jboss teiid peut aider ici. Ces outils vous permettent d'exposer comme une table à la recherche standard, pratiquement n'importe quoi. Cela peut ne pas être assez rapide cependant!

+0

Merci de votre participation. Depuis que j'ai posté cette question, j'ai découvert par expérimentation que le XML de Mondrian supporte ExtractValue() via MySQL. De cette manière, aucun changement ne doit être apporté à la base de données existante. Le goulot d'étranglement semble provenir de ExtractValue(), qui est exécuté plusieurs fois pour l'agrégation de données. – kaspnord

+0

Ok. Ah, je vois; Je pensais que vous disiez que tout le dossier a été encodé en XML! J'ai donc mal compris votre question. Oui, je pense que Mondrian supporte toutes les fonctions SQL de cette façon. Évidemment, il devrait bien se mettre en cache après la première exécution, mais s'il est encore trop lent, vous devrez soit trouver un moyen plus rapide d'analyser le fichier XML, soit, comme suggéré, extraire les données vers une colonne appropriée. Ou peut-être utiliser des tables Agg, mais c'est un OTT mais dans ce cas! – Codek

Questions connexes