powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Связывание мер
25 сообщений из 26, страница 1 из 2
Связывание мер
    #39381794
Здравствуйте!

Подскажите как правильно связать меры 3-х и более таблиц, какие виды связи правильный использовать?

Таблица 1
ID_1 Value_11 12 13 1

Таблица 2
ID_2 FK_ID_1 Value_21 1 12 1 13 2 1

Таблица 3
ID_3 FK_ID_1 Value_31 2 12 2 1

Сводная таблица ключей
ID_0 ID_1 ID_2 ID_31 1 1 02 1 2 03 2 3 14 2 3 23 0 0 0

Сейчас, кроме как использования сводной таблицы, куда собираются все уникальные значения 3 таблиц, с собственным идентификатором и данные которой используются как обычное измерение не придумал.
Далее через ссылочные измерения соединяю все. Но это какой-то тупиковый ход, т.к. таблица 1 уже является неким ключом для связывания 2 и 3 таблиц. К тому же кол-во записей в сводной может оказать очень большим. Но тут постоянно возникают ошибки про выключенную иерархию атрибута.
Мне кажется, что ключевым измерением должен быть идентификатор 1 таблицы и через него дальше как-то вязаться.
...
Рейтинг: 0 / 0
Связывание мер
    #39382725
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

Как связаны таблица 1,2,3 между собой? ID_1 = ID_2 = ID_3?
...
Рейтинг: 0 / 0
Связывание мер
    #39382877
SkyTod,

Таблицы 1 и 2 через FK_ID_1
Таблицы 1 и 3 через FK_ID_1
Таблицы 2 и 3 прямой связи не имеют. Максимум через FK_ID_1.
...
Рейтинг: 0 / 0
Связывание мер
    #39383395
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

То есть связь Table1.ID_1 = Table2.FK_ID_1 = Table3.FK_ID_1 ?

Создавайте измерение на основе Table1, а потом вяжите все три таблицы к этому измерению.
...
Рейтинг: 0 / 0
Связывание мер
    #39383412
SkyTod,

А как остальные измерения таблицы 2 (поля в примере не показаны), вязать, чтобы через измерение таблицы 2 увидеть данные таблицы 1 или 3?
...
Рейтинг: 0 / 0
Связывание мер
    #39383419
SkyTod,

Допустим структуру таблицы 2 дополнил колонкой Проекты

ID_2 FK_ID_1 Value_2 Проекты1 1 1 Проект 12 1 1 Проект 13 2 1 Проект 2
...
Рейтинг: 0 / 0
Связывание мер
    #39383481
SkyTod,

1. Создал измерение 1 с ключевым атрибутом по полю ID_1 таблицы 1.
2. Соединил все таблицы по данному измерению.
3. Создал измерение 2 с ключевым атрибутом по полю ID_2 и атрибутом FK_ID_1 таблицы 2.
4. Соединил таблицу 2 с измерением 2 по полю ID_2, а таблицу 1 через ссылочное измерение 1 с таблицей 1 по полю FK_ID_1 = ID_1.
5. Создал измерение 3 с ключевым атрибутом Проекты таблицы 2. Соединил его с таблицей 2 по полю Проекты.

А как измерение 3 соединить с таблицей 1?
Надо в измерение 3 добавлять атрибут FK_ID_1 и затем вязать с измерением 1 по полю FK_ID_1 = ID_1?
Или надо в измерение 3 добавлять атрибут ID_2 и затем вязать с измерением 2 по полю ID_2 = ID_2?
В обоих случаях ключевой атрибут Проекты не будет уникальным и просто не сможет сделать процессинг.
...
Рейтинг: 0 / 0
Связывание мер
    #39383502
SkyTod,

Если же в измерение 2 добавить атрибут Проекты, а в измерении 3 оставить только ключевой атрибут Проекты и затем попробовать соединить измерения, то получаю ошибку "Для промежуточного атрибута гранулярности Проекты измерения 2 не включена иерархия атрибута.". Хотя на самом деле она включена и в измерении и в измерении куба.
...
Рейтинг: 0 / 0
Связывание мер
    #39383669
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец ЮрийSkyTod,

А как остальные измерения таблицы 2 (поля в примере не показаны), вязать, чтобы через измерение таблицы 2 увидеть данные таблицы 1 или 3?Вы не слышали обо many-to-many или в чем проблема?
...
Рейтинг: 0 / 0
Связывание мер
    #39383812
SkyTod,

Про многие ко многим знаю. Но этот вариант для меры из таблицы 1 не отображает запись 3, т.к. на нее нет ссылки в таблице 2.
...
Рейтинг: 0 / 0
Связывание мер
    #39383935
А в моем случае для 3 строки 1 таблицы все-равно надо вывести значение, при этом в измерении Проекты должно быть значение "Нет данных".
В само измерение Проекты я добавил такое значение.
...
Рейтинг: 0 / 0
Связывание мер
    #39384221
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

3 строки 1 таблицы? Это что? Table1.Value_1?
...
Рейтинг: 0 / 0
Связывание мер
    #39384263
SkyTod,

3 строка в таблице 1 с ID_1 = 3
...
Рейтинг: 0 / 0
Связывание мер
    #39384467
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

Я так понимаю, нужно сделать меру на основе измерения? Это факт связь.

https://msdn.microsoft.com/en-us/library/ms167409.aspx
+
IgnoreUnrelatedDimensions = false
...
Рейтинг: 0 / 0
Связывание мер
    #39385219
SkyTod,

Нет, это не то.

Во вложении картинка со схемой данных, использованием измерений и результатом, который получается. Красным прямоугольником обозначение проблемное место. В итогах значение равно 3, а по измерению сумма равна 2. А мне надо, чтобы строк было 3 и в первой колонке было 3 единицы. В измерении Project_Table_2 были значения "Проект 1", "Проект 2", "Нет данных" . Значение "Нет данных" соответствует 3 строке таблицы 1, ID_1 которого отсутствует в таблице 2.
...
Рейтинг: 0 / 0
Связывание мер
    #39385222
SkyTod,

В предыдущем сообщении картинка неверная.

"Нет, это не то.

Во вложении картинка со схемой данных, использованием измерений и результатом, который получается. Красным прямоугольником обозначение проблемное место. В итогах значение равно 3, а по измерению сумма равна 2. А мне надо, чтобы строк было 3 и в первой колонке было 3 единицы. В измерении Project_Table_2 были значения "Проект 1", "Проект 2", "Нет данных". Значение "Нет данных" соответствует 3 строке таблицы 1, ID_1 которого отсутствует в таблице 2."
...
Рейтинг: 0 / 0
Связывание мер
    #39385376
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

Если я правильно понял, вам нужно указать:
UnknownMember = Visible
UnknownMemberName = Нет данных

в свойствах измерения Project_Table_2.
...
Рейтинг: 0 / 0
Связывание мер
    #39385398
SkyTod,

Указаны оба свойства.
...
Рейтинг: 0 / 0
Связывание мер
    #39386011
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

KeyErrorAction = ConvertToUnknown?
...
Рейтинг: 0 / 0
Связывание мер
    #39386016
SkyTod,

Да.
...
Рейтинг: 0 / 0
Связывание мер
    #39386034
SkyTod,

Может тут все-таки надо делать ссылочное измерение, предварительно добавив в измерение Project_Table_2 атрибут FK_ID_1 со всеми возможными ID_1 из таблицы 1. Для записей ID_1, которых нет в таблице 2 значение атрибута Project сделать равным "Нет данных". Хотя это какой-то тупиковый путь получается и я как раз пытаюсь уйти от этого.
...
Рейтинг: 0 / 0
Связывание мер
    #39386660
Единственный вариант при котором я добился желаемого результата - это создание отдельного представления с полями ID_1 таблицы 1 и Project таблицы 2 через левую связь, добавив обработку поля Project на NULL.
Затем на основании данного представления создал новое измерение, которое связал с мерами таблицы 1 и 2 через обычную связь по соответствующим полям.

Но мне не нравится тот факт, что придется все измерения, которые будут относится к таблице 2 делать по такой же схеме. Я думаю, что должно быть другое решение, более простое и главное, правильное.
...
Рейтинг: 0 / 0
Связывание мер
    #39387115
SkyTod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коломиец Юрий,

Возможно, many2many обрезает что-то на уровне UnknownMember, сейчас нет времени пробовать у себя. Но советую все считать в DWH - не пожалеете. Ибо many2many это тормозная и сложная штука. Я его не используют именно из-за плохого опыта. Затем трудно самому разобрать, как оно работает, а кому-то другому объяснить - легче переписать.
...
Рейтинг: 0 / 0
Связывание мер
    #39387464
SkyTod,

В целом все и так рассчитано на уровне хранилища. Здесь стоит задача объединить две таблицы показателей.
А создавать на уровне хранилища общую таблицу показателей на мой взгляд не верно.
...
Рейтинг: 0 / 0
Связывание мер
    #39387483
SkyTod,

Кроме того, если я правильно понял описание свойства UnknownMember, то оно работает со значениями NULL и вместо этого значения подставляет указанно значение, а не выводом строк, с которыми измерение не связано.

Видимо из-за того, что в таблице 2 нет никакого указания на ID_1 = 3 таблицы 1, то такую строку для измерения Project вывести нельзя.

Либо создавать какую-то сводную таблицу, где будут все возможные варианты таблицы 1 и таблицы 2.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Связывание мер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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