|
|
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток. Не подскажет ли кто-нибудь, как правильно спроектировать схему для хранилища данных для нижеприведенного примера из ERwin ( прилагается картинка 3.5 кб)? В двух словах: есть таблицы PERSONS и ORGANISATION, планируются как измерения. Есть таблица фактов. Проблема: у обоих измерений есть дополнительные аттрибуты - в примере это LOCATION. LOCATION'ов у каждого PERSON и у каждого ORGANISATION может быть много. Вопрос: как организовать свзять LOCATION с PERSONS и ORGANISATION? для каждого измерения отдельно? Но как тогда реализовать связь один-ко-многи, ведь для каждого PERSON ID (или ORGANISATION ID) может быть много LOCATION ID? Или вносить избыточночть в каждую таблицу измерения? Возможно я двигаюсь в неправильном направлении. Буду признателен за полезный совет. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 16:48 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Разве эта связь не через таблицу фактов задаётся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 16:55 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
expla, Спасибо за отклик... Тогда получается, что надо в таблицу фактов добавлять ключи PERSON LOCATION ID и ORGANISATION LOCATION ID ? Вот у PERSON есть, грубо говоря, LOCATIONS: Москва, Киев; у ORGANISATION - Москва, Минск. Мне надо иметь возможность формировать отчеты по фактам по LOCATION для PERSON и / или по LOCATION для ORGANISATION... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 17:01 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Ну так факт-то у вас имеет атрибут "location" или нет? Если в Вашем примере есть факт для указанных PERSON и ORGANISATION - в отчетах каких Location-ов он должен отразиться? Москва, Киев, Минск? Или только Москва? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 18:07 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, В фактах нету локейшена. Пользователь должен иметь возможность выбрать факты для PERSON с локейшн Москва для ORGANISATION например Миск. LOCATION - исключительно характеристика PERSON, ORGANISATION. Если внести локейшн в факты - фатически таблица фактов будет выступать как таблица связи между PERSON-LOCATION и ORGANISATION-LOCATION (в составном ключе фактов PERSON-LOCATION-ORGANISATION)... Я правильно понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 18:17 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
kbownerДоброго всем времени суток. Есть таблица фактов. Если мне не изменяет предчуствие мы тут начинаем иметь дело с Дата март? То есть Вы коллега строите Дименшинс? Расскажите поподробнее о Ваших бизнес задачах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 18:19 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, Дата март я не делаю. Просто надо денормализовать/реструктуризировать существующую реляционную схему, чтобы a) первичная задача - отчеты в cognos'е, много данных; b) возможно потом будет перенос на warehouse. В примере - упрощенная часть схемы. Таких кусков около десятка. И у многих дименшинов есть пересекающиеся (одинаковые) аттрибуты - вроде приведенного в примере LOCATION. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 18:42 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
kbowner Дата март я не делаю. Просто надо денормализовать/реструктуризировать существующую реляционную схему, чтобы a) первичная задача - отчеты в cognos'е , много данных; b) возможно потом будет перенос на warehouse . В примере - упрощенная часть схемы. Таких кусков около десятка . И у многих дименшинов есть пересекающиеся (одинаковые) аттрибуты - вроде приведенного в примере LOCATION. Коллега - что то уж я совсем запутался. Cognos - очень любит как раз Data Mart representation of your data. Судя по вашей "неустроинности" или "неловкости" в агрегатном составлении данных Вы создаёте STAR - Schema. Это и есть реляционное представление аналитической информации. Чтобы Вам помочь - мне следовало бы навигировать Вас в область Аналитической Обработки данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 18:51 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Давайте я задам Вам бизнес вопрос - насколько важным для ваших Когнос юзеров является группирование данных по времени? Если данные группируются по -недельно [по] -месячно [по] -квартально - не раздумывайте более ни минуты - сводИте всё к дата март. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 19:03 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, Да, по времени данные тоже будут группироваться. По дата мартам - просто на мой взгляд, по принципу построения схемы - звезда, снежинка - что дата март, что централизованное хранилище - схожи. Только в дата марте данные, дименшины - только те, что предназначены конкретному пользователю. Мне надо сделать доступными все возможные группировки. Реляционное представление данных - я имел в виду полностью нормализованную БД. И там не используются start, snowflake и т.д. Т.е. для каждого отчета - Вы предлагаете создать отдельную схему (набор таблиц, представлений) - дата март? Я правильно понимаю? И при необходимости синхронизировать потом эти дата марты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 19:28 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Коллега, для начала попробуем из определения отличий OLAP i OLTP. Нормализация характерна для ускорения ввода - изменения удаления данных при минимальном хранилище. Для ускорения поиска в большом объёме мы данные подготавливаемым индексируем, денормализуем - готовим для быстрого ПОИСКА и удобного ПРОСМОТРА. Это самое главное отличие. Постарайтесь ЭТО очень хорошо понять прежде чем начнутся ваши коренные изменения. Наличие повторяющихся аттрибутов в OLAP - вполне допустимо. Законы нормализации конечно же помагают - но ни в коем случае не определяют OLAP систему. Если Вы посмотрите большинство современных БД Дезайнерских систем - они на самом первом этапе создания дают возможность настроить систему или на "Реляционную" OLTP или "мулти-дименшинал" OLAP модель. Итак ответьть на Ваш вопрос - начните с маленькой STAR - схемки где будут [может быть] дубликаты ваших главных сущностей - Назовите их DimPerson; DimOrganisation; DimLocation; DimTime. Профактируйте всё в звёздочку ну например как это сделано вот тут Вот там Вы и почувствуете зачем нам всё это надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 20:30 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, Большое спасибо за отклики, но мы, кажется, не совсем понимаем друг друга. Про нормализацию, OLAP и OLTP и все, что Вы перечислили в полседнем посте - я в курсе. Я задал в начале топика конкретный вопрос, касающийся конкретно схемы звезда (или же снежинки). Приминительно к вашей ссылке из википедии: возьмем таблицу D_CUSTOMER. У кастомера есть аттрибуты. Допустим, КАЖДЫЙ кастомер имеет несколько имен NAME, по которым надо иметь возможность отобрать кастомера - и получить факты. В этом случае CUSTOMER_ID уже не будет уникальным PK. Я хотел узнать, как в таком случае следует организовать таблицу кастомеров. Т.е. есть буквально десяток имен NAME: Name1, Name2, ... Name10. И есть 100 миллионов пользователей, у которых может быть по несколько из этих имен. Также есть таблица D_STORE - у нее тоже есть аттрибут NAME. Так вот для D_STORE аттрибут NAME тоже может принимать по несколько значений из этого списка Name1, Name2, ... Name10. Вот я и хотел узнать, как обычно поступают в таком случае: трансформируют ли звезду в снежинку, добавляя консольные таблицы - в данном случае или одну консольную таблицу NAME для D_CUSTOMER и D_STORE, либо для каждого дименшина отдельно. Либо в факты выносить отдельно NAME как ключи для D_CUSTOMER и D_STORE, либо еще что-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 23:25 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Коллега, Тема эта неоднозначна и весьма многоплановая. Она не может быть решена "в общем" Не существует также и "общепринятого" ведения дела. Вся структура OLAP систем в первую очередь зависит от данных необходимых бизнесу. Никакая логика кроме Вашей Бизнес логики не может и не должна рассматриваться. Мой Вам дружеский совет - отступите назад на 10 шагов - начните разговоры с Бизнесом. Задавайте им самые глупые вопросы но начните с очень правильного "КАК БЫ ВЫ (бизнес пиплы) ПОКАЗАЛИ МНЕ (технарю) ЧТО ВАША РАБОТА СДЕЛАНА ХОРОШО". Не смотрите ни на STAR ни на SNOWFLAKE. Смотрите и изучайте репорты которые должны быть представлены. Найдите как они сегодня выглядят и как их хотят видеть Бизнес Пиплы. А Значит разводите каждую группу вашего Data Mart. Не важно что NAME будут "очень похожи" Обратите внимание что в OLAP не работают натуральные ключи. Все они ИРРАЦИОНАЛЬНЫ. То есть например у вас есть кастомер Vera Inber которая была когда то Mary Picford. Тот же самый физически определённый человек. И Вам (может быть) понадобится следить за ВСЕМИ ее покупками на протяжении всей траснформации с ее адресами и фамилиями. Такая возможность тоже существует, но нужна ли вам она.... Это совершенно другой уровень задач, коллега и решать его Вы сможете только с Вашим бизнесом. Не со мной. Я Вам могу только немного подсказать если Вы поставите мне конкретную задачу Бизнеса - ни в коем случае не техническую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2008, 23:47 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Кстати простите моё незнание терминологии Русского Языка. Тема Топика "Хранилище данных - таблицы измерения+консольные" - что имеется ввиду? Если перевести "в лоб" - Data warehouse - Dimensional Tables + Consol... Я не совсем понял ведь Вы где то говорили не про Датамарт? Или в значении Дата Март я допустил оплошность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2008, 00:03 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Вид Ваших табличек измерений будет - супермножество всех значений. Проиндексированных по всем (возможным) атрибутам) то есть если DimPerson - там будут все имена ваших кастомеров для которых когда либо велись какие либо бизнес операции. Ключём будет ИРРАЦИОНАЛЬНЫЙ ID - например последовательность чисел. То же будет с DimLocation - все Locations должны быть введены не зависимо какие - OrganisationLocation или PersonLocation - все будут введены и проиндексированы. Ключём опять же будет ИРРАЦИОНАЛЬНЫЙ ИДЕНТИФИКАТОР. Когда будете загружать можете добавить аттрибут LocationCode - перевести его значение по отношению к "P" - Person или "О" Organisation. Если потом появятся Location для склада ("W" - Warehouse) запросто добавите и переиндексируете. Это по поводу вашего вопроса. Теперь по поводу сути OLAP. Постарайтесь посмотреть на свою будующую систему как можно отвлечённее. Она в конце концов преднозначена для ответов на Business Questions. А Вопросы ети задаёте не Вы- пользователь. Data Mart - уменьшенная форма хранилища (Data warehouse). Необходима для ответов на локальные задачи поиска. Представьте себе универмаг - Warehouse. Отдел универмага - data mart. Задачи всего склада решаются в Warehouse. Задачи отдельного департамента - v datamart ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2008, 00:33 |
|
||
|
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за советы, с вопросом разобрался. По крайней мере, на данном этапе. Надо было просто не забывать - и "плясать" от фактов, а не подстраиваться под существующие измерения. Топик можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2008, 13:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35740725&tid=1543503]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
239ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 507ms |

| 0 / 0 |
