powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / what-if анализ и OLAP
22 сообщений из 72, страница 3 из 3
what-if анализ и OLAP
    #32970361
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Иванов2backfire

обычная система планирования состоит из взаимосвязанных бюджетов.
Иными словами, мало чтобы поменялся один куб, нужно чтобы изменились связанные кубы (бюджеты).


Владимир, Вы бы не могли более подробнее изложить это с технической точки зрения, дабы наш разговор велся на одном языке.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970362
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireя имелл ввиду изменеие таблицы фактов (одной из таблиц фактов)таким образом, что при полном репроцессинге куба (раздела куба) данные в кубе не изменялись.
Если изменение удалило один из атрибутов на уровне гранулярности measure group или удалило метрику - то раздел WB может продолжать существовать без изменений (хотя в нем тоже можно удалить тот же самый атрибут, но навеное проще поменять bindings). Если же изменение добавило новый атрибут на уровне гранулярности, то как в основной fact table, так и в WB надо сделать mapping существующих записей на какое-то значение этого атрибута. Дибавление атрибутов выше уровня гранулярности вообще никак не отражается на WB.
Какие еще изменения Вы имели в виду ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970367
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfireя имелл ввиду изменеие таблицы фактов (одной из таблиц фактов)таким образом, что при полном репроцессинге куба (раздела куба) данные в кубе не изменялись.
Если изменение удалило один из атрибутов на уровне гранулярности measure group или удалило метрику - то раздел WB может продолжать существовать без изменений (хотя в нем тоже можно удалить тот же самый атрибут, но навеное проще поменять bindings). Если же изменение добавило новый атрибут на уровне гранулярности, то как в основной fact table, так и в WB надо сделать mapping существующих записей на какое-то значение этого атрибута. Дибавление атрибутов выше уровня гранулярности вообще никак не отражается на WB.
Какие еще изменения Вы имели в виду ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Моша, боюсь, что мы говорим с вами на разных языках. Я совсем не говорил о изменении схемы таблицы фактов/куба.
Словом "изменение" я называл желаемый INSERT/UPDATE в таблицу фактов в момент когда сливается WB раздела c основным разделом.

Куб до включения WB = Процессинг(ТаблицаФактов)
....
Куб после Слияния WB и выключения WB != Процессинг(ТаблицаФактов)

Так вот мне надо равенство и во втором случае.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970368
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да похоже мы говорим на разных языках. Что такое "сливание WB" ? Если имеется в виду "partition merging", то какая разница был ли этот partition для writeback или нет ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970371
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaДа похоже мы говорим на разных языках. Что такое "сливание WB" ? Если имеется в виду "partition merging", то какая разница был ли этот partition для writeback или нет ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

"Сливание WB" это: конвертация ROLAP раздела в MOLAP и слияние этого раздела с основным разделом куба.

Опустимся на землю и обратим взоры на AS StandardEdition. В нем ситуация стоит как нельзя остро:

- Разделы там плодить нельзя. Значит как только однозначно покончить c WB.
Что при этом происходит. WB раздел из ROLAP конвертируется в MOLAP, сливается с основной. И на весь куб вешается табличка "закрыто", то бишь readonly.

В чем подоплека моих пожеланий к WB функционалу.

Не секрет что со временем WB ROLAP раздел пухнет так как туда идет только insert. Индексы на него тоже наложены щедро, что не лучшим образом отражается на производительности SQL сервера при записи.
Кроме того WB таблица сделана таким образом, что в ней присутствуют столбцы для нелистовых уровней измерений (кому они там нужны? это же раздувает индексы) а также поля для уровней виртуальных измерений (а эти что там потеряли?). В итоге длина записи раздута в несколько крат, чем того требует реальная практика. Начем экономия на JOIN c таблицами измерений? Могу доказать, что как раз с JOIN работает быстрее.

Хорошо, вы можете доказать, что широкая (ключи всех уровней всех измерений куба)таблица с точки зрения доступа на чтение лучше чем узкая (только ключи листовых уровней невиртуальных измерений) с точки зрения экономии на JOIN. Но пойдем дальше.

После 10 кратного введения данных в ROOT куба имеем в WRITEBACK таблице в 10 раз больше записей чем в таблице фактов. Где в этот момент будет находится производительность куба на чтение/запись наверное упоминать не стоит.

Вопрос. Что же делать, чтобы выбраться из этой ямы в производительности?
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970374
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2backfire

А для каких целей вы используете WB?
Я думаю для ответа на этот вопрос не требуется технических пояснений.

Я сейчас не применяю WB в решениях по планированию, т.к. обычная система планирования состоит из взаимосвязанных бюджетов.
Иными словами, мало чтобы поменялся один куб, нужно чтобы изменились связанные кубы (бюджеты).
Это можно конечно делать оперируя с WB таблицей и формируя на ее основе другие DWH. Но мне показалось такое решение не самым эффективным.

Поясню на примере. Например, вам нужно построить бюджет Доходов и Расходов (БДР). Данный бюджет обычно состоит из подчиненных типа "Закупки", "Продажи". Структура подчиненных бюджетов может отличаться от БДР, но общие итоговые цифры в БДР передаются.
Можно реализовать эту классическую задачу так.
Сотрудники через WB вводят бюджеты "Закупки" и "Продажи", затем на основе сформированных данных в SQL-таблицах WB строится DWH для БДР.
По методике все похоже на Cognos Planning и Hyperion Pillar, только механизмов настройки нет, все вручную.

PS. Мне не кажется хорошей идея класть WB-таблицу в факты. Во многих простых системах DWH формируют прямо на таблице OLTP-системы без отстойника. Можно критиковать данный метод, но он часто используется.
Если WB будет писать в факты, то так можно разрушить OLTP-систему.
В большом решении будет сходная проблема. Там обычно факты (т.е. фактические данные) собирает команда девелоперов-итеграторов, а планы делает другая группа. Наличие записи WB в факты разрушит изоляцию между модулями групп. Да и потом отлавливать что тут план, а что тут факт совсем не хочется.
Решение, где OLAP-щикам отдается DWH в read-only более "инкапсулированное" и защищенное от багов.

Другой вопрос, неплохобы Microsoft стандартизовать WB-таблицы и выпустить White Paper о построении SQL-запросов позволяющих получить таблицу фактов с учетом WB.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970378
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2backfire
Нужно понизить fillfactor примерно до 30% и желательно индексы пересоздать в отдельной filegroup на другом HDD (массиве).
Производительность скорее всего придет в норму, но объем таблиц будет велик.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970380
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Иванов2backfire
Нужно понизить fillfactor примерно до 30% и желательно индексы пересоздать в отдельной filegroup на другом HDD (массиве).
Производительность скорее всего придет в норму, но объем таблиц будет велик.

Несомненно, в какой то степени это поможет, но не думаю что кардинально.

Что вы подразумеваете под нормой?
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970381
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир ИвановПоясню на примере. Например, вам нужно построить бюджет Доходов и Расходов (БДР). Данный бюджет обычно состоит из подчиненных типа "Закупки", "Продажи". Структура подчиненных бюджетов может отличаться от БДР, но общие итоговые цифры в БДР передаются.
Можно реализовать эту классическую задачу так.
Сотрудники через WB вводят бюджеты "Закупки" и "Продажи", затем на основе сформированных данных в SQL-таблицах WB строится DWH для БДР.


Ваше пояснение прям в точку.


Владимир ИвановPS. Мне не кажется хорошей идея класть WB-таблицу в факты. Во многих простых системах DWH формируют прямо на таблице OLTP-системы без отстойника. Можно критиковать данный метод, но он часто используется.
Если WB будет писать в факты, то так можно разрушить OLTP-систему.
В большом решении будет сходная проблема. Там обычно факты (т.е. фактические данные) собирает команда девелоперов-итеграторов, а планы делает другая группа. Наличие записи WB в факты разрушит изоляцию между модулями групп. Да и потом отлавливать что тут план, а что тут факт совсем не хочется.
Решение, где OLAP-щикам отдается DWH в read-only более "инкапсулированное" и защищенное от багов.

Господа, никто не собирается ломать OLTP или DWH. Только не надо держать нас за детей малых, которым спички не игрушка. Существует и без этого 1000+1 возможность наломать дров.

авторДругой вопрос, неплохобы Microsoft стандартизовать WB-таблицы и выпустить White Paper о построении SQL-запросов позволяющих получить таблицу фактов с учетом WB.

Ну зачем так мелко. WhitePaper. Лучше уж сразу вызов в DSO/AMO.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970392
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несомненно, в какой то степени это поможет, но не думаю что кардинально.
Что вы подразумеваете под нормой?

Я считаю нормой в данном случае если insert практически перестает зависеть от числа строк в таблице. При fillfactor около 20% это фактически так и есть, но мне кажется тут лучше 30%.
Потом вы еще можете сделать компрессию WB-таблицы за счет объединения повторных записей. Сразу скажу - не пробовал.
Мне на самом деле удалось избежать больших WB-таблиц, т.к. я создаю обычно для этого маленькие кубики и затем их интегрирую с большими.
Потомо для сложных задач планирования типа вычисления плановой себестоимости мне все равно от WB тольку мало, там я делаю без него.

Ваше пояснение прям в точку
И? Так это ваша задача, так я понимаю?

Лучше уж сразу вызов в DSO/AMO.

2Моша. К слову хорошая мысль. Хотя бы я начал с White Paper типа "Как добавить WB-факты в вашу таблицу фактов".
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970396
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Ивановсебестоимости мне все равно от WB тольку мало, там я делаю без него.


Более года назад я подымал тему WB, где я подымал на суд общественности вариант решения записи в ROLAP куб без bcgjkmpjdfzby WB функционала.

Я и поныне не использую WB ни в одном из пошедших в серию решений под AS2K. Что будет в Юконе - посмотрим.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970477
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу поддержать backfire - необходим WB не только в специальную таблицу, но и напрямую в таблицу фактов

backfireГоспода, никто не собирается ломать OLTP или DWH. Только не надо держать нас за детей малых, которым спички не игрушка. Существует и без этого 1000+1 возможность наломать дров.


Я вижу проблемы WB еще и в необходимости некой бизнес-логики. Именно без такой логики можно "наломать дров". Отчасти проблема решается через введение разрешений на доступ к тем или иным ячейкам.
Но как эти разрешения обработает UPDATE CUBE при расчете весовых коэффицентов ???

Можно конечно эту бизнес-логику реализовать в клиентском приложении, однако уверен что если бы ее сервер поддерживал - было бы гораздо лучше


Владислав Беляев
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970570
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2backfire & Беляев:

Т.е. я правильно Вас понимаю, что все Ваши проблемы из за того что Вы не пользуетесь partitions потому что у Вас не Enterprise Edition, а Standard Edition. Тогда - извините. Это уже не проблема технологии а проблема чисто финансовая, и как тут помочь кроме как дать денег я не знаю :) Впрочем Владислав уже обрисовал как можно вывернуться - либо написать код который сам переливает записи из WB в fact table, либо определить fact table как view который обьединяет основную таблицу и таблицу от WB - вариантов много. Конечно они не такие чистые как multiple partitions, но тоже возможны.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970612
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Moshaлибо написать код который сам переливает записи из WB в fact table, либо определить fact table как view который обьединяет основную таблицу и таблицу от WB

И то и другое писано уже. Хотелось out of box.


О варианте версии. Не в деньгах Дело, а том, что если в SQL двигателе фичи поделено чесно, то в AS многие вещи вынесены в Enterprise Edition, хотя отношения к "Enterprise"-ности решения не имеют.
Почему то никому в голову не приходит делить С# и .NetFramework на Standard и Enterprise.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32970633
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire - какие на Ваш взгляд features Analysis Services должны быть в Enterprise Edition если не partitions ? Сравнение с .NET framework тут не совсем уместно, ибо он бесплатный.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32971052
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, давайте все-таки смотреть в корень проблемы. У backfire проблема потому что он не пользуется стандартным WB, а пытается его обойти через ROLAP. И я не пользуюсь стандартным WB по причинам
1 Медленно
2 Нет обработки бизнес правил
3 Проблемы при изменении структуры куба
4 Изменения вносятся во writebacktable а не в таблицу фактов

Теперь как я считаю должно быть

1 В Юконе, по крайней мере с weighted allocation все должно быть хорошо. equal allocation для больших объемов данных..., считаю практически нет таких задач
2 Должны отрабатываться все связи между dimensions, т.е. если в AS2K есть dimension и virtual dimension, то при update cube между ними не должно быть crossjoin, в идеале и значение virtual dimension вообще не должно во writeback table попадать. Кроме того есть и другие связи между dimensions (в AS2K5 их можно прописать) - они тоже должны в "UPDATE CUBE" обрабатываться.
В AS2K5 есть скрипты, надеюсь что их можно использовать для описания сложного Update. Еще проблема с UpdateCube - это Non leaf hidden data и custom rollup.

Я сейчас выкручиваюсь так: создаю set, где прописаны все возможные (разрешенные) взаимосвязи между dimensions, потом делаю Extract dimension из Intersect этого сета c уже выбранными members на других dimensions и получаю доступные для выбора members этого dimension. Значение с интерфейса передаю в sql stored procedure, где собственно и прописана логика update факт table.

Год назад backfire говорил, что при таком варианте update есть минус в том что не задействуется логика update cube. Так вот ее можно задействовать, правда с потерей производительности. Делается "Update Cube", затем NECJ из Descendants members of tuple members и эти значения ложаться в факт table

3 Надо чтобы WB table не изменялась (требуется ее пересоздание) при добавлении уровня в dimension или при добавлении virtual dimension. Вообще структура WB table в этом случае была бы гораздо ближе к таблице фактов (не содержались бы промежуточные уровни)

4 Опционально, надо чтобы изменения можно было вносить непосредственно в таблицу фактов без Writeback table

Без решения этих проблем приходится исхитряться, тогда и возникают проблемы наподобии описанной backfire

Заметьте, производительность UPDATE CUBE AS2K (см 2) во многом еще тормозится созданием совсем ненужных crossjoin, c virtual dimension например.

Владислав Беляев
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32971280
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Моша.
Я возможно не догоняю ваше обсуждение.
Какое альтернативное решение для MS AS Ent Edition вы обсуждаете?
Для меня это актуально, т.к. большинство моих крупных решений в крупных корпорациях, а там $10K экономить смешно, сервер в 5 раз дороже.

Так что там можно с партициями сделать для WB?
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32972380
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Беляев1 В Юконе, по крайней мере с weighted allocation все должно быть хорошо. equal allocation для больших объемов данных..., считаю практически нет таких задач
Я бы предпочел чтобы Вы не верили мне на слово, а сами бы проверили это на Ваших данных. И если производительность Вас не устраивает - откройте баг на betaplace.

Беляев2 Должны отрабатываться все связи между dimensions, т.е. если в AS2K есть dimension и virtual dimension, то при update cube между ними не должно быть crossjoin, в идеале и значение virtual dimension вообще не должно во writeback table попадать.
А разве сейчас не так ? Виртуальных измерений нет в writeback table, и они не учитываются при аллокации в UPDATE CUBE.

БеляевЕще проблема с UpdateCube - это Non leaf hidden data и custom rollup.
Можно пожалуйста поподробнее. Non Leaf Hidden Data - решает проблему ввода данных на уровни выше гранулярности таблицы фактов. Какую проблему может это создать ? На мой взгляд это как раз проблему решает. И что особенного в custom rollups ? То что алгоритм аллокации не делает то что Владимир Иванов называет "обратные проводки" ?

Беляев3 Надо чтобы WB table не изменялась (требуется ее пересоздание) при добавлении уровня в dimension или при добавлении virtual dimension. Вообще структура WB table в этом случае была бы гораздо ближе к таблице фактов (не содержались бы промежуточные уровни)
Смотри мои комментарии про изменение схемы выше (в ответе backfire).

Беляев4 Опционально, надо чтобы изменения можно было вносить непосредственно в таблицу фактов без Writeback table
А с этим я не согласен в силу очень многих причин. Именно тут и надо применять partitions.

Владимир ИвановКакое альтернативное решение для MS AS Ent Edition вы обсуждаете?
Я имел в виду проблему когда WB table сильно вырастает - тогда просто создается новая partition, которая направляется на эту таблицу, и можно ей делать MOLAP processing.


Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32972404
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что алгоритм аллокации не делает то что Владимир Иванов называет "обратные проводки" ?
Я говорю о "бюжетных проводках". Это просто другая модель what-if.
Там моделирование делается на уровне DWH, а не OLAP.
В системах на "бюджетных проводках" принята стандартизация фактов в терминах проводки для моделирования финасовых задач.
В частности аллокация делается за счет создания новых фактов через специальные алгоритмы типа "ключи распределения" как в Microsoft Axapta.
Отметим, что там аллокации существенно сложнее. Например, на основе инвойсов по закупке автоматически аллокируются проводки отражающие ордера по платежам. Это все равно что WB умел править не только свой куб, но и другой по запрограммированному пользователем алгоритму.
Реальные задачи этого требуют.

Кроме этого DWH на бюджетных проводках позволяет сравнительно просто сделать OLTP-приложение с workflow для ввода плановых данных.

Основная сложность моделирования на бюджетных проводках это разработка специфических алгоритмов аллокации, таких как разноска косвенных затрат, калькуляция себестоимости, оптизация платежей, прогнозы продаж и т.д.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32972495
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaА разве сейчас не так ? Виртуальных измерений нет в writeback table, и они не учитываются при аллокации в UPDATE CUBE.

А зачем включены туда нелистовые уровени регулярных измерений и физические измерения не связанные напрямую с таблицей фактов?
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32972502
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Moshabackfire - какие на Ваш взгляд features Analysis Services должны быть в Enterprise Edition если не partitions ? Сравнение с .NET framework тут не совсем уместно, ибо он бесплатный.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Я думаю, что нижеперечисленный функционал AS2K достоин поддержки и в Standard Edition

Calculated Cells
Writeback to Dimensions
Very Large Dimension Support

А с AS2K5 вообще сплошные непонятки



-За что забрали из стандартной версии Custom Rollups?
-Что попадает под Advanced Measures and Dimensions?
и т.п.
...
Рейтинг: 0 / 0
what-if анализ и OLAP
    #32972560
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire - Все что Вы просили кроме writeback to dimensions - сделано в Standard Edition. Custom Rollups - это опечатка. Я об этом писал несколько дней назад: http://sqljunkies.com/WebLog/mosha/archive/2005/03/19/9223.aspx

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
22 сообщений из 72, страница 3 из 3
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / what-if анализ и OLAP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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