Pentaho: лучший способ преобразовать дату в кубическое измерение с возможностью детализации? - PullRequest
3 голосов
/ 12 августа 2010

Моя таблица хранилища данных содержит только один date столбец SQL, но я хочу иметь возможность детализации с использованием обычных уровней год / квартал / месяц / день.

Я мог бы вручную создать новый столбец с помощью Pentaho Kettle, а затем создать уровни один за другим в Pentaho Schema Workbench.

Но это такая распространенная задача (я думаю, что все, кто создает кубы, связанные с продажами, должны это делать), поэтому я уверен, что Pentaho разработал что-то, чтобы сделать это за считанные секунды. Каков рекомендуемый способ сделать это?

1 Ответ

2 голосов
/ 02 сентября 2010

Я не знаю, как это сделать.

Вот хороший трюк, который я выучил несколько лет назад: Подготовьте таблицу с одной строкой в ​​день / час в зависимости от настроек разрешения.

Для дат каждая такая строка будет содержать:

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

И вы можете добавить столько полей, сколько хотите: Квартал, День в неделю, День от начала года, Неделя в году и т. Д.

Эта таблица предварительно заполнена датами. Когда для вашего запроса требуются кубоподобные агрегаты, вы можете объединить таблицу Time с таблицей хранилища данных, чтобы создать любую агрегацию, которая вам нравится.

Приятным преимуществом этого подхода является то, что с помощью внешних объединений в запросе вы также можете добавлять в отчет пустые даты, а не только агрегировать по датам, которые содержат значения. Это важная функция, если вы углубляетесь в очень разреженные размеры.

...