powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS добавляет "левые" таблицы в куб.
34 сообщений из 34, показаны все 2 страниц
MS AS добавляет "левые" таблицы в куб.
    #32715995
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простой (казалось бы) куб, элементарная звезда. Факты и ключи измерений в одной таблице, имена членов измерений - в других.
В кубе ровно одна таблица - факты. Куб создал, отпроцесировал, работает. Открываю через день дизайнер кубов - а там пяток таблиц (в которых имена членов измерений).
Аналогичная фигня была, когда автоматически добавлялись связи, и нельзя процессить - loop in schema.
Кто нибудь знает как отключить багофичу автоматического добавления таблиц в куб?
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32716090
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так никакие они не левые. Если из них берутся данные для измерений они самые что ни на есть правые.
А связи нужно самому просмотреть и откорректировать.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32716132
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Левыми я их назвал исключительно потому, что и без них куб работает. Несомненно они нужны для процесинга измерений, но в самом кубе - они нах надо. Работает как надо и без них.
Насчёт подкоректировать - не проблема если это надо делать один раз, но коректировать приходится при КАЖДОМ открытии куба. И это я ещё сегодня помню какие таблицы "левые", а послезавтра? или в понедельник :-(
Раздражает ещё то, что если просто в СМ поменять одну циферку, то процессить аж целый куб - а это время.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32716229
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опаньки... Кирдык-мирдык... О чем мы вааще говорим?
Если не военная тайна, то может скриин-шотик с дизайном...
Если измерения из таблицы фактов выдергиваются то понятно в дизайне доп.таблиц не будет и связей не будет.
А если измерения шаровые то таблицы и связи неизбежны как...
И изменение СМ не требует репроцесса, на то он и СМ, то биш "on fly".
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32716336
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если измерения из таблицы фактов выдергиваются то понятно в дизайне доп.таблиц не будет и связей не будет.
А если измерения шаровые то таблицы и связи неизбежны как...


Измерения шаровые, но их ключи вытягиваются из таблицы фактов

И изменение СМ не требует репроцесса, на то он и СМ, то биш "on fly".

Ну дык и прикол в том, что для того чтобы поменять хоть что-то в кубе (хотя бы СМ), его надо открыть дизайнером, потом удалить неожиданно появившиеся таблицы (а это уже изменение структуры), потом уже менять. И неудобство в том, что после удаления таблиц, которые MSAS сам добавил надо обязательно перепроцессить куб.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32724940
Андрей Никифоров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov

Измерения шаровые, но их ключи вытягиваются из таблицы фактов



Это как?
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725253
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Андрей Никифоров

В кубе только Shared Dimensions
У каждого члена измерений есть ключ и имя. Для каждого измерения есть отдельная таблица с ключами (PK) и именами членов. Есть таблица фактов, в которой ссылки (FK) на ключи измерений. Т.е. чтобы строить куб, таблицы измерений не нужны. А An.Man их дробавляет каждый раз при открытии куба
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725314
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 Андрей Никифоров

В кубе только Shared Dimensions
У каждого члена измерений есть ключ и имя. Для каждого измерения есть отдельная таблица с ключами (PK) и именами членов. Есть таблица фактов, в которой ссылки (FK) на ключи измерений. Т.е. чтобы строить куб, таблицы измерений не нужны. А An.Man их дробавляет каждый раз при открытии куба

У меня тоже схема куба оптимизирована как и у Вас, но подобного глюка не видел ни разу. Довольно загадочно.

Не затруднит лт вас выложить пару скринов из MSAS админ. до глюка и после,
а также скрин одного из измерений, которое добавляется автоматически.

Кстати, что за железо, OS, Service Packs?
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725444
Андрей Никифоров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov
В кубе только Shared Dimensions
У каждого члена измерений есть ключ и имя. Для каждого измерения есть отдельная таблица с ключами (PK) и именами членов. Есть таблица фактов, в которой ссылки (FK) на ключи измерений. Т.е. чтобы строить куб, таблицы измерений не нужны. А An.Man их дробавляет каждый раз при открытии куба

Простите, но я все равно не понял. Если вас не затруднит, распишите в терминах "таблица-запись" и с примерами данных.

По поводу добавления таблиц. Вы когда добавляли dimensions их делали как star, а не snowflake, не так ли? По идее "лишние" таблицы добавятся, если у вас snowflake.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725510
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока слова, картинки чуть позже
win2k server sp4, msas2k sp3
2хР4 1.7, RAID, 1Gb

Измерения, как оказалось и snowflake и star.
sory.
Но сути это не меняет - все ключи всех членов всех уровней есть в таблице фактов, которая (если это полезно) не таблица, а view на скл-сервере 2к.818
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725556
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работающий куб
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725561
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
измерение snowflake
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725565
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
куб (см. выше) сохранил, отпроцессировал, закрыл и открыл ещё раз
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725604
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При переходе на закладку Data выдаёт сообщение
The following tables are not joined to the table ...
Please create appropriate joins
Удаляю "левые" таблицы
Перехожу на закладку Data
Unable to display cube until it has been processed
Что, в принципе, логично т.к. изменился дизайн
Вот и получается что даже при изменении коэффициента в CM приходится ждать несколько минут пока процессится куб :-(
А потом (если не закрывать дизайнер куба), можно менять СM без ре-процессинга. Что опять же логично, ведь дизайн не меняется. Но стоит только закрыть дизайнер куба - см. первый пост :-(
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725717
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос - а что собссно мешает зафиксировать связи между таблицами?
И что там должно быть связано?
Если проблема что эта связка идет на кустомеров и регионы, то может регионы вынести в отд. view и завязаться из фактов на него?
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32725766
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связать, конечно, ничего не мешает, но зачем?
Во вторых, работает же без связей и "левых" таблиц
В третьих, зачем делать двойную работу: связывать в SQL, а потом ещё и в MS AS.
View был специально построен и джойны в нём сложнее чем =.
(учитываются временн Ы е изменения параметров)

Есть у меня ещё один куб - там джойн добавляется и это приводит к петле, которую MS AS отказывается принимать. Симптомы такие же, структура сложнее. Я думал решив эту проблему - решу и другую.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726229
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovСвязать, конечно, ничего не мешает, но зачем?
Во вторых, работает же без связей и "левых" таблиц
В третьих, зачем делать двойную работу: связывать в SQL, а потом ещё и в MS AS.
View был специально построен и джойны в нём сложнее чем =.
(учитываются временн Ы е изменения параметров)

Есть у меня ещё один куб - там джойн добавляется и это приводит к петле, которую MS AS отказывается принимать. Симптомы такие же, структура сложнее. Я думал решив эту проблему - решу и другую.

Мне, IMHO, сдается, что вы пытаетесь сами себя перехитрить.
Утверждения типа "работает же без связей и "левых" таблиц" нельзя считать серьезными в IT.

Попробую более аргументированно обосновать мои замечания.
Вы включили в FactTable не только ключи листовых уровней измерения, но и ключи последующих уровней. Спрашивается зачем? Ведь нелистовой уровень связан с записями FactTable не напрямую, а опосредовано, через таблицу листового уровня. Поэтому, мой вам совет. И то что CubeEditor законно ругается на Loop является вполне обоснованным.

Мой совет. Не пытайтеь играть против CubeEditor, играйте на его стороне. Не извращайте таблицу фактов. Это вам ничего не принесет кроме головной боли, что уже свершилось.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726303
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае, вы скорее всего правы, такая таблица фактов - наследие пивотов экселя.
Позже раскажу о похожем случае с джойном, когда будет время доходчиво объяснить предметную область и структуру куба.

Когда я задавал этот вопрос, я думал где-то в опциях есть птичка "Автоматически добавлять related tables"
Ну или в регистри что подкрутить... А если не сделали ещё такого, буду писать памятку на каждый куб что удалять в случае повторного открытия.
Всем откликнувшимся - большое спасибо.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726426
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя...
попробую продолжить тему: может я уже и БД проектирую не в нормальной форме? Хранилище - точно неправильно, ибо его нет и источником данных является view на SQL-сервере.
Вводная:
таблица продажи:
Продукт
Дата
Кол-во
Продукт - иерархия: ценовой сегмент-брэнд-сам продукт
Необычность в том, что брэнд иногда переходит из одного ценового сегмента в другой.
Предлагаю Вашему вниманию две реализации схемы БД - картинка
У меня - первая (верхняя)
backfireВы включили в FactTable не только ключи листовых уровней измерения, но и ключи последующих уровней. Спрашивается зачем?
Вы уже увидели зачем? Согласен приведённый мною ранее пример не столь илюстративен, но вот в этом случае без него не обойтись, т.к. ПродуктИД не определяет однозначно Сегмент. А вот пара (ПродуктИД, Дата) - определяет, причём условие джойна должно быть ДатаПродажи between ДатаС and ДатаПо.
MS AS не поддерживает такие виды джойнов. (Jurii, а когнос?)
Продукты естественно хочется анализировать по иерархии сегмент-брэнд-продукт. Причем один и тот же продукт может бы представлен как разные листья в дереве членов этого измерения.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726463
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ya bi na vashem meste ne vkluchal CenovoiSegment v Ierrarchiyu, a sdelal bi ego nezavisimim izmereniem, kotoroe soedinyaetsya napryamuyu s tablicei faktov. T.o. vi vsegda mozhete posmotret. A kakie brandi kogda i v kakom cenovom diapazone prodavalis.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726469
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A ya vam predlagayu vtoruyu schemu, kotoraya v MS AS otrabativaetsya na Ura.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726491
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK.
Есть такое понятие Share Of Segment
SOS = [сумма продаж продукта(или брэнда)] / [сумму продаж сегмента]
Как бы Вы сделали такой CМ если сегмент - отдельное измерение.
Я делаю это чрезвычайно просто
Код: plaintext
[Measures].[Sales] / (Ancestor([BrandsH].CurrentMember, [BrandsH].[Segment]), [Measures].[Sales])
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726585
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, клиент - OWC10 и настраивать отдельно фильтры по сегменту и продуктам неудобно.
Пример: пользователь выбрал сегмент prestige, в котором пяток брэндов, в соседнем поле фильтра (продукт) остались все продукты, в том числе и пара сотен брэндов сегментов pid-price и popular.
Или выбрав пару (сегмент, продукт) пользователь рискует получить пустой отчёт.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726817
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае это тоже элементарно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
WITH 
member [CalendarYear].[Column  1 ] as '([CalendarYear].[All].[2004],[Kunde].CURRENTMEMBER,[Measures].CURRENTMEMBER)*100.0/
([CalendarYear].[All].[2004],[Brand].[TotalMember],[Measures].CURRENTMEMBER)', SOLVE_ORDER= 1 
SET [PeriodSet0] AS ' {[CalendarYear].[All].[2004], [CalendarYear].[All].[2004]}'
SET [PeriodSet1] AS 'FILTER([PeriodSet0], COUNT(INTERSECT(EXCEPT(ASCENDANTS([PeriodSet0].CURRENT.Item(0)),{[PeriodSet0].CURRENT.Item(0)}),[PeriodSet0]))=0)'

SET [RowSet0] AS '{[Brand].[All].children}'
SET [RowSet1] AS 'EXTRACT(NonEmptyCrossjoin([RowSet0],{[Measures].[SalesCount]}, [PeriodSet1], 2),[Brand])'
SET [RowSet2] AS 'topcount([RowSet1],100)'
SET [TotalSet] AS '[RowSet2]'

member [Brand].[TotalMember] AS '[Brand].[All]'
SELECT
{[CalendarYear].[All].[ 2004 ],[CalendarYear].[Column  1 ]} ON COLUMNS,
 CROSSJOIN({[Brand].[All],[RowSet2]},{[Measures].[Sales]})

ON ROWS
FROM SalesCube
WHERE ([PriceSegment].[All].[SegmentX])
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726822
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovКроме того, клиент - OWC10 и настраивать отдельно фильтры по сегменту и продуктам неудобно.
Пример: пользователь выбрал сегмент prestige, в котором пяток брэндов, в соседнем поле фильтра (продукт) остались все продукты, в том числе и пара сотен брэндов сегментов pid-price и popular.
Или выбрав пару (сегмент, продукт) пользователь рискует получить пустой отчёт.

Мне проблемы OWC известны - эта поделка годится только для элементарных запросиков на умеренных размерах измерений, т.к. MDX она строит отвратительнейший (такое впечатление, что команда MS AS зажала для OWC команды, набранной наверное из студентов, сведения о привратностях поведения MS AS).
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726880
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov:

ПродуктИД не определяет однозначно Сегмент. А вот пара (ПродуктИД, Дата) - определяет, причём условие джойна должно быть ДатаПродажи between ДатаС and ДатаПо.
MS AS не поддерживает такие виды джойнов. (Jurii, а когнос?)


Я бы назвал эту задачу типичной и совсем не сложной, в Когносе она решается с помощью создания джойна по первой Вашей схеме и плюс к этому накладывается фильтр на запрос, что дата продажи между двумя Вашими другими датами. Фильтры у Когнос - это один из элементов управления формированием запроса для проектирования куба (кроме фильтров есть логические условия, ключевые слова, функции и т.п.).
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32726920
Андрей Никифоров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovПредлагаю Вашему вниманию две реализации схемы БД


Если у вас brand не используется нигде больше как отдельный dimension, то имеет смысл включить его в продукты и получите чистую star (схема 2b :-))
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729618
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire: а каким Вы клиентом пользуетесь?
Ваш способ вычисления SOS сложнее в разы, кроме того (на сколько я понял), он возвращает результат только по сегменту Х. Надо сегменты-брэнды-продукты в строках, даты в колонках, SOS - в ячейках.

2 Jurii
Мне абсолютно всё равно как Вы назовёте мою задачу и похоже вы её не поняли. Мне не нужен фильр "дата продажи между двумя Вашими другими датами". Схема1: С помощью таблицы "Брэнды в сегментах" я абсолютно точно знаю в каком сегменте находится каждый брэнд в определённый момент времени. SQL запрос должен выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ...
FROM Сегменты INNER JOIN Брэнды INNER JOIN [Брэнды В Сегментах] ON
Брэнды.БрэндИД = [Брэнды В Сегментах].БрэндИД INNER JOIN Продукты ON
Брэнды.БрэндИД = Продукты.БрэндИД) INNER JOIN Продажи ON
Продукты.ПродуктИД = Продажи.ПродуктИД
AND Продажи.Дата between [Брэнды В Сегментах].ДатаС AND [Брэнды В Сегментах].ДатаПо
ON Сегменты.СегментИД = [Брэнды В Сегментах].СегментИД

Видите, здесь даты не конкретные, а из таблицы истории перехода брэндов между сегментами.
Код: plaintext
AND Продажи.Дата between [Брэнды В Сегментах].ДатаС AND [Брэнды В Сегментах].ДатаПо
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729690
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire: а каким Вы клиентом пользуетесь?

Клиент свой
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32729721
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire: Ваш способ вычисления SOS сложнее в разы, кроме того (на сколько я понял), он возвращает результат только по сегменту Х.

Я решаю другую задачу. Если у вас около 50 KPI, то писать для каждого несколтко CM для расчета "доли", running total и т.п. - муторное заняте. Поэтому я делаю "долю" не на Measures, а на другом измерении, в приведенном примере на временной оси так как она выбрана для столбцов.

В приведенном MDX много других фишек, которае непосредственно для вычтсления доли не нужны, но необходимы для других дел, но это отдельная песня.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730636
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire
если не секрет сколько человеко-времени этот клиент разрабатывался и на чём он основан?

Про MDX я понял. Показатель у нас пока один - продажи. Поэтому пару СМ создать не лень :-)
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730803
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry Biryukov:

Мне абсолютно всё равно как Вы назовёте мою задачу и похоже вы её не поняли.
Мне не нужен фильр "дата продажи между двумя Вашими другими датами"
Видите, здесь даты не конкретные, а из таблицы истории перехода брэндов между сегментами.


Я очень хорошо понял Вашу задачу, и не предлагал Вам использовать фиксированные даты. Фильтр о котором я говорил работает в пределах каждой строки, где есть 3 поля типа Дата (ДатаПродажи, ДатаС и ДатаПо), и этот фильтр отсеивает записи где первая дата не попадает в диапазон между двумя другими.
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32730873
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov2 backfire
если не секрет сколько человеко-времени этот клиент разрабатывался и на чём он основан?

Про MDX я понял. Показатель у нас пока один - продажи. Поэтому пару СМ создать не лень :-)

1,5-2 человекогода, adomd+c#+VlexGrid
...
Рейтинг: 0 / 0
MS AS добавляет "левые" таблицы в куб.
    #32731653
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо за потраченное время и толковые ответы
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS добавляет "левые" таблицы в куб.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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