powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите чайнику с измерением времени в Oracle Express
9 сообщений из 9, страница 1 из 1
Помогите чайнику с измерением времени в Oracle Express
    #32423636
Илья Салов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые знатоки Oracle Express!

Давно мучаюсь с измерением времени. Пока использую только два пути:
1. Создаю иерархию из текстовых строк путем импорта из внешнего файла (такой примерчик поставлялся с Express Server) типа:

2004
1 квартал
январь
01.01.04
02.01.04
...
февраль
...
Такой способ неудобен, так как каждый раз при поступлении данных за месяц, отсутствующий в измерении, приходится генерировать новые элементы иерархии.
2. В измерении времени использую стандартный предопределенный тип Month, такой вариант более приемлем, так как заполняет недостающие значения измерения. Но никак не получается комфортно создать агрегайии по кварталам и по годам, или добавить дни. Получается как отделельные измерения. Т.е. не удается сделать иерархию, чтобы разворачивать и сворачивать вложенные элементы иерархии.

Помогите, пожалуйста! Может кто знает, как правильно создавать измерение времени?

Буду очень признателен за любую помощь в решении этой проблемы.

-=-
С уважением,
Илья Салов
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32423753
Bill_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как правильно - наверное неправомерный вопрос. Лично я предпочитаю способ 1, не вижу особых проблем с добавлением новых элементов. Советую только без необходимости элементы измерений (и другие метаданные) по русски не называть (для этого есть label, dsc и пр.)
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32423943
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Называй например
20000000 (Год)
20000100 (Месяц)
20000101 (день)
20000102
20000103
...
20001200
...
20010000

С сортировкой и иерархиями проблем не будет, влазит в 8 значный тип
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32424480
Илья Салов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Bill_ и DimaR, очень понравился вариант с 8-значными элементами. Так как в используемом мной варианте, сложно делать выборку значений. А в предложенном, с этим не будет проблем!

Спасибо всем, кто принял участие в помощи!

Если есть и еще какие варианты, то буду рад и их рассмотреть.

-=-
С уважением,
Илья Салов
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32425843
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья,

у меня есть определённые наработки, можно сказать, программный продукт для генерации текстовых файлов измерения ВРЕМЯ. Генерируется многоуровневая иерархическая структура с поддержкой уровней год, полугодие, квартал, месяц, декада, неделя, день плюс поддержка нескольких видов календарей (праздничных дней, рабочих и т.д). Всего можно нагенирить более ста атрибутов для продвинутого анализа зависимости показателей от времени. Состав атрибутов и степень нормализации получающихся таблиц можно гибко настраивать, для этого имеется визуальный интерфейс. Возможна генерация скриптов для загрузки в Oracle с помощью утилиты loader.
Это имеет мало отношения к Oracle Express, но если Вы создаёте измерение ВРЕМЯ из текстовых файлов, то мои наработки могут помочь.

Если есть интерес, пишите мне на lissianski@mail.ru


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32425938
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В комплект поставки Oracle Warehouse Builder входит функция в виде sql скрипта (Create Function ...), которую можно использовать для генерации разных видов дат.
Она работает так - на вход подаем какую либо дату, а на выходе берем одно из 20 или 30 полей, содержащих различные преобразования этой даты (год, месяц, квартал, год и т.п.)
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32426325
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Birkhoff:

В комплект поставки Oracle Warehouse Builder входит функция в виде sql скрипта (Create Function ...), которую можно использовать для генерации разных видов дат

А ссылочку на документ, где она описывается не дадите? Желательно в интернете.
Спасибо.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Помогите чайнику с измерением времени в Oracle Express
    #32426823
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Константин Лисянский

В документации об этом сказано пару слов буквально.

An example of a time dimension is provided for you with your
Warehouse Builder installation in the form of a Metadata Loader (.MDL) file.
Navigate to OWB_Home_Directory\owb\misc\time directory. The readme.txt
file in that directory explains how to use the prepackaged .MDL and .SQL files.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите чайнику с измерением времени в Oracle Express
    #32985276
sever_5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так:

Временное dimension текстовая переменная

select:

sql declare C1 cursor for -
select -
distinct -
to_char(DATE,'dd'), -
to_char(DATE,'mm'), -
to_char(DATE,'yyyy') -
from ORDER -
order by to_char(DATE,'yyyy'),to_char(DATE,'mm'),to_char(DATE,'dd')

fetch:

while SQLCODE eq 0
do
sql Fetch C1 into -
:_d :_m :_y
_date=joinchars(_d'.'_m'.'_y)
_mdate=joinchars(_m'.'_y)
mnt tdate merge _date "Загрузка дня
mnt tdate merge _mdate "Загрузка месяца
mnt tdate merge _y "Загрузка года
"Загрузка года в иерархию
limit tdate to _y
ictd.parent=1
"Загрузка месяца в иерархию
limit tdate to _mdate
ictd.parent=_y
"Загрузка дня в иерархию
limit tdate to _date
ictd.parent=_mdate
doend

_d,_m,_y,_date,_mdate текстовые переменные

Единственное, что нужно создать руками — это самый верхний уровень
типа "Весь период"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите чайнику с измерением времени в Oracle Express
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]