Pentaho: Melhor maneira de converter uma data em uma dimensão de cubo de perfuração para baixo?
Pergunta
Minha tabela de dataware apenas contém um único date
Coluna SQL, mas quero poder perfurar usando os níveis habituais de ano/trimestre/mês/dia.
Eu poderia criar manualmente uma nova coluna usando a Kettle Pentaho e, em seguida, criar os níveis um por um no Pentaho Schema Workbench.
Mas essa é uma tarefa tão comum (acho que todo mundo criando cubos relacionados a vendas precisa fazê-lo), então tenho certeza de que Pentaho desenvolveu algo para fazê-lo em segundos. Qual é a maneira recomendada de fazer isso?
Solução
Não conheço uma maneira integrada para fazer isso.
Aqui está um bom truque que aprendi alguns anos atrás: tenha uma mesa chamada Time com uma linha por dia/hora, dependendo das suas preferências de resolução.
Para datas, cada uma dessas fileiras conterá:
Date (date) - 2010-09-28
Day (int) - 28
Month (int) - 9
Year (int) - 2010
E você pode adicionar quantos campos quiser: trimestre, dia em semana, dia a partir do início do ano, semana após ano, etc.
Esta tabela é pré-populada com datas. Quando sua consulta exige agregações como cubo, você pode ingressar no horário com a tabela de data-warehouse, para criar qualquer agregação que desejar.
Uma boa vantagem dessa abordagem é que, usando as junções externas na consulta, você também pode adicionar datas vazias ao relatório e não apenas agregar em datas que contêm valores. Esse é um recurso importante se você perfurar dimensões muito escassas.