Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Владимир Иванов2backfire обычная система планирования состоит из взаимосвязанных бюджетов. Иными словами, мало чтобы поменялся один куб, нужно чтобы изменились связанные кубы (бюджеты). Владимир, Вы бы не могли более подробнее изложить это с технической точки зрения, дабы наш разговор велся на одном языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 00:46 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
backfireя имелл ввиду изменеие таблицы фактов (одной из таблиц фактов)таким образом, что при полном репроцессинге куба (раздела куба) данные в кубе не изменялись. Если изменение удалило один из атрибутов на уровне гранулярности measure group или удалило метрику - то раздел WB может продолжать существовать без изменений (хотя в нем тоже можно удалить тот же самый атрибут, но навеное проще поменять bindings). Если же изменение добавило новый атрибут на уровне гранулярности, то как в основной fact table, так и в WB надо сделать mapping существующих записей на какое-то значение этого атрибута. Дибавление атрибутов выше уровня гранулярности вообще никак не отражается на WB. Какие еще изменения Вы имели в виду ? Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 00:52 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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 != Процессинг(ТаблицаФактов) Так вот мне надо равенство и во втором случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 01:19 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Да похоже мы говорим на разных языках. Что такое "сливание WB" ? Если имеется в виду "partition merging", то какая разница был ли этот partition для writeback или нет ? Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 01:31 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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 раз больше записей чем в таблице фактов. Где в этот момент будет находится производительность куба на чтение/запись наверное упоминать не стоит. Вопрос. Что же делать, чтобы выбраться из этой ямы в производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 02:13 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 02:23 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
2backfire Нужно понизить fillfactor примерно до 30% и желательно индексы пересоздать в отдельной filegroup на другом HDD (массиве). Производительность скорее всего придет в норму, но объем таблиц будет велик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 02:30 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Владимир Иванов2backfire Нужно понизить fillfactor примерно до 30% и желательно индексы пересоздать в отдельной filegroup на другом HDD (массиве). Производительность скорее всего придет в норму, но объем таблиц будет велик. Несомненно, в какой то степени это поможет, но не думаю что кардинально. Что вы подразумеваете под нормой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 02:37 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Владимир ИвановПоясню на примере. Например, вам нужно построить бюджет Доходов и Расходов (БДР). Данный бюджет обычно состоит из подчиненных типа "Закупки", "Продажи". Структура подчиненных бюджетов может отличаться от БДР, но общие итоговые цифры в БДР передаются. Можно реализовать эту классическую задачу так. Сотрудники через 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 02:40 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Несомненно, в какой то степени это поможет, но не думаю что кардинально. Что вы подразумеваете под нормой? Я считаю нормой в данном случае если insert практически перестает зависеть от числа строк в таблице. При fillfactor около 20% это фактически так и есть, но мне кажется тут лучше 30%. Потом вы еще можете сделать компрессию WB-таблицы за счет объединения повторных записей. Сразу скажу - не пробовал. Мне на самом деле удалось избежать больших WB-таблиц, т.к. я создаю обычно для этого маленькие кубики и затем их интегрирую с большими. Потомо для сложных задач планирования типа вычисления плановой себестоимости мне все равно от WB тольку мало, там я делаю без него. Ваше пояснение прям в точку И? Так это ваша задача, так я понимаю? Лучше уж сразу вызов в DSO/AMO. 2Моша. К слову хорошая мысль. Хотя бы я начал с White Paper типа "Как добавить WB-факты в вашу таблицу фактов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 03:58 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Владимир Ивановсебестоимости мне все равно от WB тольку мало, там я делаю без него. Более года назад я подымал тему WB, где я подымал на суд общественности вариант решения записи в ROLAP куб без bcgjkmpjdfzby WB функционала. Я и поныне не использую WB ни в одном из пошедших в серию решений под AS2K. Что будет в Юконе - посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 04:30 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Хочу поддержать backfire - необходим WB не только в специальную таблицу, но и напрямую в таблицу фактов backfireГоспода, никто не собирается ломать OLTP или DWH. Только не надо держать нас за детей малых, которым спички не игрушка. Существует и без этого 1000+1 возможность наломать дров. Я вижу проблемы WB еще и в необходимости некой бизнес-логики. Именно без такой логики можно "наломать дров". Отчасти проблема решается через введение разрешений на доступ к тем или иным ячейкам. Но как эти разрешения обработает UPDATE CUBE при расчете весовых коэффицентов ??? Можно конечно эту бизнес-логику реализовать в клиентском приложении, однако уверен что если бы ее сервер поддерживал - было бы гораздо лучше Владислав Беляев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 08:33 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 09:57 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Moshaлибо написать код который сам переливает записи из WB в fact table, либо определить fact table как view который обьединяет основную таблицу и таблицу от WB И то и другое писано уже. Хотелось out of box. О варианте версии. Не в деньгах Дело, а том, что если в SQL двигателе фичи поделено чесно, то в AS многие вещи вынесены в Enterprise Edition, хотя отношения к "Enterprise"-ности решения не имеют. Почему то никому в голову не приходит делить С# и .NetFramework на Standard и Enterprise. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 10:21 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
backfire - какие на Ваш взгляд features Analysis Services должны быть в Enterprise Edition если не partitions ? Сравнение с .NET framework тут не совсем уместно, ибо он бесплатный. Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 10:29 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Коллеги, давайте все-таки смотреть в корень проблемы. У 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 например. Владислав Беляев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 12:41 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
2Моша. Я возможно не догоняю ваше обсуждение. Какое альтернативное решение для MS AS Ent Edition вы обсуждаете? Для меня это актуально, т.к. большинство моих крупных решений в крупных корпорациях, а там $10K экономить смешно, сервер в 5 раз дороже. Так что там можно с партициями сделать для WB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 13:57 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
Беляев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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 21:28 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
То что алгоритм аллокации не делает то что Владимир Иванов называет "обратные проводки" ? Я говорю о "бюжетных проводках". Это просто другая модель what-if. Там моделирование делается на уровне DWH, а не OLAP. В системах на "бюджетных проводках" принята стандартизация фактов в терминах проводки для моделирования финасовых задач. В частности аллокация делается за счет создания новых фактов через специальные алгоритмы типа "ключи распределения" как в Microsoft Axapta. Отметим, что там аллокации существенно сложнее. Например, на основе инвойсов по закупке автоматически аллокируются проводки отражающие ордера по платежам. Это все равно что WB умел править не только свой куб, но и другой по запрограммированному пользователем алгоритму. Реальные задачи этого требуют. Кроме этого DWH на бюджетных проводках позволяет сравнительно просто сделать OLTP-приложение с workflow для ввода плановых данных. Основная сложность моделирования на бюджетных проводках это разработка специфических алгоритмов аллокации, таких как разноска косвенных затрат, калькуляция себестоимости, оптизация платежей, прогнозы продаж и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 21:58 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
MoshaА разве сейчас не так ? Виртуальных измерений нет в writeback table, и они не учитываются при аллокации в UPDATE CUBE. А зачем включены туда нелистовые уровени регулярных измерений и физические измерения не связанные напрямую с таблицей фактов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 23:56 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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? и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 00:00 |
|
||
|
what-if анализ и OLAP
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 01:38 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32970362&tid=1871653]: |
0ms |
get settings: |
8ms |
get forum list: |
24ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 412ms |

| 0 / 0 |
