2010-08-12 3 views
3

Ma table de datawarehouse ne contient qu'une seule colonne SQL date, mais je souhaite pouvoir effectuer une exploration en utilisant les niveaux habituels année/trimestre/mois/jour.Pentaho: Meilleure façon de convertir une date en une dimension de cube pouvant être explorée?

Je pourrais créer manuellement une nouvelle colonne en utilisant Pentaho Kettle, puis créer les niveaux un par un dans Pentaho Schema Workbench.

Mais c'est une tâche si commune (je suppose que tout le monde créant des cubes liés aux ventes doit le faire), donc je suis sûr que Pentaho a développé quelque chose pour le faire en quelques secondes. Quelle est la manière recommandée de le faire?

+0

Je faisais face au même problème et j'ai fait quelques recherches. S'il vous plaît vérifier ma réponse dans ce fil: http://stackoverflow.com/a/13228258/13261 –

Répondre

2

Je ne connais pas de façon intégrée de le faire.

Voici une astuce que j'ai apprise il y a quelques années: Avoir une table appelée Temps avec une ligne par jour/heure, selon vos préférences de résolution.

Pour les dates, chaque ligne contiendra:

Date (date) - 2010-09-28 
Day (int) - 28 
Month (int) - 9 
Year (int) - 2010 

Et vous pouvez ajouter autant de champs que vous le souhaitez: Quarter, jour de la semaine, jour du début de l'année, la Semaine de l'année, etc.

Ce tableau est pré-rempli avec des dates. Lorsque votre requête requiert des agrégations de type cube, vous pouvez joindre la table de temps avec la table de l'entrepôt de données pour créer l'agrégation que vous souhaitez. Un bon avantage de cette approche est qu'en utilisant des jointures externes dans la requête, vous pouvez également ajouter des dates vides au rapport et non seulement agréger les dates qui contiennent des valeurs. Ceci est une fonctionnalité importante si vous explorez des dimensions très clairsemées.

Questions connexes