Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение. / 15 сообщений из 15, страница 1 из 1
16.12.2005, 10:44
    #33439951
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
AS2K(5)

Есть таблица фактов.

Код: plaintext
1.
2.
3.
4.
5.
6.
createtabe transaction(
 id int,
 order_date datetime not null, --дата заказа
 delivery_date datetime null, --дата выполнения
 invoice_date null --дата выставления счета
 value decimal( 18 , 2 ) not null
)
необходимо получить отчет как в таком виде

Код: plaintext
1.
2.
3.
4.
time		2005.10 2005.11 2005.12 

value ordered	x	x	x
value delivered	x	x	x
invoice value	x	x	x

как решить задачу такую задачу наиболее эффективно, с минимумов кубов, измерений и CM ?

Вторая задача, более сложная, получить отчет в виде

Код: plaintext
1.
2.
3.
time				2005.10 2005.11 2005.12 
value ordered not delivered		x	x	x
value delivered not invoice		x	x	x

здесь под мерой
"value ordered not delivered" подразумевается сумма заказов, которые на конец выбранного периода времени не были еще выполнены.

"value delivered not invoice" подразумевается сумма выполненных заказов, на которые на конец выбранного периода времени еще не были выставлены счета.

как решить задачу такую задачу наиболее эффективно, с минимумов кубов, измерений и CM ?
...
Рейтинг: 0 / 0
16.12.2005, 11:15
    #33440078
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
По первой задаче мне видится создать 3 куба, в каждом по 1 мере свести их в один виртуальный и дело в шляпе.
...
Рейтинг: 0 / 0
16.12.2005, 11:47
    #33440200
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
а что эффективность меряется кол-вом кубов, мер и СМ? или это олимпиадная задачка?

в жизненном цикле заказа у вас записи обновляются или вставляются?
если обновляются, то, имхо, историю получить невозможно
если вставляются, то как определить что несколько записей относятся к одному заказу? поле ИД - это ИД заказа или транзакции?
...
Рейтинг: 0 / 0
16.12.2005, 12:59
    #33440553
олапист
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
а чем не устаивает следующая таблица фактов для первой задачи?
Код: plaintext
1.
2.
3.
4.
5.
6.
create table [transaction]
(
  order_id int references [order],
  transacation_date datetime not null,
  transaction_type_id int not null references transaction_type,
  transaction_value decimal( 18 , 2 ) not null
)
2 измерения,1 мера, 1 куб :)

меры во второй задаче имхо аналогичны пресловутым "остаткам", то есть предлагаю хранить их в явном виде в таблице типа "periodic snapshot"
...
Рейтинг: 0 / 0
16.12.2005, 17:10
    #33441502
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
Dmitry Biryukovа что эффективность меряется кол-вом кубов, мер и СМ? или это олимпиадная задачка?

в жизненном цикле заказа у вас записи обновляются или вставляются?
если обновляются, то, имхо, историю получить невозможно
если вставляются, то как определить что несколько записей относятся к одному заказу? поле ИД - это ИД заказа или транзакции?

Нет это не олимпиадная задача. Просто "рюшечки" я убрал, дабы всем тут было проще понять, о чем идет речь

кол-вом кубов, мер и СМ меряютя трудозатраты и это имеет влияение на производительность ERL и запросов.

заказ = транзакция.

Обновление в оперативной системе происходит в том смысле, что при поставке ставится конкретная дата поставки вместо null. Точто также при выставлении счета.
...
Рейтинг: 0 / 0
16.12.2005, 17:22
    #33441536
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
олаписта чем не устаивает следующая таблица фактов для первой задачи?
Код: plaintext
1.
2.
3.
4.
5.
6.
create table [transaction]
(
  order_id int references [order],
  transacation_date datetime not null,
  transaction_type_id int not null references transaction_type,
  transaction_value decimal( 18 , 2 ) not null
)
2 измерения,1 мера, 1 куб :)

меры во второй задаче имхо аналогичны пресловутым "остаткам", то есть предлагаю хранить их в явном виде в таблице типа "periodic snapshot"

тоже подойдет, только количество записей в этой таблице будет в 3 раза выше.

а за подсказку "periodic snaphost" спасибо.
...
Рейтинг: 0 / 0
16.12.2005, 17:23
    #33441544
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
backfireзаказ = транзакция.
Обновление в оперативной системе происходит в том смысле, что при поставке ставится конкретная дата поставки вместо null. Точто также при выставлении счета.тогда как вы собираетесь получать состояние на какую-то дату, если хранится только текущее состояние заказов? или что означают даты в заголовках столбцов?
...
Рейтинг: 0 / 0
16.12.2005, 18:14
    #33441682
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
Dmitry Biryukov backfireзаказ = транзакция.
Обновление в оперативной системе происходит в том смысле, что при поставке ставится конкретная дата поставки вместо null. Точто также при выставлении счета.тогда как вы собираетесь получать состояние на какую-то дату, если хранится только текущее состояние заказов? или что означают даты в заголовках столбцов?

Как как, в базе лежит запись,

пример

1; 01.12.2005; 14.12.2005; NULL; 250.00
2; 05.12.2005; NULL; NULL; 300.00
3; 08.12.2005; 09.12.2005; 12.12.2005; 250.00

отчет на 10.12.2005

заказано_не отгружено 550
отгружено_не выставлен счет 250

отчет на 15.12.2005

заказано_не отгружено 300
отгружено_не выставлен счет 250
...
Рейтинг: 0 / 0
19.12.2005, 12:01
    #33443751
DmitryS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
Если я всё правильно понял, то я бы сделал так:
o три куба для задачи 1 – далее всё ясно;
o для задачи 2 в виртуальном кубе сделал бы 2 показателя, как для остатков: «Заказано-выполнено» от сотворения мира, «Заказано - выставлено» от сотворения мира. Ну да, как остатки считать, вы не хуже меня знаете
o оттестил бы Performance;
o в случае проблем, задумался бы сильнее. О снэпшотах, например
...
Рейтинг: 0 / 0
19.12.2005, 12:23
    #33443825
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
DmitrySЕсли я всё правильно понял, то я бы сделал так:
o три куба для задачи 1 – далее всё ясно;
o для задачи 2 в виртуальном кубе сделал бы 2 показателя, как для остатков: «Заказано-выполнено» от сотворения мира, «Заказано - выставлено» от сотворения мира. Ну да, как остатки считать, вы не хуже меня знаете
o оттестил бы Performance;
o в случае проблем, задумался бы сильнее. О снэпшотах, например

Понятно. Объемы такие, что без снэпшотов никак не обойтись :-(
...
Рейтинг: 0 / 0
19.12.2005, 13:05
    #33443987
DmitryS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
В принципе, можно сделать ещё кубики с агрегированными данными по месяцам и из них брать данные до текущего месяца для расчёта «от сотворения мира». По идее, менее трудоёмко, чем снэпшоты и по перфомансу должно дать результат. Хотя, надо пробовать, конечно.
...
Рейтинг: 0 / 0
19.12.2005, 13:08
    #33444003
DmitryS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
Кста, я не заметил, что у вас 2005. всё отвечал, исходя из 2k.
...
Рейтинг: 0 / 0
19.12.2005, 14:52
    #33444347
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
DmitrySКста, я не заметил, что у вас 2005. всё отвечал, исходя из 2k.

У меня и то и другое.
...
Рейтинг: 0 / 0
19.12.2005, 14:55
    #33444356
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
DmitrySВ принципе, можно сделать ещё кубики с агрегированными данными по месяцам и из них брать данные до текущего месяца для расчёта «от сотворения мира». По идее, менее трудоёмко, чем снэпшоты и по перфомансу должно дать результат. Хотя, надо пробовать, конечно.

Тут что то я не понял.
Что вы понимаете под кубиками с аггрегированными данными по месяцам?
На сколько и в чем это отличается от классических snapshot "отстатков"?
...
Рейтинг: 0 / 0
19.12.2005, 15:16
    #33444419
DmitryS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение.
Классические снэпшот остатков никто не отменял, и это, думаю, будет иметь лучшую скорость отклика.
Под "кубиками с аггрегированными данными по месяцам" я имел ввиду таблицу фактов под кубами с уровнем детализации месяц, а не день. Можно делать на основании этих таблиц не кубы, а партиции.
Для данной задачи нужны по дням данные только текущего месяца, как я понял.
Впрочем, не факт, что это много что даст - агрегаты -то Вы всё равно, наверняка считаете.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Сумма Невыполненых заказов, Сумма невыставленных к оплате счетов. Эффективное решение. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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